皆さんは Swift ちゃんと仲良く日々を過ごしていますか?
エディタで真っ赤なエラーを何回も吐かれたり、 Swift Concurrency に苦しめられたり… ギスギスしている方もいらっしゃるかもしれません。
そんな時は、 Swift ちゃんのことをもっと知ってあげましょう!
本トークでは、「Swift を使う」から一歩踏み出して、「Swift という言語そのもの」に注目します。
普段から Swift のコードを書いていても、内部構造やコンパイラの仕組みは「ブラックボックス」と感じがちですが、内部構造をざっくり理解しながら、Swift にコントリビュートする方法をステップ • バイ • ステップでご紹介します。
気に入らないエラー文を改善するもよし、既存の Issue から興味のあるものを選ぶもよし、敷居が高く見えてもコントリビュートする上では色々切り口があります。
OSS に初挑戦してみたい方や、Swift をもっと知りたい中級者に向けて、「Swift ちゃん」との距離を縮めるための第一歩をお届けします。
本トークでは、以下の内容についてお話します。
WWDC25で発表されたAppleのFoundation Modelsフレームワークにより、iOSアプリにおけるオンデバイスLLMの利用が現実的な選択肢となりました。
さらに、llama.cppやMLX、ONNX Runtimeなどのオープンソースプロジェクトの進化により、iOS上でのローカルLLMの可能性はますます広がっています。
iOSアプリエンジニアにとって、今がまさにLLMについて理解を深める絶好のタイミングです。
そこでこのトークでは、ローカルLLMに関して以下のトピックを中心に解説します。
•Foundation Modelsフレームワークを用いたローカルLLMの活用
•LLMのコア技術であるTransformerの仕組みと、それがチャット、マルチモーダル、ツール呼び出しといった機能をどのように実現しているか
•llama.cppやMLX等の仕組み、モデルフォーマット、量子化、最適化手法などの解説
•各技術のパフォーマンスや互換性の比較と、技術選定の指針の共有
LLMの仕組みや主要フレームワークの特徴を理解し、適切な技術選定や設計をすることで、
より優れたユーザー体験を実現しましょう!
iOS18で搭載されたApple Intelligenceの作文ツール(Writing Tools)やWWDC25で発表されたFoundation Models Frameworkなど、iPhoneにはAIによって作文や要約、公正をすることができる機能・方法が存在します。
これらの機能・方法は基本的にはオフラインで動作することで、ユーザーはプライバシーを守りながら文章力を劇的に向上させることができる強力なものです。
ですが、強力な機能であるにも関わらず作文ツールへの導線はユーザーへは伝わりづらかったり、Foundation Models Frameworkで自前実装をすべきなのか悩ましいのではないでしょうか?
本セッションでは、iPhoneで利用することができる作文関連のAIについて、
をお話しします。
このセッションを通じて、あなたが作文ツールをよりユーザーに利用していただきやすくなるようにアプリへ組み込んだり、Foundation Models Frameworkを用いて補完的に実装を行うべきかの検討ができるようになることを目指します
あなたのアプリユーザーのAI作文体験を向上させましょう!
Swift は値型を中心とした言語です。値型を用いてコードを書くと、あるオブジェクトを変更したところ、別のオブジェクトも一緒に変更されてしまった!のような意図しない変更を防ぐことに繋がります。
では、Swiftにおける値型と参照型の違いはなんでしょうか。上記のようなオブジェクトの振る舞いから説明する人もいるでしょう。公式ドキュメントを確認すると、値型は、変数や定数への代入、または関数への引数渡しのときに、値がコピーされる型であると定義があります。一方で参照型は、変数や定数への代入、または関数への引数渡しのときに、コピーされるのではなく、インスタンスへの参照が使用される型であると記載があります。
さて、WWDC24「Consume noncopyable types in Swift」の動画の中で、以下のような言及があります。
「Notice how copying worked the same in both cases. The only difference is whether you're copying a value, or a reference.」
「どちらの場合も(struct も class も)、コピーの動作は同じでした。 唯一違う点は、値をコピーするか、参照をコピーするかという点です。」
あれ?!値型と参照型のコピーの動作って同じなの?!
公式ドキュメントに、参照型はコピーされないって書いてたよ?
一体、どっちが正しいの?!
このLTは、公式ドキュメントとWWDC24のセッション動画との表現上の対立の謎に迫り、そして真理を求める人間が、Swiftの内部実装を紐解きオブジェクトのコピーとは何かを理解することに自らの信念と命を掛けた物語です。「コピーとは何か?」を突き詰めることで、改めて値型と参照型のそれぞれの内部動作の違いに迫ります。
近年よく「成長機会」「開発者体験」「イノベーション」などのワードを耳にすることがあると思いますが、あなたの組織ではこれらに対して取り組むことができているでしょうか?
私の所属している株式会社kubellのiOSアプリ開発グループでは、今年から「学びラボ」という新たな取り組みを開始しました。
『学びラボ』とは「通常業務とは離れて興味のある内容を自由に学ぶことができる日」を新設し、iOSメンバーの成長機会創出や、学習したことや得たアイデアなどによる業務への貢献、学びの発信による採用ブランディングなどを期待した取り組みです。
この取り組みにより、iOSエンジニアが作成したプロトタイプの機能が実際のプロダクトへ取り込まれたり、学んだことを外部登壇で発信したりといったような成果が出ています。
本セッションでは
組織として成長機会の創出や開発者体験向上、業務改善を推進したい方は必見です!
近年よく「成長機会」「開発者体験」「イノベーション」などのワードを耳にすることがあると思いますが、あなたの組織ではこれらに対して取り組むことができているでしょうか?
私の所属している株式会社kubellのiOSアプリ開発グループでは、今年から「学びラボ」という新たな取り組みを開始しました。
『学びラボ』とは「通常業務とは離れて興味のある内容を自由に学ぶことができる日」を新設し、iOSメンバーの成長機会創出や、学習したことや得たアイデアなどによる業務への貢献、学びの発信による採用ブランディングなどを期待した取り組みです。
この取り組みにより、iOSエンジニアが作成したプロトタイプの機能が実際のプロダクトへ取り込まれたり、学んだことを外部登壇で発信したりといったような成果が出ています。
本セッションでは『学びラボ』について
組織として成長機会の創出や開発者体験向上、業務改善を推進したい方は必見です!
生成 AI の進化により、個人でも驚くほどのスピードでアプリを開発できる時代になりました。
しかし「開発は速いけれど、マーケティングにかけられる予算はごくわずか……」というジレンマに直面する方も多いのではないでしょうか。
本 LT では、“少額”でも効果を出すアプリマーケティング手法を、国内外の成功事例や各種リサーチをもとに整理し、5 分に凝縮してご紹介します。
具体的には
• ASO(App Store Optimization)を最短で回すチェックリスト
• ブログ/LPなどを活用した「検索&メディア流入」に関して
• 低コストでの広告運用
など、今日から試せる具体的アクションを中心にまとめます。開発フェーズだけでなく、その先のユーザー獲得までを視野に入れ、AI 時代を戦い抜く個人開発者の“少額マーケティング”を一緒に考えましょう。
アプリをインストールして起動すると表示される起動画面。
ロゴが表示されたり、さらにはアニメーションしたりすると、リッチに見えたりもします。
一方、通信環境が悪いところだとロゴの画面から全然動かなかったりすることも。
Human Interface Guidelines(HIG)には、「アプリ起動」の項目もあり、起動画面についてもガイドラインが示されています。
このLTでは、HIGに基づいたアプリ起動体験とベストプラクティスについてお話しします。
このセッションで話すこと:
このセッションで話さないこと:
WWDC25で待望のChart3Dが登場し、私たちのデータ可視化の可能性は大きく広がりました。しかし、その力を本当に引き出そうとすると、新たな壁にぶつかります。それは、複雑な3D曲面や大量のデータを描画するために必要な、膨大な座標計算という「計算地獄」です。
普通に実装すれば、UIは数秒間フリーズし、ユーザー体験は最悪なものになります。
このLTでは、この「計算地獄」から脱出するための現代的な解決策、すなわちSwift Concurrency、特にTaskGroupに焦点を当てます。
このトークで話すこと
この5分間は、Swift ChartsのTipsに留まりません。あなたのアプリにある、あらゆる「重い計算処理」を高速化し、ユーザー体験を向上させるための普遍的なテクニックです。
Model Context Protocol(MCP)は、AIと外部サービスやアプリをつなぐためのプロトコルとして注目されています。
実はこのMCP Server、Swiftでも簡単に構築できるのをご存知でしょうか?
本トークでは、MCP公式が提供しているSwift SDKを利用し、IoTデバイスを動かすためのMCP Serverを構築しつつ、CursorやClaude CodeからIoTデバイスを動かす方法をご紹介します。
具体的には以下のような内容を扱います:
Swiftで実際にMCP Serverを構築する流れを体験しながら、一緒にMCPの世界に楽しく入門しましょう!
Live Activity はリアルタイムの情報を、ロック画面や Dynamic Island に表示できる機能です。iOS 16で登場して以来、毎年改良が進み、Apple の様々なデバイスに対応するようになりました。
Live Activity はリアルタイムに動くシステムのため、考慮する事項はクライアントからバックエンド、通知サーバーに至るまで多岐に渡ります。特に、多数のユーザーに向けて Live Activity を配信する際には、サーバーへの負荷が懸念されます。Live Activity はその考慮事項の多さから、安定的に運用するために様々な対応が必要となります。
Live Activity を大規模に利用するための SDK の改善が毎年行われています。その改善により、Live Activity の開始方法や、更新方法には複数の選択肢が存在するようになりました。特にスケールを意識した場合、トークン方式による個別更新、チャンネルを使用したブロードキャストの更新の使い分けが重要となります。本セッションでは、実体験を交えながら Live Activity の現在の仕組みを深掘りし、大規模アプリでのベストプラクティスを共有します。
導入を検討する際、手元で動作を試すのにはいくつか壁がありました。また、Dynamic Island に表示できる View には制約があるため、レイアウトの組み方にも工夫が必要でした。ドキュメントを読むだけでは気づけなかった、実際に遭遇した罠にはどのようなものがあったのか、そして安定して運用するためにどういった対策を行ったのかを紹介していきたいと思います。
この発表を聞けば、皆さんのアプリにも Live Activity を実践的に導入していく方法を学ぶことができます。
Swift Evolutionで提案される新機能を見ているうちに、自分でも言語の基礎を理解したいと思い、簡単な言語をSwiftで作成することに挑戦しました
このLTでは、プログラミング言語の開発フローにおいて、構文解析フェーズにおける構文木(AST)の設計と実装に焦点を当てて紹介します。
構文木(AST:Abstract Syntax Tree)は、ソースコードの文法的な構造や意味を階層的に表したもので、言語処理において重要な役割を担っています。
Swiftのenumのパターンマッチやassociated value、structによる明確なデータ構造を活かすことで、構文の意味を型として表現したASTを実装しました。
発表では、構文解析のプロセスをステップバイステップで解説し、具体的なコード例を通じてASTの構築方法を紹介します。
必要最小限の機能ですが、言語設計における本質的な考え方に触れられると思います。
Swift Evolutionは遠く見えて、実は足元から始められるのかもしれません。
一緒にその第一歩を踏み出してみませんか?
2023年の Swift 5.9 で導入された Observation は、Swift のエコシステムにおける比較的新しい値の監視の仕組みです。
従来の値の監視で用いられてきた Key-Value Observing(KVO)には Objective-C のランタイム(NSObject)への依存や型安全性の課題があり、Swift 製の Combine フレームワークには ObservableObject で @Published を何度も記述する必要があったり、非効率な更新が発生したりすることがありました。Observation は Swift に同梱されて提供され、格納プロパティが自動的に監視対象となり、プロパティ単位での効率的な更新が行われるようになっています。
このトークでは Observation の導入の経緯やピッチ段階でのアイディア、最終的に導入された Swift マクロによって展開される値の監視の仕組みについて解説し、動作原理について理解します。また、Apple が提供しているフレームワークにおける Observation の活用例についても触れます。さらに、Swift 6.2 では Observation に新たに AsyncSequence インターフェイスが追加され、iOS 26 では UIKit との連携が強化されています。これらの新機能についても、実際のアプリのコード例とともに詳しく紹介します。
Observation が登場してから約2年、iOS 17 から使えるこの仕組みは、今があなたのアプリに取り入れるちょうど良いタイミングです。Swift の特徴である堅牢さ、型安全性、高パフォーマンスを備えたこの値の監視の仕組みを理解し、普段のアプリ開発に活用してみましょう。
運用中のプロダクトでデータ基盤を大幅に変更する必要が生じたとき、どのようにリスクを最小化しながら移行を進めますか?
本トークでは、月間アクティブユーザー数万人規模のiOSアプリで実際に行ったFirestoreからの大規模データ基盤移行プロジェクトの実践事例をお話しします。
特に以下の課題にフォーカスして解決策を紹介します:
技術的なポイント:
このトークを聞くことで、大規模な基盤変更プロジェクトを安全に進めるための具体的な手法と、実際の運用で直面した課題とその解決策を紹介します。特に、チーム開発やプロダクト成長を止めることなく技術的負債を解消したいiOS開発者の方に役立つ内容です。
「とりあえずTaskで囲んでみたけど、これで本当に良いんだろう?」
「@MainActorを付けたらエラーは消えた。でも、なぜ?」
Swift Concurrencyを学び始めた頃、私はそんな"なんとなく"の不安でいっぱいでした。その一行に、確かな「なぜ」を答えられますか? このトークは、過去の私と同じように非同期処理の前に立つあなたのためのセッションです。新卒2年目の私だからこそ、ベテランが通り過ぎてしまう初学者の「なぜ?」に光を当て、"なんとなく"を"確かな意図"に変える旅にご案内します。
このセッションでは、よくある"なんとなく"なコードが、なぜ問題なのか、そしてどうすれば「意図を持った」コードになるのかを、具体的なシナリオと共に解き明かします。
このトークが終わる頃、あなたは「"なんとなく"」書いていたコードに、確かな「意図」を込められるようになっています。明日からのプロジェクトで即実践できる非同期処理の書き方を身につけましょう。
「痩せたい!」と考えている方々へ、シンプルで効果的なカロリートラッキングアプリを自作してみませんか?
多くの市販アプリはアカウント登録やサブスクリプションが必要ですが、自分のニーズに合わせたアプリを作ることも可能です。
このトークでは、SwiftDataとCloudKitを活用して、バックエンドの負担や費用を気にせず、Appleアカウントで簡単にデータを同期させる方法をご紹介します。
このセッションを通じて、あなたのアプリ開発を一歩前進させましょう。
「Human Interface Guidelines (HIG)、重要だとわかってはいるけれど、全部読むのは大変…」
多くのiOS開発者が一度は抱えるこの悩み。私たちのチームも例外ではなく、UI実装の際に「これで本当に良いんだっけ?」と自信が持てなかったり、他職種とのコミュニケーションで認識の齟齬が生まれたりする課題を抱えていました。
iOSエンジニアとして、イケてるアプリを作るにはプラットフォームへの深い理解が不可欠です。
そこで、私たちはiOSメンバー全員でHIGの輪読会を始めることにしました。
本セッションでは、この輪読会を企画・運営した経験を元に、チームでHIGを学び、開発に活かすための具体的なノウハウをお伝えします。
【本セッションでお話しする内容】
このセッションを通じて、「自分のチームでもやってみたい!」と思っていただけるような、輪読会を始めるための具体的なノウハウとモチベーションを持ち帰っていただければ幸いです。
App Intents フレームワークは、Shortcuts、Spotlight、Siri、Control Center、Widgets など、iOS 全体とアプリをつなぐ「共通言語」としての役割を担う存在となっています。
WWDC 2025 でもアップデートがあり、さらに Apple Intelligence でも活用可能になることが発表された今、App Intents を理解し、活用方法を学んでおくことは非常に重要です。その重要性は多くの開発者が感じていると思いますが、実際には、気になってはいたけどあまり触れられていないという方も多いのではないでしょうか?
App Intents を活用することで、アプリが起動していなくてもユーザーとつながることができる仕組みを実現できます。アプリが開いている状態に依存しない価値提供が当たり前になる中で、App Intents を取り入れたアーキテクチャは、AI 連携を含む今後の拡張性とも自然に結びつくと感じています。
本トークでは、Shortcuts、Control Center、Widgets など実際に対応してみた中で得られた知見をもとに、 App Intents の設計や使いどころを実装例を交えながら、お話しします。
このセッションを通じて、実務にすぐ活かせる具体的な設計のヒントと、Apple の目指す未来に対応するための考え方をお持ち帰りいただければと思います。
2014年から運用しているアプリをSwiftUIとThe Composable Architecture(以降TCA)でリニューアルを開始してからおよそ2年経過しました。
今ではほとんどの画面を移行し終わり、SwiftUIとTCAを使ったiOS開発は生産性は大幅に向上させました。
しかし、これらの優れた技術を使っていても使い方を間違えると「アプリが重い」「スクロールがカクつく」「メモリ使用量が多い」といった問題に直面することがあります。私自身もこれらの問題に直面し、解決に取り組んでいる最中です。
本セッションでは、50以上のSwift Packageモジュールで構成される実際のアプリを題材に、SwiftUI+TCAの利点を活かしながらも発生しがちなパフォーマンス問題と、その解決方法を実例を交えて紹介します。
このセッションでは以下のような内容を話す予定です
アプリ内課金は、アプリの中でユーザーに商品を購入してもらう仕組みです。アプリ外のウェブサイトなどで行う課金に比べて、ユーザーがシームレスに課金できるため、アプリにとって重要な収益源となることが多いです。
iOS のアプリ内課金の実装には、Apple が提供する StoreKit ライブラリを使用します。iOS 18 からは original StoreKit API が非推奨になることが発表され、StoreKit 2 への対応を進めた方も多いのではないでしょうか。StoreKit 2 では毎年新たな機能やAPIが追加されています。
本トークでは、WWDC 2024 以降に発表されたアプリ内課金の最新アップデートについて解説します。例えば、
・Win-back などオファーの多様化
・テスト機能の拡充
・購入したアイテムを別の Apple Account に移行
などです。私自身が開発中に気付いた変更点や挙動についても共有します。
このトークを通じて、参加者の皆さんは最新のアプリ内課金機能を理解し、新しいオファーを使った企画やテストの実施に役立てることができるようになります。