PyTorchやTensorFlowで学習したモデルをCore MLモデルに変換する際にはcoremltoolsを利用します。ドキュメントもありその変換手順は一見シンプルですが、しかし、実際のところまず一発ではうまくいかないでしょう。多くの場合はモデルの一部を切ったり置き換えたりといった「手術」が必要となります。
本トークでは、そういったCore MLモデル変換に必要な技術や知識について、よく知られたモデルを題材に実践を通して解説していきます。その中で、「Neural Engineの気持ち」を理解してiOS/macOSデバイスの実力を最大限引き出すコツや、モデルサイズを圧縮する方法等も紹介します。
モデル変換の技術をマスターし、最新のモデルをいち早くiOSで動かして新しいユーザー体験をつくっていきましょう。
SpriteKit では Particle を簡単に作成することができます。
Particle を用いると、雨や雪、煙が出るリアルな炎など、アプリに特殊な効果を追加でき、リッチな UI を実現できます。
本発表では、SpriteKit Particle File に存在する Rain テンプレートを活用して、雨のエフェクトを作る手順を紹介します。
作成したエフェクトは SwiftUI の SpriteView を用いて表示できるため、リッチな UI を短時間で作成できることを実感できます。
このセッションでは、今までのiOSでの音声技術とiOS17がもたらす最新の音声技術の導入についてお話しします。
iOS17ではAVAudioEngineのVoice処理や AirPlay / AirPodsなど多くの音声関連のアップデートがありました。
今までとこれからの音声技術を通じて今後の音声技術について話していきたいと思います。
トピック
1.今までのiOSの音声技術
SwiftUIをUIKitで作成された複雑な画面にも活用してみませんか?
私の経験から、Storyboardを使用した画面はメンテナンス性や再利用性に課題を抱えています。しかし、SwiftUIで独立性の高いコンポーネントを作成することで、これらの問題を解決することができます。
UIHostingViewを使えば、UIKitの既存の画面においても、SwiftUIのコンポーネントをシームレスに組み込むことができます。これにより、従来のコードを一から書き直すことなく、新しいユーザインターフェースを実装することも可能です。
このセッションでは、具体的なコード例や実際のプロジェクトでの活用事例を共有します。参加者の皆さんが自身の開発において新たな可能性を見つける手助けをしたいと思っています。
Swiftの新機能、マクロが発表されてからたくさんの方がさまざまな使い方を紹介しています。このLTではAppleが公式に紹介しているものを中心にインターネット上で見つかる様々なマクロを紹介、共有し、Swiftでのマクロの可能性を探ります。
話すこと
話さないこと
Swiftのマクロはまだまだ開発途中であり、今後も機能が拡張されることが期待されます。参加者の皆さんも、自分なりのマクロを開発してみてはいかがでしょうか。
近年、GPTをはじめとするLLMによってAIとのテキストコミュニケーションが爆発的に進化しました。我々が日常的に使う「音声」とテキストの橋渡しを担う重要技術が音声認識です。
iOSにおける音声認識は長らく進化が止まったままでしたが、iOS 17になり、カスタム言語モデルがサポートされ、一気に実用性が増しました。一方で、OpenAIによるWhisperもCore ML対応版が出ており、サードパーティーながら標準フレームワークより魅力な点も多くあります。
本トークでは、音声認識のしくみを理解し、カスタム言語モデルを作成して特定の分野や用途に沿って性能を改善する方法について学びます。またサードパーティー製エンジンとも比較し、ユースケースに合わせて最適な技術選定が行えるようになるでしょう。百見は一聞にしかず、デモも行います。
近年のWWDCを見ていると、プライバシーに関するアップデートが多くなっています。今年のWWDCでも例えばプライバシーマニフェストが新登場するなど、その流れは止まりません。毎年アップデートがあるとキャッチアップも大変ですよね。とはいえキャッチアップを怠っているとアプリのリジェクトリスクにも繋がってきます。
そこで、このトークでは以下の内容をカバーします。
これからiOSアプリ開発をする人、プライバシーに関する最新情報をキャッチアップしたい人にぜひ聞いてほしいです。
※WWDC23の内容については公開情報以上のことは話しません。
「すごいアプリのアイディア思いついた!!作って儲けるぞ!!」と思ったことありませんか?
その後すぐに「大企業が似たアプリを作ったら一瞬で駆逐されるな。。。」と思ったこともありませんか?
アプリのアイディアを保護するためには特許権を取得することが有効です。
本トークでは個人開発で一発当てることを夢見るサラリーマンの私が特許出願までの手順や費用や注意事項、特許出願状況についてお話しします。
現在の出願状況は審査待ち、Waiting for Review です。
フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。
本LTでは、iOS/iPhoneを用いたフォトグラメトリの手法やAPIについて解説し、デモを行います。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。
最初期は「写真をボケさせる」ユースケースしか認知されていなかったiOSデプスですが、今やLiDAR搭載デバイスも登場し、部屋のスキャンや物体の3Dキャプチャー、ARのオクルージョン、そしてvisionOSのSpatial Computingにおいてもデプスが重要な役割を担っています。
本トークではデプスの基礎から始めて、Cinematic ModeやRoomPlan、Object Captureといった最新のAPIも含めてiOS/visionOSにおけるデプスについて体系的・網羅的に解説します。デモアプリの実装を通して実践的なデプスの取り扱いも解説します。
我々は長く2Dスクリーンの中でアプリを作ってきましたが、生きているこの世界は3次元です。今こそデプスをマスターし、2Dスクリーンの世界から飛び出して「奥行き」が存在する世界で新しいユーザー体験をつくっていきましょう。
iOSDC 2018でデプスについて解説して早5年。今やLiDAR搭載デバイスも登場し、APIも当時より遥かに充実しています。
本トークではデプスの基礎から始めて、デモアプリの実装を通して実践的なデプスの取り扱いについて学びます。最終的にはCinematic ModeやRoom Olan、Object Capture、ARKitのオクルージョン、そしてvisionOSのSpatial Computingといった最新のデプス応用についても理解が深まるでしょう。
我々は長く2Dスクリーンの中でアプリを作ってきましたが、生きているこの世界は3次元です。今こそデプスをマスターし、2Dスクリーンの世界から飛び出して「奥行き」が存在する世界で新しいユーザー体験をつくっていきましょう。
「Markdownエディタを作りたい。」
そう思った私は、Markdown記法を簡単に入力できるボタンを"正規表現を用いて"作り始めました。
まずは見出しボタン、これは行頭の #
の数を見れば良いので簡単に実装できました。
そして太字ボタンや斜体ボタンの対応を始めた時に、詰みました。
**たとえば
複数行にまたがる
太字記法とか**
`コードスパン内なので**これは太字ではない**とか`
**`でもこれはコードスパン全体が太字になってるとか`**
こういった複雑な記法に正規表現だけで立ち向かうのは無謀でした。
このLTでは、課題への対処方法の1つである "apple/swift-markdown", "SourceLocation" の扱い方についてお話します。このLTで、多くの人がMarkdownエディタ開発への一歩を踏み出せるようになるでしょう。
音楽アプリ制作で、ジャケ写から色を抽出して背景色に適応する実装をしていました。
ライブラリを探してみたものの、抽出速度が遅い、精度が悪いなど使い勝手が悪かったので、自分で作ってみました。
色抽出の方法・抽出時の注意点、パフォーマンス等をご紹介致します。
このトークは、WWDC'23にて新たに発表されたiOS「17」のWidgetにフォーカスしたものになります。
今回、インタラクティブ性の強化がアナウンスされたウィジェットですが、私たちは何がどこまで可能になったのでしょうか。そんな疑問を探るため、我々はアマゾンの奥地に... (中略) ...新しいWidgetKit APIの機能と制限について、実際に触りながら検証していきます。
▼ アウトライン (検討中)
Swift MacroはSwiftUIで既に使用されていますが、今後サードパーティのMacroを使用する機会が増えるでしょう。
Macroは構造体やクラスを手軽に拡張することができ、JavaやKotlinのAnnotation Processorを連想させます。
Javaでの開発においてAnnotation Processorは既に必須機能の一つとなっていますが、多用することで度々Annotation Hellと揶揄されることもあります。
Swift Macroが今後さらに普及される際にMacro Hellと揶揄されない適切な量の使い方をJava、KotlinのAnnotation Processorを先例としてお伝えします。
みなさんはアプリでの「マスターデータ」の扱いはどうしていますか?
私たちのアプリでは、駅・市区町村・町域など「合計10万レコード以上」のマスタデータを扱う必要がありました。
また、それらのデータは不定期に更新されるため「データのアップデート」にも対応しなければいけません。
この課題に対して、私たちは「マスターデータを事前投入したRealmファイルをバンドルする」という手法で対応しました!
ということで、このLTでは…
について紹介したいと思います。
※ このLTでは「リモートから取得・更新する方法」に関しては扱いません。
本トークでは、STORESレジが対応しているハードウェアの紹介から、実装における課題とその解決法、運用時に起きる問題と対処方法まで、ハードウェア連携に必要な知識を解説します。
内容:
トークを聞いてくださった皆さんにHardwareを興味を持ってもらえればHappyです。
もうNavigationViewの終わり見えているよね、、、
それを向けてみんなはどう向き合っていくべきかはまだ迷っている人いませんか?!
このトーク見ればもう迷わない・進む道はもう明確になる!
内容:
みんなCI/CD迷ってますか〜?
このトークで話題のXcode Cloud一緒にセットアップしてみましょう!
Live Codingで0からArchiveまでアプリのCI/CDをセットアップ!
証明書の手間・ファストレーンのスクリプトは不要!最高!
簡単なワークフローなら選択肢はもうひとつしかない!
OSをアップデートしたら予期せずUIが壊れた経験はありませんか?
ZOZOTOWNでは去年TextKit2になったことでテキストの行末の余白が変わりレイアウトが崩れるという不具合に遭遇しました。
これはただの「不運」だと片付けることは容易ですが、実は不具合は予測可能でした。
例えば不安の残る実装やちょっと違和感を感じるけど却下するほどの根拠はないなどで「ヨシ!」とリリースしたことはありませんか?
全てではないですが、実装段階やレビュー段階で違和感に気づき解消することで、不具合に発展する前に防ぐことができます。違和感や問題の予兆を意識することで不具合が発生しても焦らず調査できます。
本セッションでは事例をもとに不具合につながる違和感のポイントを紹介します。
iOS 17リリース直前に実装の違和感や不具合の心当たりを思い出してみましょう!