LT(5分)

カレンダー+ローカライズの戦い

tokorom 所 友太

Apple Vision Pro向けに「カレンダーを壁に貼り付ける」というだけのシンプルなアプリを作り始めました。
基本的には「カレンダーを表示する」だけですのですぐに実装できるものと甘くみていました。
しかしOSの言語設定に応じて「カレンダーをローカライズする」という要件を加えた途端、泥沼にハマることになりました...

このLTではカレンダーをローカライズするに際にぶちあたった予期せぬ問題とそれにどう対処し、もしくは諦めたかという苦しい戦いの経緯を赤裸々に語ります。

LT(5分)

続・SharePlayの歴史と進化:iOS18とApple Vision Proにおける新展開

tokorom 所 友太

iOSDC Japan 2023でご好評いただいた「SharePlayの歴史と進化」の続編です。

このLTでは、iOS18でのSharePlayの進化や、今年ついに発売されたApple Vision ProでのSharePlayの利用方法について楽しく解説します。
アップデートされた内容を中心に、SharePlayの歴史と進化についてもさらっと復習する予定です。

具体的な内容は以下の通りです。

  1. SharePlayの歴史:初期のリリースから現在までの進化を概観します。
  2. iOS18でのSharePlayのアップデート:新機能や改善点を詳細に解説します。
  3. Apple Vision ProでのSharePlay:新しいデバイスでの具体的な利用シーンとその可能性について紹介します。
LT(5分)

Agoraを用いた1on1ビデオ通話機能の開発と品質向上への取り組み

本発表ではAgoraを用いた1on1ビデオ通話機能の開発について、その実装方法と品質向上への取り組みを紹介します。
Agoraの基本的な使い方について紹介し、iOSアプリからAgora機能の呼び出し方、映像のViewへの出力などのビデオ通話機能の実装について解説します。
特に、通信環境の不安定さが品質に及ぼす影響と、それをどのように克服するかに焦点を当てます。具体的には、AgoraAPIを活用して通信品質を最適化する方法を紹介します。
さらに、ビデオ通話中に他の作業を同時に行うためのPicture in Picture(PiP)機能の導入についても触れます。PiP機能を利用することで、ユーザーエクスペリエンスを向上させるとともに、作業効率を上げることが可能となります。
このプレゼンテーションを通じて、ビデオ通話機能の開発に関心がある方々に、具体的な開発方法と品質向上への取り組みを理解していただき、それを自身のプロジェクトに活かしていただければ幸いです。

2
LT(5分)

What's Changed in App Review 2023-2024

monolithic_adam Adam Henry

App Store Review Guidelinesは長くて難解だと感じている方はいませんか?この5分のライトニングトークでは、一緒に最新のガイドラインを解読し、重要な変更点を理解しましょう!

このトークでは、以下のポイントに焦点を当てます。

  • 2023-2024年における主な変更点
  • 新しいガイドラインが誰のアプリに影響を与えるのか
  • 開発者が注意すべき具体的なポイント

このトークに参加することで、App Review Guidelinesの最新情報を把握し、アプリ開発におけるリスクを軽減する方法を学べます。ぜひ、一緒にApp Review Guidelinesを理解しましょう!

3
LT(5分)

CI/CDにおけるビルド時間RTA〜2024年版〜

皆さん自動テストやアプリ配布の待ち時間に満足していますか?
その待ち時間をいかに短縮するか?がやはりCI/CD上でのキャッシュ戦略だと思います。
また、今日様々なCI/CDサービスがある中でも、ライブラリ管理やビルド環境の組み合わせは限定されており、
キャッシュ可能なポイントはある程度絞られています。

本トークでは、以下のポイントを含む幅広いユースケースで有効なCI/CD上でのキャッシュポイントとその方法について、5分間で紹介します。

  • SwiftPM
  • Ruby製ツール(CocoaPods、 fastlaneなど)
  • homebrew管理のツール(Mint、 rbenvなど)
  • Kotlin Multiplatformなどを利用した際のビルドキャッシュ

これらの情報を通じて、明日からあなたのCI/CDの実行時間が一分一秒でも短くなる知識を提供します。

5
LT(5分)

SwiftDataでPreview用のモックデータを実装

y_oh22 Yoji Ohara

SwiftDataを使用して1:Nの親子関係のモデルをPreviewする際にエラーが発生した経験はありませんか?本トークでは、SwiftDataを用いたモックデータの実装方法について解説します。

SwiftDataの基本概念: SwiftDataの基本的な使い方と、1:Nの親子関係のモデルの定義方法について説明します。
モックデータの作成方法: Preview用のモックデータを作成するための具体的な手法を紹介します。

LT(5分)

ScreenTime APIのDeviceActivityReportを使って自分だけのスマホ利用レポートを作ってみよう

samor127 下森 周平

Screen Time APIで利用できる機能の一つに、アプリの利用時間を可視化できるDeviceActivityReport機能があります。iOSの設定画面では棒グラフでのレポートを閲覧できますが、DeviceActivityReport機能を使えば、自身のアプリに任意のSwiftUIベースのレポートを組み込むことが可能です。

このLTでは、DeviceActivityReportを組み込んだアプリを気軽に作れるように、以下の内容をカバーします。

  1. DeviceActivityReportで取得可能なデータ一覧
    どのようなデータが取得可能かを具体的に説明します。

  2. DeviceActivityReport有効化に必要な手順
    初心者でも分かりやすいように、具体的なステップを順を追って説明します。

  3. DeviceActivityReportの実装時に培った知見
    実装過程で得た知見や注意点について具体例を交えて紹介します。

これらの内容を通じて、参加者が自分のアプリにDeviceActivityReportを簡単に組み込めるようになることを目指します。

LT(5分)

新規アプリのCI/CD環境をXcode Cloudだけで構築する

oskmr_ Osaka Miseri

Xcode Cloud活用していますか?
リリースから2年弱が経ち、Xcode Cloudを利用しているプロダクトも増えてきたと思います。Xcode CloudはAppleが提供するCI/CDツールで、特にiOSアプリの開発において強力なサポートを提供します。

今年1月にリリースされた「恋するAI」アプリでは開発から運用までXcode Cloudのみの環境で開発を行なってきました。
他のツールと比べて若干の癖のあるXcode Cloudですが、SPMやTestFlight Internal Testingを活用することで従来よりも低価格・低コストで新規アプリの開発を進めることができました。

このセッションではXcode Cloudのみの環境で開発するにあたって利用したワークフローや既存ツールとの差異などを中心に以下の内容をお話しします。

  • Xcode Cloudをより活用するための設計やワークフロー
  • Xcode Cloudを活用してアプリのデバッグ環境を効率化する
  • GitHubActionsやBitrise等他のツールと比較してのメリット・デメリット
4
LT(5分)

とにかく型安全なHTTP

the_uhooi uhooi

2023年9月、swift-https-typesというパッケージの1.0.0がAppleからリリースされました。
このパッケージはHTTPを型安全に扱えるライブラリであり、HTTPクライアントとサーバーの両方を対象に設計されています。

めちゃくちゃ便利なのですが、まだ使っている人が少ないように感じます。
何のライブラリも使わず、標準の URLSession のみでHTTPクライアントを実装している方にぜひ使ってほしいです。

本LTでは、軽快な音楽と共にswift-https-typesがいかに型安全かテンポよく紹介します。

Don't worry, This is type... (safe!)

3
採択
2024/08/24 15:50〜
Track A
LT(5分)

あぶないDataプログラミング

ooba 大庭 慎一郎

SwiftのData型はバイナリデータを扱うための型です。
RandomAccessCollectionなどの便利なプロトコルに準拠しているおかげで、気軽にバイナリデータの読み書きができます。

でも「ほぼUInt8の配列でしょ」と思っているとそんなことはなく、Data型にしかない、面白くも「あぶない」特徴がいくつかあります。
それらを知らないとプログラムをクラッシュさせてしまうこともしばしば。

コードレビューでこの関数をLGTMしてしまいそうになったら、ぜひこのトークを聴いてください。

func getUInt32(from data: Data) -> UInt32 {
 switch data.count {
 case 0:
  return 0
 case 1:
  return UInt32(data[0])
 case 2, 3:
  return UInt32(data[1]) * 256 + UInt32(data[0])
 default:
  return data.withUnsafeBytes { $0.load(as: UInt32.self) }
 }
}

7
LT(5分)

SwiftUI時代のアーキテクチャ The Composable Architecture 入門から実践まで

_anrem anrem

SwiftUIの登場により、iOSアプリ開発におけるアーキテクチャ設計は新たな局面を迎えています。宣言的UIというパラダイムシフトの中で、状態管理やデータフローはどのようにあるべきでしょうか?本トークでは、SwiftUIと相性の良いアーキテクチャとして注目を集めるThe Composable Architecture(TCA)について、基礎から実践的な活用方法までを解説します。

対象者
・SwiftUIを用いたiOSアプリ開発に興味があるエンジニア
・従来のアーキテクチャに課題を感じているエンジニア
・The Composable Architectureについて学びたいエンジニア
・SwiftUIでより保守性、再利用性の高いコードを書きたいエンジニア

1
LT(5分)

PRのメトリクスを元にチームのコードレビューを爆速にする

oskmr_ Osaka Miseri

チーム開発をしていてコードレビューに課題を感じることはありませんか?
私たちのチームでは12人のエンジニアがフルタイムでiOSアプリ開発を行なっており、レビューの属人化やリードタイムがチーム内での大きな課題となっていました。

このセッションではどのようにしてチームのコードレビューを改善したのか以下の点を中心にお話しします。

  • コードレビューやマージまでのリードタイムの短縮するための仕組み
  • Code Ownerと自動アサインを活用して属人化を減らす
  • トランクベース開発の推進

このセッションを通して皆さんのチームのコードレビューがより良いものになれば幸いです。

3
LT(5分)

iOSアプリエンジニアに贈る!美しいvisionOSアプリの作り方

tanakasan2525 たなたつ

iOSアプリのUI設計に慣れているエンジニアでも、visionOSアプリのUI設計には新しい知識が求められます。
特に、iOSとは特性の異なるコンポーネントや独自のデザイン要素に注意する必要があります。

このトークでは、iOSアプリエンジニアの自分が実際にvisionOSアプリのUIデザインと開発をする中で直面した課題や得た知見等をまとめます。
そして、特にiOSアプリエンジニアがvisionOSアプリを開発する前に知っておくべきデザイン原則や、
iOSとは異なる部分、visionOSの罠と制約、実装時に役立つテクニックなどを端的に紹介します。

このトークを聴くことで、美しいvisionOSアプリをスムーズに開発するために、iOSアプリエンジニアにとって必要な知識が簡潔に得られるでしょう。

1
LT(5分)

TipKitについて

toshihirooya Toshihiro OYA

TipKitはiOS17で導入された新しいフレームワークです。

TipKitを使うことでアプリ内でユーザーに対して柔軟なヒント(Tips)をパーソナライズして提供することや、
アプリ内でのTipsを管理して提供することができるようになります。

今回のLTではTipKitでのできることや、実際のユースケースをまとめて話そうかと思います。

LT(5分)

マッチングアプリにおける最強の課金UIを見つけるまで

oskmr_ Osaka Miseri

アプリにおいてABテストが広く普及していますが、次のステップとして個別最適化が主流になりつつあります。
単に2つの画面を比較するだけでなく、ユーザーの行動パターンに基づいたセグメント分割を行い、ABテストでは拾えなかったユーザーにもアプローチすることでより高い効果を得ることができます。
私たちのアプリではユーザーごとに異なる18パターンの課金画面を提供することで、収益の最大化を目指しました。

このセッションでは、複数パターンの課金UI検証を通じて得た以下の内容についてお話しします。

  • 複雑な検証をデグレさせることなく、高速に実現するための設計と、その実装手法
  • 個別最適化がユーザーの課金率にどのような影響を与えたか

このセッションを通して、皆さんのアプリでも最強の課金UIを実現しましょう。

6
LT(5分)

2年半ぶりに復活!初心者運営チームが挑んだMobile Act再開への道のり

penguinsan_pg ぺんぎんさん

Mobile Actとは、フェンリルのエンジニアが主催するモバイルアプリ開発の勉強会です。以前は定期的に開催されていましたが、コロナ禍や運営メンバーの退職などの影響により、2021年を最後に開催が途絶えてしまいました。

そのような中、新しい運営チームはMobile Actを復活させるべく、様々な取り組みを行いました。
以前の運営メンバーがほとんどいない中で運営ノウハウが少ししか残っておらず、またポストコロナの時代となりリモート参加の需要など状況は以前とは大きく変わっていました。
このため、多くの試行錯誤を繰り返し、2024年5月に無事にMobile Actを再開することができました。

このトークでは、2年半ぶりに復活を遂げたMobile Actの裏側についてご紹介します。運営初心者たちがどのようにしてこの大きな挑戦を乗り越えたのか、そのストーリーをぜひお楽しみください。

1
LT(5分)

激重.swift

EXCode013 mori

最近、私たちは効率的で軽量なアプリを作ることにフォーカスしがちですが、その逆を行ってみたくありませんか?
今回の発表では、「いかに短いコードで、とんでもなく重いアプリを作り上げることができるか」をチャレンジします。

例えば無限ループを使ったり、無駄に多くのデータを一度に処理したりなどでメモリを大量に食い尽くす方法を模索したり
swift compilerから生成されるSILを複雑にできるかを模索したりして、デバイスの悲鳴が聞こえてきそうなアプリを作成します。

コードのシンプルさと、アプリの重さのコントラストをお楽しみいただけるような内容をご期待ください

LT(5分)

10年目アプリのライブラリSPMに全移行する大作戦

oskmr_ Osaka Miseri

近年のiOSアプリ開発においてはSwift Package Managerを用いてライブラリを管理する手法が一般的になりつつあります。
しかし、導入しているライブラリの中にはSwift Package Managerに対応していないものも存在します。

私たちのアプリは今年で10周年を迎える大規模アプリでおよそ30弱のライブラリが主にCocoaPodsで管理されています。
このセッションでは歴史ある大規模なアプリのライブラリを全てSPMに移行するにあたっての以下の内容をお話しします。

  • SPM移行のメリットとデメリット
  • SPM未対応ライブラリの対応方法
  • 移行後のパフォーマンスとメンテナンスの変化

このセッションを通じて、皆さんのアプリのライブラリ管理の参考になるノウハウを提供します。

4
LT(5分)

Universal Linksの陥りやすい罠とその回避方法5選!

kudokai00 くどかい

Universal Linksとは、SafariまたはWebサイトを経由することなく、アプリ内のコンテンツに直接リンクすることができる機能です。

実装過程で「設定は正しいはずなのにアプリに遷移しない」という経験はありませんか?

このトークでは、iOSアプリでのUniversal Linksの実装過程で実際に業務で直面した落とし穴とその解決方法について簡潔に紹介します。

このトークを通じて、Universal Linksの設定時に直面する典型的な問題を回避するための知識を得ることができます。また、Universal Linksの設定や実装をスムーズに進めるためのヒントとコツを提供します。

1
LT(5分)

僕もMainActorにアイソレートされたい!

ojun_9 ojun

現代のiOS開発において、非同期処理やマルチスレッドの問題は避けて通れない課題です。
そんな中で登場したSwiftのActorは、これらの課題を解決してくれます。

しかし、Actorが何なのかをよく分からないまま利用することは多いのではないでしょうか?
本LTでは、Actorの基本的な仕組みと、実際にどのように動作しているかを解説します。
特にMainActorに焦点を当て、アクター境界の概念を掘り下げ、非同期処理をよりシンプルかつ効果的に管理する方法を学びます。

それではみなさん、アクター境界で会いましょう!

2