Compose MultiplatformはiOS、Android、Desktopアプリ間でUIコードを共有できる宣言的UIフレームワークです。
これまでKotlin Multiplatformというクロスプラットフォームのフレームワークが存在しましたが、UIコードの共有はできませんでした。
しかし、Compose Multiplatformが登場により、この制約が解消されました。
Jetpack ComposeはAndroid開発向けの宣言的UIフレームワークですが、Compose Multiplatformを使うことで、同じUIコードをiOSアプリにも適用できます。
本セッションでは、以下の内容について解説します。
Jetpack ComposeとCompose Multiplatformのノウハウを身につけることで、効率的なクロスプラットフォーム開発が実現します。
iOS/Androidの垣根を越えた開発を目指す方の参考になればと思います。
iOSアプリでキーボードショートカットに対応するケースは多くありません。しかし、あなたのアプリがiPadで使用でき、長文のテキスト入力が必要な場合、キーボードショートカットを実装することで操作性が向上します。iOSアプリでは UIKeyCommand
を使用することで、カスタムのキーボードショートカットを作成できます。
本セッションでは、あまり知見が知られていないキーボードショートカットについて深く掘り下げます。
モバイルアプリ開発において、ネットワークエラーは当然想定しなければならないエラーです。ただネットワークエラーになった場合にアプリとして対処できることは「回線の復旧を待ってリトライ」であることがほとんどであり、正直雑に処理しているケースがほとんどではないでしょうか?
しかしネットワークエラーの適切なハンドリングによって、更なるUI/UXの向上が実現できるかもしれません。たとえば、YouTubeアプリはオフライン状態を検知した場合、アプリ内のダウンロード済動画への導線を表示するプレミアムユーザー向け機能があります。
本セッションでは、ネットワークエラーを適切に扱うための考え方と、実際の対応方法について話します。
具体的には以下の内容を扱います。
2024年4月、note iOSアプリはアプリ内課金機能をリリースしました。本セッションでは、StoreKit 2の導入、実装、テストについて説明します。これからアプリ内課金を実装しようとする方にとって、参考になる情報を提供できれば幸いです。
具体的には以下の内容を扱います。
note社では自動化に力をいれ、リリースフローを大幅にカイゼンしました。
具体的には、SlackからAppStoreConnectやTestFlightへの登録、リリースブランチの作成、メンテナンスやリリースノートの作成を自動化しました。
さらに、CI/CDを全面的にXcode Cloudに移行することで、煩雑だった証明書やプロビジョニングプロファイルの管理からも開放されました。
本トークではエンジニアがエンジニアリングに注力するために、実施した自動化とCI/CD最適化とそのポイントを紹介します。
[内容]
201x年、30代前半未経験のおじさんエンジニアが誕生しました。
もともと趣味の個人開発でアプリを作成していましたが、とあるきっかけでカジュアルゲームのiOSアプリ開発を手伝うことになりました。振り返ると当時の自分にとっては、変数名を大文字で宣言する、似たようなViewControllerを大量生産する、脳死コピペで実装するといった初歩的なエンジニアリングのミスは日常茶飯でした。
しかし、開発していたアプリが無料ランキングで1位になったことで転機が訪れました。その後、Android、フロントエンド、バックエンド開発、プロジェクトマネジメントと業務領域を広げ、転職を繰り返しながら今に至ることができました。
では、どうして今日に至るまで成長し続けることができたのでしょうか。このセッションでは、これまで取り組んできた学習方法を中心に、持続可能な成長方法を詳しく紹介します。
【このセッションで紹介する主なトピック】
このセッションが皆さんのキャリアのサポートとなることを願っています。
Nothing is too late to start !
アプリ開発においてCICD環境はなくてはならない存在です。エンジニアの開発生産性向上、そしてエンドユーザへ良いプロダクトを届け続けることなどはその導入目的となるでしょう。
アプリのCICD環境を構築する方法はさまざまあります。自前でビルドサーバを用意する方法、そして数多あるSaaSの中でチームや組織に合うサービスを選択することも良い方法です。
本セッションでは株式会社出前館が提供するエンドユーザ向けアプリ出前館アプリにおけるCICD環境(bitrise)の導入、React NativeからFlutterへの移行に伴う改修、そして新たなCICD環境(Teamcity)への移行についてお話します。4年間という短い期間にこれだけの取り組みをしてきたチームは少ないと自負しており、その苦労と葛藤について共有します。
CICD環境はチームや組織の事情、そしてプロダクトなどさまざまな要素の影響を受けます。本セッションを通して、これらの変化に柔軟に対応しつつ、CICD環境と付き合う術を共有できれば幸いです。
iOS 16.4 からPWA(Progressive Web Apps)にリモートプッシュ通知を送ることが出来るようになりました。
これによって、PWAとネイティブアプリの大きな差の一つが無くなったことになります。
そこで今回は iOS上のPWAで出来ることを振り返りつつ、どこまでネイティブアプリに近づけられるかを検証します。
このセッションを通して、PWAの可能性と限界を理解しつつ、ネイティブアプリでサービスを提供する意味を考えていければと思います。
iPhoneやApple Watchから簡単にクレジットカードなどを利用できるAppleウォレットにはイベントのチケットも登録できます。
そう、iOSDCのチケットも今年からAppleウォレットに保存できるようになりました!
受付時にメールが見つからなかったり、チケットサイトにログインできなかったりして困った経験がある方もいらっしゃるのではないでしょうか。
Appleウォレットにチケットを保存すればそうした困りごとからも解放されます。
筆者はiOSDC Japanが運営に使用しているWebシステム「fortee(フォルテ)」のAppleウォレット・Googleウォレット連携を実装しました。
しかし、Appleウォレットは公式ドキュメントの奥深くに潜らないとデバッグ方法が見つからなかったりと、初見だと実装時にハマるポイントがいくつかありました。
この発表では
を通して一般的なWebシステムからAppleウォレットにチケットを保存する方法を解説します。
「あのモジュールは負債まみれで入れたくないけど、この型や定数が必要で仕方なく使っている…」
そんな悩みを抱えていませんか?
技術負債から脱却するためには、大規模な改修がつきもので、その分リスクも高くなります。
このLTでは、コードベース全体に破壊的な変更を抑えつつ、ほぼ無傷でレガシーモジュールへの依存を剥がす方法を紹介します。
2025年8月25日にFirebase Dynamic Links(以降 FDL)サービスが終了を迎えます。
本発表では、FDLとお別れをする方法などについて、いくつかの方法を提案させていただきます。
本発表は以下に該当する方に参考にしていただければと思っています。
本発表では以下の内容で説明します。
現在、iOSでグラフを実装するには様々な選択肢があります。WWDC22ではSwift ChartsというApple公式のframeworkが公開されましたが、それまでは多くのプロダクトがDGCharts(旧Charts)というサードパーティ製のライブラリを使用していました。WWDC23ではSwift Chartsにアップデートが加えられましたが、DGChartsも引き続きアップデートされています。
では、今グラフを実装するならSwift ChartsとDGChartsのどちらを選ぶべきでしょうか?
このトークでは、Swift ChartsとDGChartsの性能を比較して、どちらを使うべきかを検討します。
具体的には以下の内容について比較・検討します。
また、Swift ChartsとDGChartsの基礎についても学ぶことができるため、事前知識がなくても聞くことができます。
このトークに参加してSwift ChartsとDGChartsの違いを深く理解し、あなたのプロジェクトに最適なグラフツールを一緒に探してみませんか?
皆さんは iOS Osushi をご存知でしょうか?
有志で運営を行っている、週1回更新で iOS の技術ニュースを発信しているサイトです。
そんな iOS Osushi ですが、その記事の作成・まとめ作業の大半は手作業で、まとめるまでにかかる時間はおよそ1時間ほどかかる場合もあり、少なからず管理メンバーたちの負担になってしまっています。
このセッションでは、負担になってしまっている特に「リリース情報の要約」の作業を生成 AI を用いて自動化し、効率化している取り組みについてご紹介します。
このセッションでは以下の内容を話します。
最近採用されることが多くなってきた UI フレームワークFlutterですが、その Flutter で iOS の UI をどう実現しているかご存知でしょうか?
Flutter での iOS の UI の実現は実は独自に描画されたもので、全てが iOS 標準の UI をそのまま使っているわけではないのです。
このセッションでは、そんな Flutter での iOS の UI の実現方法について Flutter の描画エンジンの話から実際の UI を見てどのような差異があるのか説明していきます。
このセッションは以下のような流れで行います。
Swift 5.5のリリースから早3年、Swift Concurrencyは日々の開発に普及しつつあります。非同期処理を手軽に扱えるようになりましたが、あなたの実装には大きな落とし穴があるかもしれません!
アプリケーション開発において、メインスレッドの健全性はユーザー体験を左右する重要な要素です。メインスレッドがブロックされると、UIの遅延やフリーズが発生し、ユーザーにとってストレスフルな体験となります。
このトークでは、Swift Concurrencyを使った非同期処理におけるメインスレッドのブロックリスクを見極めるため、クイズ形式で知識を深めます。
以下のトピックを扱ったクイズを出題します。
最近採用されることが多くなってきたUIフレームワークFlutterですが、そのFlutterでiOSのUIをどう実現しているかご存知でしょうか? FlutterでのiOSのUIの実現は、実は独自に描画されたもので、全てがiOS標準のUIをそのまま使っているわけではありません。
このセッションでは、そんなFlutterでのiOSのUIの実現方法について、Flutterの描画エンジンの話から実際のFlutterのソースコードを追いながら説明していきます。
このセッションは以下のような流れで行います。
2023年秋に公開されたwatchOS 10では、Apple Watchのインターフェースが大きく変わり、TabViewやNavigationStackなどのUI/UXが大幅に変化しました。
このセッションでは、SwiftUI、WidgetKit、Live ActivityなどのiOSにおける一般的な技術要素をApple Watchでどのように適用していくべきかを体系的に学びます。特に、より使いやすくなったwatchOS 10のアプリ開発における重要なトピックを深掘りします。
また、ComplicationやスマートスタックがApple Watch上でどのように動作するかについても詳しく解説します。
このセッションをご覧いただくことで、iOSエンジニアがApple Watchアプリの開発を始めるための基礎知識を得ることができます。これまでの知識を他のAppleプラットフォームに応用し、スキルの幅を広げる最初の一歩を踏み出しましょう。
Method Swizzlingはメソッドの実行時の挙動を動的に変更する強力な機能ですが、複数のライブラリが同じメソッドに対してSwizzlingを行う場合競合が発生しやすく、アプリケーションの安定性に影響を与える可能性があります。Method Swizzlingを行うライブラリがSwift Package Managerのマルチモジュール構成を採用する場合はこのアプリケーションへの影響を考える必要があります。
本トークではMethod Swizzlingのようなアプリケーション全体に影響を与えるAPIを利用したライブラリにおいて、Swift Package Managerのマルチモジュール構成を採用した場合でも正しくSwizzlingが行われるよう、各モジュールが独立して機能するように設計した事例について紹介します。このアプローチによりMethod Swizzlingを用いたライブラリでも、安全にマルチモジュール構成下での利用ができるようになります。
【内容】
・Method Swizzlingを用いたライブラリの例
・Method Swizzlingがアプリケーション全体に与える影響
・Method Swizzlingが正しく動作するマルチモジュール構成
本トークによって、開発者の皆さまがより良いモジュール設計ができるようになると幸いです。
Swiftでもシェルスクリプトのようなことができるのは既に知られていることかと思います。
しかし、標準の開発環境であるXcodeではSwiftスクリプトのサポートがほとんどされておらず、標準APIのコード補完すらできないのが現状です。
一方で、VSCode (Visual Studio Code)にSwiftプラグインを導入することでコード補完はもちろん、変数の型の確認が容易になるなどの恩恵を受けられます。
更に、GitHub Copilotも標準サポートされているのである程度の単純作業であればすぐにスクリプト化することができます。
本セッションではSwiftでスクリプトを書く際の注意点を紹介しつつ、実際に使っているシェルスクリプトをVSCode+GitHub CopilotでSwiftに書き直す様子をライブコーディングでお届けします。
Unlock the secrets of exporting privacy reports in Xcode.
A privacy report in iOS development refers to a detailed document that outlines how an app collects, uses, and shares user data.
This session covers typical errors you might encounter and also introduces a rare error uncovered by the speaker which is not written on the internet. You would be in trouble if you needed to handle it on your own. But don't worry! Gain a competitive edge by mastering these troubleshooting strategies, ensuring your iOS apps remain compliant with privacy standards. Don’t miss out on these essential insights!