OpenAPI Specification活用してますか?HTTP APIのインターフェース定義で仕様の認識合わせにうってつけ。エコシステムも充実しています。
WWDC23ではSwift特化のGenerator、Swift OpenAPI Generatorが発表されました。Swift Package pluginとして提供されたことでコードの生成から利用を、Xcodeを離れることなくスムーズに行えます。
似たコードを何度も書かずに済むという利点の一方、自動生成ならではのコツも存在します。例えばドキュメント生成のためだけなら気にしなくてよかったspecの書き方があります。また現時点の自動生成は未熟な点もありこのGenerator独自の実装方法を知る必要もあります。
本記事ではそんなSwift OpenAPI Generatorの導入手順や活用のコツを実際のコードを交えてご紹介します。
iOSアプリを担当することになって、何から手をつけていいかわからない経験はありませんか?
このセッションでは、チーム開発で役立つ実用的な5つのツールを
実際の導入手順や基本的な設定、注意点などを説明します。
効率的な開発と円滑なチームコラボレーションの両方を実現するために、5つのツールの活用方法とチーム開発の重要性を探求しましょう。
WWDC23にてApple初のXRデバイスであるVision Proが発表されたことで、今後3D表現を用いたアプリケーションの開発需要がますます高まることが予想されます。
Appleプラットフォームで3D表現を用いるアプリケーションの開発方法として現在メジャーなものは、RealityKit、SceneKitを使う方法や、Metalを利用する方法に加え、UnityやUnreal Engineといったゲームエンジンを使う方法が存在します。
このトークでは、これらの3D表現のためのフレームワークやゲームエンジンの比較を行い、それぞれの特性とユースケースについて解説します。
ハッカソンや業務委託での開発のような、限られた時間と制約のある環境で多機能なアプリを開発することは容易ではありません。
弊社の新卒研修では、3週間でTwitterライクなアプリを開発する研修が行われました。ユーザー認証、投稿や一覧表示の基本機能に加えて、いいね、フォロー、リツイートなどの様々な機能を一通り実装しました。
開発期間が限られ、制約もある中、チームメンバー同士で技術選定やアーキテクチャについて詳細に話し合いました。そしてチームメンバーのスキルや開発期間を考慮し、実装要件を満たすための適切な設計を考えました。
本トークでは、限られた時間と新卒メンバー同士の環境下で、どのように設計や技術選定を行い、ハイレベルな実装要件を達成したかについて共有します。
また私が感じた、新卒エンジニアから見たチーム開発での重要なポイントや改善点を共有します。
SheetやAlertなどのモーダルは、どこのViewやUIViewControllerからでも呼び出して遷移することができますが、それゆえに遷移の実装が無秩序に散らばってしまいがちです。本来のモーダルの構造を考慮せず状態を管理できていない場合、ユーザー操作以外で画面遷移をしなくていけなくなったりすると、確実に動作させることは難しいでしょう。
また、以前のSwiftUIの遷移は不完全なところがあり、UIKitを使う判断をすることも多かったかもしれませんが、最近では改善されてきて遷移を宣言的に管理することも現実的になっています。
モーダルに関わるUIの様々な問題点や最新のAPIの動向を把握し、より最適なモーダル遷移の実装を考えてみましょう。
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上でどうアクセシビリティ向上が図れるのかを見ていくトークとなります。
皆さんはシークレットキーをどのように管理していますか?
GitHub Sponsors を利用することで、一定の第三者にコードを公開する手法が登場するなど、ソースコードの公開スタイルは様々です。ただし、機密情報の管理方法には注意が必要です。契約を結んでいない技術者に機密情報が見える状態は、漏洩や不正アクセスなどのトラブルを引き起こす可能性を高めます。
本稿では、既存のチーム開発スタイルを維持しつつ、機密情報を Git のコミットに含めない開発手法を紹介します。Xcode Cloud への対応はもちろん、KMM(Kotlin Multiplatform Mobile)などの異なる開発スタイルでも有効な方法です。これは特に OSS活動 で力を発揮しますが、業務委託契約など、多様な働き方が進む中でトラブルを未然に防ぐためのノウハウとして活用できます。
近年、ARやVRが注目を集め、それに伴い空間感のある映像表現の需要は高まり続けています。
私が撮影スタジオ作業に携わる中で、空間内位置情報取得とカメラトラッキングデータ取得の準備と手間に大きな課題を感じていました。
そこでiPhoneを活用することでその課題を解消した制作ワークフロー実現が期待できます。
ソースコードの解説と、データ取得からAR動画書き出しまでのデモにより、分かりやすく説明します。
このトークを聞くことで、AR表現や空間データの面白さと可能性を実感していただけることを願っています。
この分野に興味がある方は、ぜひ一緒にARの未来を切り拓きましょう。
Kotlin Multiplatform Mobile(KMM)を導入するにあたってこのような課題を感じたことはありませんか?
本トークでは、「タップル」アプリにおけるKMMとSwiftを相互に活かすための大規模なリアーキテクチャについて以下の内容を中心に紹介します。
このトークを通じて皆様のKMM導入を考えるきっかけとなれば幸いです。
UI作成において、Compositional Layout(複数のセクションを一つのUICollectionViewインスタンスで管理するためのレイアウト)を使用すると、特定のセクションだけのスクロールイベントを取得するのが難しいという問題があります。
これは、通常の方法(デリゲートメソッド)では全体のスクロールイベントは取得できるものの、セクションごとのスクロールイベントを直接取得することはできないためです。
例えば、セクションごとにUISegmentedControlを設置するといったケースでは、この問題を解決するために工夫が必要となります。
その一つの方法として、visibleItemsInvalidationHandler(表示中のセルが変わった時に呼ばれるハンドラ)を利用する方法があります。
具体的な使用例とその効果について、このLTで解説します。