植物の育成は楽しく癒しにもなりますが、水やりのタイミングを逃すと枯れてしまうこともあり、育成記録を続けるのも難しいという悩みが多くあります。
本セッションでは、iPhoneのCoreNFC機能を活用し、鉢に貼ったNFCタグにかざすだけで植物の育成ログを簡単に確認・記録できるスマートガーデン体験のプロトタイプを紹介します。
特に以下のポイントを中心に解説します。
CoreNFCの実装と技術的チャレンジ
・NDEFフォーマットタグの読み取り方法やiOSのユーザー操作必須などの制約への対応
・バックグラウンド制御やエラー処理などの実装上の工夫
植物情報とNFCタグのマッピング設計
・タグIDと植物データの紐付け方法
・育成情報の管理と同期の工夫
具体的なユーザー体験の工夫
・直感的な育成ログUIの設計例
・水やりや施肥のタイミングを知らせるリマインダー機能のシナリオ紹介
今後の展望とスマートホーム連携
・IoTセンサーやHomeKitとの連携による自動化可能性
・将来的なスマートガーデンの拡張イメージ
本セッションは、CoreNFCを活用したiOS開発に関心のあるエンジニアだけでなく、スマートガーデニングや生活に寄り添うテクノロジーに興味がある方にも有益な内容となります。
具体的な技術解説とユーザー体験の両面から、スマートガーデンの可能性を分かりやすくお伝えします。
AVFoundation は高機能なカメラアプリを作る上では欠かすことのできないフレームワークです。
AVFoundation は iPhone のカメラ関連のハードウェアと共に進化してきました。
本トークでは、時系列に iPhone のカメラ機能の進化を見ながら、 AVFoundation のカメラ関連の API がどのように変化してきたのかについて紹介します。
今後のカメラ機能の進化に備え、これまでの歴史を今一度振り返りましょう!
「空間だからこそできる動画編集体験」を目指し、Apple Vision Pro上で直感的に操作できる動画編集UIをRealityKitとSwiftで実装しました。
トリム、プレビューなど従来は2D平面で行っていた操作を、空間上に拡張することで身体感覚と結びついた編集体験を実現しています。
本セッションでは、以下のような実装事例と工夫を、Vision Pro実機でのデモを交えて紹介します:
特に「視線・身体位置・奥行き」という空間コンピューティングならではの要素を活かしたUX設計とその技術的裏付けを解説します。
動画編集に限らず、空間UIで複雑な操作を扱いたい方や、Vision Proで直感的で没入感のあるツール設計を目指す開発者にとって有益な内容です。
Apple Vision Proの空間環境に、動きのあるMotion Graphicsを表示する表現手法をSwiftとRealityKitで探究し、視線誘導・雰囲気演出・情報提示を目的としたインタラクティブな空間グラフィックシステムを構築しました。
本セッションでは、RealityKitベースで以下のような実装を実演とともに解説します。
さらに、Apple Vision Pro実機上での動作デモを交えながら 「通常の2D UIやタイムラインベースでは伝えられない情報を、空間でどう魅せるか」という観点で、デザインと空間的体験の融合プロセスを紹介します。
空間演出や映像表現に携わる方、またVision Proの先端的なUXを模索している開発者にとって、技術と表現の両面から学びのヒントを持ち帰れるセッションです。
SwiftでもProcessingのように気軽にクリエイティブコーディング作品を作りたい、そんな思いから作成したSwiftyCreativesライブラリについて紹介します。
このライブラリではMetalベースの独自レンダラーを実装しており、circle()やpush()など直感的なAPIを用いてiOS/macOS/visionOSアプリ上にリッチな2D/3Dグラフィックスを表示させることが可能になります。
本LTではSwiftyCreativesの設計思想とともに、このライブラリを用いたアート作品制作事例、そして公開アプリでの活用事例を紹介し、Swiftを用いたクリエイティブコーディングの可能性を提示します。
公開URL
https://github.com/yukiny0811/swifty-creatives
内容
・既存のMetalラッパーでは満足できなかった背景
・実際にこのライブラリを用いて作った作品を紹介
・コア設計について
・visionOS対応について
・Swiftでクリエイティブコーディングをすることの良さ
・公開アプリでの活用事例紹介
コード例
class MySketch: Sketch {
override func draw(encoder: SCEncoder) {
color(1, 0, 1, 1)
box(1, 1, 1)
push {
translate(5, 0, 0)
box(1, 1, 1)
}
}
}
struct ContentView: View {
var body: some View {
SketchView(MySketch())
}
}
iOSアプリ開発における依存性注入(Dependency Injection: DI)は、設計やテストの柔軟性を高める技術として広く使われてきました。その手法は多岐にわたり、Protocolを活用した実装から、SwinjectやResolverなどのDIコンテナ、PropertyWrapperによる注入の工夫、そしてSwift Dependenciesのような最近のフレームワークまで、時代とともに選択肢が広がっています。
中には、型パラメータインジェクションのように、初めて見たときに「こんなやり方があるのか」と驚くようなユニークな手法もありました。それぞれのアプローチには、設計方針や技術的背景、実際の導入シーンに応じた向き・不向きが存在します。
本LTでは、これまでiOSで使われてきたDIの手法を簡潔に紹介しつつ、その変遷を整理します。各手法がどのような課題に対して提案されてきたのか、現在どのように使われているのかを俯瞰することで、これからDIを導入したい方や、既存の設計を見直したい方のヒントになることを目指します。
「そのXCFramework、Swift Package Managerから使えるようにしてもらえませんか?」──その一言で始まった移行作業は、14回のやり直しとXcodeアップデートへの追従を伴う長い旅でした。
ChatGPTで手順を検索すれば"答え"は瞬時に見つかる時代ですが、SwiftPMの仕様上の制約やツールチェーンの細部は、実際にプロジェクトを回してこそ分かることも多いです。本セッションでは、あえて試行錯誤の過程そのものを共有し、「遠回りから得た経験値」をそっくり持ち帰っていただくことを狙います。
主な試行錯誤の流れは――
各段階での「なぜその判断をしたか」「なぜダメだったか」の思考プロセスを追い、SwiftPMやXcodeの仕様には載っていない現実的な制約とその回避策を共有します。理想的な解決策ではありませんが、実際に動くものを作った一つの事例として、同じ轍を踏まずに済む知見をお伝えする時間にできれば幸いです。
The Composable Architecture (TCA) は、SwiftUIとの親和性の高さやテストの容易さが魅力のアーキテクチャです。しかし、アプリケーションの規模が拡大し、親子関係にあるReducerが増えるにつれて、予期せぬパフォーマンスの低下に直面することがあります。
その主な原因の一つが、Actionの伝播に伴うReducerの再実行コストです。特に、状態(State)を変更する必要のない、単なるUIイベントの通知ですら、親子Reducer間を伝播することで、アプリケーション全体に無視できない負荷をかけてしまうケースが存在します。
本セッションでは、まずTCAにおけるAction呼び出しの仕組みと、それがなぜパフォーマンスボトルネックになり得るのかを、他のアーキテクチャ(Redux/Flux)との比較を交えながら解説します。
その上で、 TCAのAction呼び出し方式の変更により、パフォーマンスをどの程度改善できるかを、具体的なコードと実行時間の計測結果をもとに詳説します。
また、検証内容を元に、Swiftプログラミング全般に対して考えられるパフォーマンス改善の知見を共有します。
私、迅速大学4年のはやみ!視覚系の研究室で卒業研究のテーマに迷う普通の女子大生!
平凡な日常を過ごしていたある日、大学にApple Vision Proがやってきたの!Apple Vision Proに心を奪われた私は卒研で使うことを決意。必死で交渉する私の前に、一台のApple Vision Proが――
Apple Vision Proで実験をしたい!でもSwiftで3Dの実験アプリを作るのは大変!
そんな私がひねり出したアイデアとApple Vision Proとの格闘を見逃すなッ…!
というテーマで、私が実際に行った3年次事前研究「HMDを使用した情報表示における奥行き軸の活用と評価」の取り組みと、実験用アプリの開発の取り組みを紹介します。
このLTで話すこと
Apple から Swift-Java Interoperability への OSS コントリビュートを広く募っています。筆者が環境構築を行なった際に遭遇した事象から Issue を作成してレポートを行い解決に至った事例を紹介します。
Swiftは年々進化を続け、私たちiOSエンジニアに多くの便利な言語機能を提供してくれています。
しかしながら、普段Swiftを書いていて何気なく使っている言語機能がなんという正式名称なのかも知らないなんてことも多いでしょう。
このトークでは、私が日々の開発の中で「これは便利!」「Swiftらしい!」と感じているお気に入りの言語機能を発表します。
なぜそれらが好きなのか、どんな場面で役立つのか、現場での活用例やTipsも交えながら、短い時間でギュッとお伝えします。
Swiftの言語機能をもっと使いこなしたい方や、他のエンジニアがどんな機能を推しているのか知りたい方におすすめの内容です!一緒にSwiftの楽しさを再発見し愛でましょう!
iOSアプリ開発において、OSのバージョンや言語のバージョン等で今まで動いていたものが動かなくなることもあります。
非推奨なコードの中にはXcode上での警告によって簡単に気づき、修正することができるものもありますが、危険なコードではあるが警告が出ずにちゃんと動くものも存在するため、その例をいくつか紹介させていただきます。
危険なコードだが警告は出ない場合の例としては、「公式ドキュメントに定義されていない動作」 や 「公開されていないAPIに依存した実装」などが挙げられます。
それらを具体的なコードと共に紹介させていただきます。
Appleのドキュメントには、みんながよく知るKitたちが堂々と並んでいます。
でもそのすみっこには、目立たずひっそり、でもちゃんと役割を持ったKitたちが暮らしています。
「こんなアプリを作れたらいいな」と思ったとき、
ふとした偶然でそんな隅っこKitに出会うことがあります。
「あれ?知らなかったけど、こんなKitがあったんだ!」と、思わずほっこりする発見です。
このライトニングトークでは、そんなAppleドキュメントのすみっこで静かに息づく控えめだけど頼れるKitたちをゆるっと紹介します。
知られざるKitの世界を覗いて、ニッチなジャンルのアプリ開発の新しいアイデアを持ち帰ってもらえたら嬉しいです。
あなたの開発ライフの「すみっこ」で、静かに息づくKitたちの物語をぜひ覗いてみてください。
Kotlinカキカキソフトウェアエンジニアとして日々過ごしていてた私、iOSアプリ開発を始めるためにSwiftを業務のプロダクトで書き始めました。
KotlinとSwiftどちらもモバイルアプリ開発に使われる機会が多い、似ているシンタックス、簡潔な構文、非同期処理のネイティブサポート、表面的には非常に似た特徴を持つ2つの言語です。
一方で、書けば書くほどその裏側にある哲学が異なるのを感じます。
その違いを踏まえつつ、5分という尺をフルに使って、感じているあらためてSwiftのいいところを6個と、そして、気になるところを共有します。どちらが優れた言語だということを話すのではなく、改めてKotlinを長く書いてきたエンジニアの目線から見たときの「差分」を流れるように紹介し、議論に発展させる足がかりのLTにします
いいところ
気になるところ
CoreDataは、iOSアプリ内でのデータ永続化とCRUD操作を手軽に実装できる強力な標準フレームワークです。
少量のデータの読み書きを行うだけであれば、難しい考慮点なく利用することができます。
ですが、大量のデータを読み込んで表示する場合や、大量のデータの書き込みを行う場合は、
UI処理のブロックを防ぐ、大量データを高速に取り込める処理方法にするなどの考慮が必要となります。
具体的には以下のような工夫が必要となります。
・UI処理がブロックされないようバックグラウンドでデータ取得を行う。
・データ書き込みを数十〜数百件まとめて実施することにより高速化する。
このトークでは、これまでにCoreDataを用いて「1万件以上のデータの地図上への表示」や「100万件以上のデータのインポート処理」を実装してきた経験を基に、実用的な速度と利用感を実現するための具体的な手法をお話しします。
中途入社でiOSエンジニアに転身。
そんな私に最初に与えられたタスクはiOSアプリへの「Google Cast SDKを使ったChromecastの実装」でした。
Chromecastってアプリ画面をテレビにミラーリングするもの?AirPlayみたいなもの??
アプリの動きを見てそう思ったのも束の間、実際はまったく違いました。
スマホ(Sender)とテレビ(Receiver)がそれぞれ独立したアプリとして動き、相互に情報を送り合う独特なアーキテクチャ。
TVerやNetflix、YouTubeなどで見かけるキャストボタン。アプリでは目立つところにあるChromeCastですが、開発者にとってはドキュメントが少なく、
ハードルの高い技術です。(入社1年経った今でも難しい技術だったと思います)
このLTでは、Chromecastの基本的な仕組み、ハマりやすいポイント、実際のコード例を交えながら、リアルな開発の舞台裏をお届けします。
みなさん、サービス影響の大きなシステム改修の経験はありますか?
アンチパターンでアプリのデータ保存部分を実装してしまい数年…この実装を引き金に一部のユーザーでデータに関わる不具合が発生してしまいました。
この不具合を改善するためには、アンチパターンを解消しつつ既存のデータを安全な状態に移行しなければなりません。サービスの継続のためには失敗は許されないミッションです。
さて、どのように対処すべきでしょうか?
本トークではアンチパターンから適切な実装に移行を成功させるにあたって考え、実践したことについて下記の内容で発表します。
本トークを通じてサービス影響の大きな修正を可能な限り安全に行うためのノウハウや思考方法のヒントを持ち帰っていただければ幸いです。
SwiftUIを用いた宣言的UI開発における状態管理では、ライブラリを活用した巨人の肩に乗るアプローチや、独自実装を選択するアプローチなど、さまざまな選択肢が存在します。
本トークでは、コミュニティで広く適用されているTCA(The Composable Architecture)やMVVMとの比較を簡単に行いながら、Fluxのデータフローを実現するWebフロントエンドライブラリZustandを基にしたSwiftUI実装時の必要最低限のストア実装を紹介します。
Fluxデータフロー、SSoT(Single Source of Truth)を叶えるシンプルな選択肢の一つになれば幸いです!知見をお届けします!
現在、Claude CodeやCursor、Cline、WWDC2025で発表されたXcode 26などのツールが登場していますが、これらを用いたiOSアプリ開発におけるバイブコーディング環境はまだ十分に整っていない状況です。
自身も、Xcode以外のツールを使ってAI駆動開発を行うことに対して懐疑的でした。しかし、自社ではAI駆動開発が急速に進んでおり、特にWeb開発においてはAIを活用した事例が増加しています。この流れに乗り遅れないよう、モバイルアプリ開発でも今のうちに始める必要があると感じました。
そこで、VSCodeとClineを用いてiOSアプリのバイブコーディングを試みた結果、いくつかの不便さはあるものの、開発効率が大幅に向上する可能性を実感しました。本セッションでは、この試みの具体的な事例を紹介し、バイブコーディングの利点や課題について共有したいと考えています。
現在の多くの記事では、モックや新規アプリでの利用が主に取り上げられていますが、複雑な既存アプリにも十分活用できることを事例を交えてお話しします。具体的には、良かった点、課題、今後の期待について詳しく説明します。
また、もともと自チームでユースケース駆動設計を採用しており、これがバイブコーディングにおいて効果的であると感じています。この取り組みについても時間が許せば触れたいと思います。さらに、自社でのAI駆動開発の取り組みについても、許可が得られれば少し紹介したいと考えています。
Claude CodeやCursor、そしてXcode 26 ― iOS開発におけるAIアシストの選択肢は多くありますが、それぞれ一長一短あり、決定版はまだありません。とりわけ基盤をAppleが握るこの領域では、ほかの分野に比べて発展途上な部分がまだ目立ちます。
そこで鍵となるのが、AIと外部ツールを連携させるオープンプロトコル MCP です。本セッションでは、既存のAIコーディングアシストツールでは足りない部分を自作できるよう、MCPの基礎から実践までを解説します。
まずはFigma MCP、Xcode MCPといったiOSエンジニアになじみのある既存のMCPサーバーの使い方や機能から解説し、MCPの基礎を理解します。続いて最小構成のSwift製MCPサーバー実装を通してプロトコルの要点を学びましょう。あとはCLIやGUI、クラウドAPI等、iOS開発で役立つさまざまなツールをMCP経由でAIに道具として使わせる実践へと移ります。
足りないものは自作するのが我々エンジニア。AI向けの道具の作り方を覚え、AIをさらに便利に活用していきましょう。