Unity as a Libraryは、Unityで書いたコードをライブラリとしてiOSアプリケーションに組み込むことができる仕組みです。
この仕組みによってUnityを用いた3D表現を取り入れつつもSwiftUI / UIKitを用いたネイティブUIの提供を実現することができます。
Unity as a Libraryは強力な仕組みですが、ビルド時間増加や実機 / シミュレーター切り替えが容易にできず開発体験が低下してしまう問題や、ネイティブとUnity間でのデータの取り回しやUnityからネイティブ機能を利用したい場合の課題など、様々な課題が存在します。
このトークでは、Unity as a Libraryの概要を説明した後に、実際にUnity as a Libraryを利用しているアプリを開発している中で直面した課題とその改善について紹介します。
Unity as a Libraryは、Unityで書いたコードをライブラリとしてiOSアプリケーションに組み込むことができる仕組みです。
この仕組みによってUnityを用いた3D表現を取り入れつつもSwiftUI / UIKitを用いたネイティブUIの提供を実現することができます。
Unity as a Libraryは強力な仕組みですが課題も多く、Unity Projectのサイズが大きくなることによりビルド時間の増加やエラーが起きること、実機 / シミュレーターの切り替えが容易に行えずに開発体験を悪化させてしまう、といったビルド関連の課題があります。
このトークでは、Unity as a Libraryの概要を簡単に説明した後に、実際にUnity as a Libraryを利用しているアプリで行ったビルド改善について紹介します。
新規プロジェクトに参画してREADMEの開発環境構築を実施するだけで一日が終わってしまった経験はありませんか?
make コマンドは、長い歴史を持つビルドツールですが、iOSプロジェクトにも簡単に導入することができます。
Makefile の力を借りて知識の共有と開発プロセスのスタンダード化を実現する方法を紹介します。
開発環境構築をコマンド一発で完了したい
あの人の神コマンドをチーム内で共有したい
そんな悩みを Makefile で全てタスク化することで解消し、成功への道を歩みましょう。
モジュール分割していてもアプリの成長とともにプロジェクトの複雑さは増加し、依存関係を把握しきれず、さらに依存関係の改善を後回しにしたり放置することもあるのではないでしょうか。
そこで開発したのがSwift製ツール「XcodeTargetGraphGen」で、GitHub上で公開しています。これは.xcodeprojからモジュールの依存関係を抽出しマーメイド記法で可視化します。開発者はこのツールにより全体像掴みアーキテクチャの改善点を特定でき、もちろんGitHub ActionsによりPR時の自動化も可能です。
このセッションでは.xcodeprojについて解説し、導入方法とCI実行によるユースケースを通じ依存関係の自動可視化がどのようにプロジェクトの理解に役立つか実演します。
依存関係に頭を悩ませている方、あるいは大規模なプロジェクトを手掛ける方へ役立つ情報となるはずです。
iOSアプリを担当することになって、何から手をつけていいかわからない経験はありませんか?
このセッションでは、チーム開発で役立つ実用的な5つのツールを
実際の導入手順や基本的な設定、注意点などを説明します。
効率的な開発と円滑なチームコラボレーションの両方を実現するために、5つのツールの活用方法とチーム開発の重要性を探求しましょう。
WWDC23にてApple初のXRデバイスであるVision Proが発表されたことで、今後3D表現を用いたアプリケーションの開発需要がますます高まることが予想されます。
Appleプラットフォームで3D表現を用いるアプリケーションの開発方法として現在メジャーなものは、RealityKit、SceneKitを使う方法や、Metalを利用する方法に加え、UnityやUnreal Engineといったゲームエンジンを使う方法が存在します。
このトークでは、これらの3D表現のためのフレームワークやゲームエンジンの比較を行い、それぞれの特性とユースケースについて解説します。
ハッカソンや業務委託での開発のような、限られた時間と制約のある環境で多機能なアプリを開発することは容易ではありません。
弊社の新卒研修では、3週間でTwitterライクなアプリを開発する研修が行われました。ユーザー認証、投稿や一覧表示の基本機能に加えて、いいね、フォロー、リツイートなどの様々な機能を一通り実装しました。
開発期間が限られ、制約もある中、チームメンバー同士で技術選定やアーキテクチャについて詳細に話し合いました。そしてチームメンバーのスキルや開発期間を考慮し、実装要件を満たすための適切な設計を考えました。
本トークでは、限られた時間と新卒メンバー同士の環境下で、どのように設計や技術選定を行い、ハイレベルな実装要件を達成したかについて共有します。
また私が感じた、新卒エンジニアから見たチーム開発での重要なポイントや改善点を共有します。
iOSDC Japan 2020、2021で発表してきた『iOSではじめるWebAR』シリーズの最新版です!
先日のWWDC23で、SafariのレンダリングエンジンであるWebKitがWebXR Device APIに対応することが発表されました。
Spatial Webを見据えた“これから”を考える布石として、iOS 15.4から“限定的に”対応しているWebXR Device APIの最新状況の他、AR Quick Lookやmodel要素といったiOSにおけるWebARの“現状”をコンパクトにお伝えします。
Fluid InterfacesはAppleの提唱するデザイン思想で、iOSの世界では避けては通れません。
“Fluid” でない体験は、摩擦を生み、ユーザの信頼を損ねます。
Appleは “とにかく作ってみること” を強調しているため、ここでは実際に作ることを重視します。
このトークでは、デモアプリが配信され、デモを交えて理論と実践を行き来して、”Fluid” な世界に足を踏み入れます。
このトークで話す内容
対象者
iOS/Androidのネイティブアプリを並行開発時には、考え方の違いをネガティブに捉えず、共通点や相違点等から理解のヒントを得る事が重要だと考えています。
本発表では、いわゆる「1粒で2度美味しく」取り組む際の「Positiveに壁を越えて楽しむ」過程や着眼点を紹介する予定です。
【UI実装やLayout処理観点の違いを見極める】
【iOS/Androidでの共通点や類似点を探し出す】
【明確に違いがある部分を知る】
Swift Concurrencyの登場から2年が経過し、実際のプロダクトでもRxSwiftからSwift Concurrencyへの移行が進んでいることでしょう。
しかしいきなり脱RxSwiftしようとすると得てして想像以上に影響範囲が広くなるため、影響範囲を抑えるべくミニマムなリプレースから始めていくことになります。
本トークでは、どんなシンプルなアプリでも非同期処理から逃げられない通信周りの処理について、RxSwiftによる実装からSwift Concurrencyによる実装へ最小工数で移行したプロセスについて説明します。
deprecated
を使った未移行箇所の特定方法Apple は今年の WWDC で Vision Pro を発表しました。AR の将来がとても期待できます。皆さんも AR の開発に興味が湧いていると思います。
AR コンテンツを開発するとき、プログラミングの部分だけでなく、3D に関する知識も必要になります。しかし、ゲーム開発をやったことない、3D を触ったこともないから、どこから勉強すればいいかわからないことがありませんか。今回、Animoji を通じて、AR コンテンツの作り方を一緒に体験しましょう。
Animoji は、カメラで撮影した人の顔の動きを検知し、キャラクターがリアルタイムで同じ表情を表現するものです。今回は、Blender を使用したモデルの準備から、ARKit の実装まで、最初から一つの AR コンテンツを完成します。この流れを体験したら、将来 AR コンテンツを作りたい時参考になるでしょう。
昨今のiOSアプリ開発に関わる技術トレンドの変化は目まぐるしく、後進育成においても、何を・どこまで・どのように教えるのが良いのか、悩む人も多いのではないでしょうか。
私たちのチームでは、過去2年間、チームの新卒入社メンバーに向けたOJTを実施し、VIPERベースのアーキテクチャのプロダクトコードを題材に、アプリ開発のスキルのインプットと開発チームへのオンボーディングをフォローしてきました。
本トークでは、トレーナー・トレーニーの両方の視点から過去2年分のOJTを振り返り、
などのトピックを中心に、開発者の育成をスタートする上で大切なことをお話しします。
Fluid InterfacesはAppleの提唱するデザイン思想で、iOSの世界では避けては通れません。
“Fluid” でない体験は、摩擦を生み、ユーザの信頼を損ねます。
Appleは “遊び心” と “とにかく作ってみること” を強調しているため、ここでは遊び心を持って実際に作ってみます。
このトークをきっかけに、”Fluid” な世界に足を踏み入れてみましょう。
このトークで話す内容
対象者
持ち物
ネイティブアプリのロジック共通化にKotlin Multiplatform Mobile(KMM)を導入するアプリが増えてきました。
しかし、KMMでiOSのロジックを共通化するにあたっての設計や、Swiftで使いたい技術との共存など、より便利に使うためのベストプラクティスはまだまだ未知数な部分が多いのではないでしょうか。
私たちのアプリではKMM活用した新アーキテクチャを設計し、大規模なリアーキテクチャを進めています。
そこで本トークでは「タップル」アプリにおける新アーキテクチャについて紹介し、
についてお話しします。
皆さんが駆け出しの頃、「どう実装していいかわからない」「このバグを解決する方法がわからない」といった壁に直面した際、どのように対処していたでしょうか?
例えば、新規プロジェクトを別で作成して解決するまでトライアンドエラーを繰り返したり、それっぽい記事が見つかるまでググったり、公式ドキュメントを何時間もかけて漁ったりでしょうか?
これらのやり方は決して悪いことではありません。むしろ長期的な成長を考えれば、自力で解決する力がついたり、求める情報を見つける過程で新しいことを知れたりと、良いことづくしです。
ですが、業務として開発する際は別の話です。
効率的な解決方法や時間の重要性も考慮する必要があります。
本LTでは、先輩に質問すれば迅速に解決できる課題に数時間かけることのメリットとデメリットを提示しつつ、自己成長と効率的な業務遂行の両立を図るためのベストプラクティスを提案します。
SaaS モバイルアプリケーション開発のための共通基盤としてKotlin Multiplatform Mobile(KMM)を使用する事例を紹介します。特にSaaSドメインでは、モバイルデバイス管理(MDM)のサポートが必須となります。そのため、UI以外を共通化し、複数のプラットフォーム(iOS、Androidなど)で効率的な開発を可能にするKMMは、この要件を満たすのに適しています。このセッションでは、開発効率、コードの再利用、テスト/CI、そしてメンテナンス性に焦点を当て、KMMの活用によるこれらの要素の改善方法を示します。また、このプロセスで遭遇した課題やそれらの解決策についても詳しく説明します。このセッションは、複数のプラットフォームでの効率的なアプリ開発を目指す開発者や、SaaS環境でのKMMの活用を探しているテクノロジーリーダーにとって、手助けとなる情報を提供します。
iOS 14より、Accessibilityフレームワークが登場しました。
Accessibilityフレームワークが初めて導入されたiOS 14では、カスタムコンテンツをUIコンポーネントに含めるなど、アクセシビリティの向上につながる機能が追加されました。
時は進み、現在のAccessibilityフレームワークではカスタムコンテンツのみならず、さまざまな機能が含まれるようになりました。
当トークでは、Accessibilityフレームワークの機能を俯瞰し、アプリ開発者に対し、iOS上でどうアクセシビリティ向上が図れるのかを見ていくトークとなります。
近年、ARやVRが注目を集め、それに伴い空間感のある映像表現の需要は高まり続けています。
私が撮影スタジオ作業に携わる中で、空間内位置情報取得とカメラトラッキングデータ取得の準備と手間に大きな課題を感じていました。
そこでiPhoneを活用することでその課題を解消した制作ワークフロー実現が期待できます。
ソースコードの解説と、データ取得からAR動画書き出しまでのデモにより、分かりやすく説明します。
このトークを聞くことで、AR表現や空間データの面白さと可能性を実感していただけることを願っています。
この分野に興味がある方は、ぜひ一緒にARの未来を切り拓きましょう。
Kotlin Multiplatform Mobile(KMM)を導入するにあたってこのような課題を感じたことはありませんか?
本トークでは、「タップル」アプリにおけるKMMとSwiftを相互に活かすための大規模なリアーキテクチャについて以下の内容を中心に紹介します。
このトークを通じて皆様のKMM導入を考えるきっかけとなれば幸いです。