WWDCの1 on 1 labに参加していますか?様々な壁から諦めていませんでしょうか? このLTでは、そういった不安を解消できるようなお手伝いをしようと思います。自分はlabに参加するのが好きで毎年参加をしているのですが、その中でもうまくいったlabとそうでないlabがあったようなので、その理由を解析しました。それらの経験を踏まえて、お話しできたらと思います。
【話すこと】
iOSDC Japan 2022内で世界初開催された衝撃のSF Symbolsアートソムリエ認定講習が帰ってくる!
SF Symbolsアートソムリエ認定講習では、SwiftUIとSF Symbolsとアートの革新的な融合を体験でき、Appleの方が思ってもみない究極のSF Symbolsの活用術を伝授します。
講習内容:
SF Symbolsとの対話:
シンボルを使いこなすための対話を通じて、発見と可能性を追求します。
創造的なペアリング:
異なる世界観のシンボルを組み合わせ、新たな表現を開拓しましょう。
SF Symbolsアートソムリエ認定講習:
SF Symbolsの知識と感性を活かし、作品への応用力を考察します。
第1回SF Symbolsアートソムリエ認定資格の有効期限は、2023年8月31日までです。有効期限切れの方は再受講をお願い致します。
WWDC 2023でついに、Apple初のヘッドセット端末であるApple Vision Proが発表されました!
Macがパーソナルコンピューティングを切り拓いたように、iPhoneはモバイルコンピューティングを、そして今度はVision Proが空間コンピューティングを切り拓いていくでしょう。
Apple Vision Proの発売は来年予定ですが、このトークでは一足先にvisionOS向けのアプリ開発について、どのようなアプリを作れるのか、どのように開発を始めればいいのか、既存アプリの対応方法など、空間コンピューティング時代のアプリ開発の基礎知識を紹介します。
一緒に空間コンピューティング時代の幕開けに備えましょう!
本発表では、リモートワーク環境でのPR (Pull Request) コミュニケーションに焦点を当て、その効率化と品質向上のための具体的なテクニックを共有します。
必要十分なコミュニケーションで素早くPRがマージされるための知見を提供します。
iOSは毎年メジャーアップデートを行っていますが、後方互換の対応が乏しいため、多くのバージョンをサポートすると、非常に多くの開発コストがかかります。
古いバージョンを使い続ける方のために多くをサポートしたいところですが、iOSのユーザーはアップデートするのが早い傾向にあるため、
少ないユーザーのために多くのユーザーの利益を損なうこともあり、アプリ開発者はサポートバージョンについてはどこまで対応するか考えなくてはなりません。
そこで、今回はLINEアプリでのサポートバージョンに関する考え方をお話しします。
皆様のサポートバージョンに関する参考になれば幸いです。
ついにAppleの空間コンピュータ「Apple Vision Pro」が発表されました。
お値段は日本円で約50万円と言われ、一般的には高い印象を持つと思います。
しかし、この価格が数多くあるVRヘッドマウントディスプレイやARグラスといったXRデバイスと比較したとき、高いのか、安いのか、知らない方も多くいるのではないでしょうか。
実は3桁万円、4桁万円のXRデバイスも存在します。ピンからキリまで、市販されていた・市販されている、そして今後登場するXRデバイスの価格帯を、それぞれのデバイスの特徴や性能とあわせて比較調査しました。
5分後、50万円という価格に対する考え方が変わっているかもしれません。
iOS16時点ではSwiftUI.AsyncImage
は非同期で画像を取得した後、SwiftUI.Image
を返却するためCGImageのような画像を加工できる形で返されません。
本LTではそのAsyncImageの欠点である「ダウンサンプリングができない」という問題に焦点を当て、それが引き起こす問題と改善案について紹介します。
ダウンサンプリングは大まかには画像の解像度を下げる手法と考えられます。ネットワーク越しに大きなサイズの画像を取得しても、表示する際には小さなImageに表示する場合に有効です。ダウンサンプリングをしない場合、場合によっては消費メモリが桁違いになってくるため大きな問題として捉えられます。
ダウンサンプリングを実装するにはiOS16時点では自前で実装することになり、LTの後半ではAsyncDownSamplingImageというライブラリの紹介をします。
弊社のウェブサービスでは ChatGPT の API が公開されたタイミングでテスト的に AI アシスタント機能の実装を進めていました
これを全ユーザーに適用するタイミングで、アプリでも公開しようということになりました。
AI アシスタント機能の特徴としては AI が考えるように、ストリーミングで文字列が表示されることが大きいです。
ここでは上記を含めてアプリでどのように UX を実現するかを考えながら実装を進めたかをお話しします。
ノートアプリは2022年12月にリブランディングを実施しました。
わかりやすいものだとアイコンがガラッと変わったのですが、それに合わせて内部で利用している色を全体的に調整しました。
デザイナー・フロントエンドではデザインシステムを導入し、ウェブページに段階的に適用して行きましたが、アプリでもその追従を始めました。
まだ、途中段階ではありますが、ここでは既存のシステムがどうなっていて、どのように変更に追従したかをお話しします。
皆さんが開発しているプロジェクトではアプリのビルド時間にどれぐらい時間がかかっていますか?
最近始めたプロジェクトでは数秒で終わるかもしれませんが、何年も運営しているプロジェクトでは何分もビルドに時間がかかるなんてこともざらにあります。
ビルドに時間がかかるということは、それだけ開発をすることための時間が削られてしまうということです。
弊社のアプリのプロジェクトではクリーンビルド時に110秒ほどかかっていましたが、これを60秒以内に縮めることができました。
ここでは時間がかかっている箇所を特定し、ビルド時間を縮めるための考え方とその手法についてお話します。
アプリ名やリリースノート、はたまたスクリーンショットなど、アプリを審査に出す際には、バイナリの他に多くのメタデータと呼ばれる情報をアップロードする必要があります。
Xcode Cloudなどでサブミットの自動化がやりやすくなった今日では、メタデータはリポジトリ内で管理し、サブミットと同時に自動アップロードにしているというプロジェクトも多いのではないでしょうか。
しかし、このメタデータには実は細かい制約がいくつもあり、サブミットしてからメタデータアップロードだけ失敗するということがしばしば…
これを未然に防ぐため、サブミット前に自動でこれらの制約をチェックできる仕組みをプロジェクトに導入しました。
このトークでは、今日から実践できる便利な自動チェックの数々を紹介します。
App Store Connect 使っていますか? 使っていますよね!
では、App Store Connect API は使っていますか?たぶん、使っていないですよね。
TestFlightを非アプリ開発チームメンバーに展開していく上で、App Store ConnectやTestFlightへの登録といった定型作業を楽にするために、 Github ActionsからApp Store Connect APIを使いました。
Github ActionsからApp Store Connect APIをたたいていく上で遭遇したり、実用する上での苦労話や、何を実現したのかを話していきます。
▼ 概要
私たちは「あたらしい旅行を、デザインする。」をミッションに旅行アプリ「NEWT」を日々開発しています。
旅行の予約から準備、旅行中の旅程の確認やサポートなど、直感的なUI/UXでストレスフリーな旅行体験をカスタマーに提供することを目指しています。
そのため、プロダクト開発において機能要件はもちろんのこと、非機能要件についても重視しています。
その中でも今回は、カスタマーに楽しく快適にアプリを利用してもらうために必要となるアニメーションに関するお話をできればと思います。
▼ 内容
https://cha-chat.henteko07.com/
ChaChatはかわいいキャラクターと楽しくお話ができるアプリです。
感情表現豊かなキャラクターと楽しくお話しすることで、日頃仕事で疲れた心を癒すことができます。
またChaChatはChatGPTやStable Diffusion、midjourneyなどのAI技術を使って作られたAIアプリです。
そんなChaChatを開発してみて気づいた、Promptエンジニアリングや、Stable Diffusionを使って同じキャラクターによる表情差分の作成方法などをご紹介します。
WWDC2023 では、Apple のクレイグ・フェデリギ氏が華麗なギターを演奏してくれました。
俺も演奏してえ!この iOSDC の舞台で!!
実は Swift に音を扱う便利なオープンソースが存在します。
それは AudioKit です。 Swift 上で音を加工したりすることができます。
この中には、ギター向けに提供された DevoloopAudioKit があり、実装を作り込むことで、あなたの iPhone をエファクターやアンプの代わりにすることができます!
このステージでは、演奏を交えて実演します。
このセッションでは、音を楽しみつつ実装を解説していきます。
俺のステージを見に来てくれよな!
ぜひ、発表を楽しんでください!
皆さん、ライブラリは日頃から更新していますか?iOSの毎年のアップデートに追従する皆さんであれば、もちろんライブラリや各種エコシステムにも追いつこうとしているはずですよね!?しかし、それは楽な作業ではないのもまた事実。せめて更新を自動的に教えてくれたり、自動的にプルリクエストを作成してテストを回してくれたら……
そんなことを実現してくれるのがMend社の提供するRenovateです!Renovateは数十のパッケージマネージャー・データソース、GitHubやGitLabなど複数のプラットフォームにも対応したライブラリの自動更新ツール・サービスであり、OSSとして開発されています。本LTではRenovateのコントリビューターとして "Valuable contributions" にもノミネートされた筆者が、iOS開発におけるRenovateの設定や活用方法を簡潔にお伝えします。
iOSに限らず、アプリを使っているとエラーはつきものです。
そんなエラーを回復するために、ユーザーに引き続きアプリを使ってほしい一心で一律エラーに対しリトライなどを行なっていると、
ネットワーク通信で絶対に成功しない同じリクエストを送り続け、400エラーや500エラーに対して延々とリトライしてしまうことになります。
そんなErrorですが、protocolとしてRecoverableErrorというものが用意されているのはご存知でしょうか?
これは本来はmacOSなどで使うよう設計されているものですが、iOSをはじめとした他プラットフォームでも使えるものになっています。
本セッションではRecoverableErrorの使い方とiOSでの有効性について検証します。
SwiftUIは素晴らしいと思いますが、実際の開発現場では、Storyboard,InterfaceBuilder,UIKitを用いての開発の方が、生産性を上げると感じています。
SwiftUIはわかりやすく、コードでの構築になりますので、実装のしやすさを考慮して設計されており、難易度だけでいうと、UIKitを用いて、コードでの実装をするよりは簡易であると感じます、また読みやすさでもSwiftUIでの実装は優れておりますが、やはりコーディングを行うという事は避けられません。
Storyboardでしたら、D&D💪🏿でマウスでレイアウトを構築できます。
また、レイアウトも、Autolayoutを用いてマウスで構築できます。
その点を鑑みますと、読んで構築するUIより、見て構築するUIの方が楽ではないでしょうか?
「二次元コードがアプリで読み込めません!」
ある日舞い込んだお問い合わせ。
聞いたところ、ある店舗に設置してあるQRコードだけが読み込めないらしい。
他のお店や手元の環境では全く再現しない。
現地に行って試してみると、確かに読み込めない。
気になる点はというと、どうも画面がチカチカしている。
試しに他社の二次元コードリーダーのあるアプリで試してみても、多くのアプリで同様に読み込めない。
これはなんだろう…
上記は実際に運用中のプロダクトで遭遇した、フリッカー現象の事例になります。
このトークでは、FrameRateとフリッカー現象について説明し、二次元コードのスムーズな読み取りのためのFrameRateの設定を提案します。
内容: