レギュラートーク(20分)

xcodeprojectへの理解を深める20分間。なんとなくな知識を確実なものにしませんか?

tosh_3 tosh

xcodeprojのこと、どのくらい理解していますか?
よくコンフリクトするファイルのイメージの人も多いかもしれません。

しかし、実際にはここにはたくさんの情報が詰まっています。
例えば、Previewが特定のTargetの時だけ、コケてしまう、そんな時にログからはすぐに原因が身に付かなくても、これを読めるだけで解決に近づくそんな経験がありました。また、ここを読めるともしかしたら、わざわざXcodeにProjectを落とすことなく細かい設定まで確認できるようになったりします。
ビルドなどの仕組みを知る上でどういった情報が詰まっているのか、一緒に見て行きませんか?

内容

  • pbprojの大項目について
  • StoryboardとSwiftUIで作成した時の生成物と
  • CocoaPodsの導入によって、どのような変更が組み込まれるのか
  • Package.swiftとの違い
3
LT(5分)

iPadでのXcodeProjectを開発。Playgroundsの可能性と限界に迫る!

tosh_3 tosh

休日にちょっとカフェに寄った時に開発がしたい、でもMacは重いし嵩張るから持ち運びたくない。そう、そこで登場するのがiPadです。
いやいやPlaygroundsなんてできることが限られているよ、あれはただの遊び道具だよ、そんな風に考えいませんか?

いえいえ、Playgroundsはもっと可能性を秘めているツールなのです。
普段開発しているXcodeプロジェクトをiPadでも開発したくないですか?
実はPlaygroundsはそんなことも可能にしてくれたりします。

本LTでは、下記について話します

  • XcodeProjectをPlaygroundsに対応させる
  • Playgroundsでのビルドの仕組みを理解する
  • UIViewControllerReplesentableを使用しないUIKit開発

iPadでの優雅な開発体験を始めませんか。

1
レギュラートーク(40分)

10年以上の歴史を持つプロダクトのRosettaフリー 〜その中で遭遇した問題と解決法を公開します〜

tosh_3 tosh

先日、ZOZOTOWNをRosettaなしで動くようにしました。



ZOZOTOWNの仕組みは複雑で、自社ライブラリや多くのstatic frameworkを抱えていました。なかなか遭遇しないような問題に遭遇しました。そういった複雑な問題たちを紐解いていくことで多くの学びもありました。
そんなZOZOTOWNでのRosettaフリー化の経験を踏まえてこのセッションでは下記について話そうと思います。



- ZOZOTOWNのライブラリ管理構成の当時の状態と今の状態


  • 自社ライブラリのCarthageからCocoaPodsへの移行
    
- ソースコードのないStatic FrameworkのXCFramework化

  • Rosettaフリーを行う上でのモチベーション
  • Rosettaフリー化を戦略的にやるということ
    
- Rosettaフリーで得られた副次的な効果について
1
LT(5分)

推しのコード

el_metal_ elmetal

皆さんには推しのコードはありますか?
私は対象の概念をSwiftの表現力を活用して美しく記述されたコードが推しです。

このLTではどんなコードが推しになるのか、コード(和音)をコード(Swift)で表現し、
Swiftで表現されたコード(和音)を使って推しのコード(和音)進行を鳴らします。
Swiftと和音の美しさを是非楽しんでください。

4
レギュラートーク(20分)

iOSネイティブから見たFlutter : 同一アプリにおけるパフォーマンス比較

shoryu927 辰べえ

昨今のモバイルアプリケーション開発において、FlutterやReact Nativeなどのクロスプラットフォームも注目を集めています。
これらのフレームワークはiOSネイティブと比較した際に、どの程度のパフォーマンスを発揮し、またどのようなプロジェクトにおいて最適な選択となるのでしょうか?

本発表では実際に同一のモバイルアプリケーションをiOSネイティブとFlutterそれぞれで開発することで、UIの反応性や処理速度等のパフォーマンスの比較分析を行い、iOSネイティブとFlutterのパフォーマンスがクリティカルに異なるケースを明らかにします。

ご覧いただく皆様が技術選定を行う際に、本発表が根拠の1つとして助けとなれば幸いです。

2
レギュラートーク(20分)

数学の視点でプログラムを見たら 〜モノイドと準同型編〜

ta_ka_tsu ta_ka_tsu

数学の「代数学」と呼ばれる分野には「群」「環」「体」など、演算の性質に共通する性質を抽象化して考える枠組みが多くあります。
抽象化!まさにプログラマーが追い求めるものではありませんか!

本トークではその中でも「モノイド」および「準同型」という比較的シンプルな概念の紹介をします。
この視点で見てみるとプログラムの中にも同様の構造を持つものが数多く存在することがわかります。

この「モノイド」と「準同型」がどのようなものかについて、主にコードを例に挙げながら説明し、
・なぜ空配列をallSatisfyに渡すとtrueが返るのか?
・なぜCGRectにはCGRect.nullやCGRect.infiniteが存在するのか?
などのトピックについても触れたいと思います。

本セッションを聴くにあたり、数学の前提知識は必要ありません。
ぜひ一度、少し違った視点からプログラムを見てみませんか?

5
レギュラートーク(40分)

ゼロから理解するDependency Injection

_rockname 岩名勇輝

Dependency Injection(DI)とは、オブジェクトに必要な依存関係を外から注入する設計パターンです。オブジェクト間の依存を疎に保つことで、コードを再利用しやすくなり、テストを書きやすくなります。
さらに、依存関係を管理するコンテナクラスのDI Containerを用いることで、シングルトンのようなアンチパターンを用いることなくオブジェクトのライフタイムを管理することができます。

本トークでは、DIの存在しないプロジェクトへ段階的にDIを導入していきながら、DIによってどのような具体的な課題が解決されていくのかについて体系的にお話しします。発展的な内容として、マルチモジュールのプロジェクトにおける依存関係解決の戦略や、Property Wrapper, MacrosといったSwiftの言語機能を活用したボイラープレートの削減についてお話しします。

3
レギュラートーク(20分)

数学嫌いでもパターンを覚えれば怖くない!3Dのための行列入門

na9ain nagain

WWDC23で、Spatial ComputingというキーワードとともにvisionOSの発表がありました。これを機に3Dに興味を持った方も少なくないのではないでしょうか。

3D空間において、例えば、ゲームでお馴染みのホイールUIを指や顔の向きで操作したいとき、素朴に思い浮かぶのはposition(座標)やrotation(回転角)を計算する方法でしょう。しかし、このような複雑な操作を実現したい場合、transform(行列)を計算することでシンプルに解決できることが多いんです。

「行列?数学チックでなんかやだな」

お待ちください。本トークでは、数学の深淵には踏み入りません。visionOSでも使われるARKit・RealityKitを題材に、頻出の計算パターンと、そのパターンを使った実装例を動画を交えて紹介します。数学とは極力距離を置きつつ、行列を実戦で使えるようになりましょう!

1
LT(5分)

第2回 SF Symbolsアートソムリエ認定講習

littleossa リルオッサ

iOSDC Japan 2022内で世界初開催された衝撃のSF Symbolsアートソムリエ認定講習が帰ってくる!

SF Symbolsアートソムリエ認定講習では、SwiftUIとSF Symbolsとアートの革新的な融合を体験でき、Appleの方が思ってもみない究極のSF Symbolsの活用術を伝授します。

講習内容:

  1. SF Symbolsとの対話:
    シンボルを使いこなすための対話を通じて、発見と可能性を追求します。

  2. 創造的なペアリング:
    異なる世界観のシンボルを組み合わせ、新たな表現を開拓しましょう。

  3. SF Symbolsアートソムリエ認定講習:
    SF Symbolsの知識と感性を活かし、作品への応用力を考察します。

第1回SF Symbolsアートソムリエ認定資格の有効期限は、2023年8月31日までです。有効期限切れの方は再受講をお願い致します。

6
レギュラートーク(20分)

ウィジェットの可能性に心を躍らせる!iOS 17未満でもウィジェットのインタラクティブな動作を実現する方法

littleossa リルオッサ

WWDC 23において、iOS 17からウィジェットのインタラクティブな動作がサポートされることが発表されましたが、すでにインタラクティブ風に動作するウィジェットアプリを開発している私としては、「やっとAppleも追いついたか」と感じています。

このトークでは、iOS 17以降に限らず、ウィジェットをインタラクティブ風に動作させる方法についてご紹介します。

具体的には以下の内容に焦点を当てます。
・ iOS 17未満でもウィジェット上で動作するタスク完了ボタンの実装方法
・ ウィジェット上で動作するテキスト入力可能な検索フォームの実装方法
・ iOS 17以降のインタラクティブ風ウィジェットの未来展望

ウィジェットの可能性に心を躍らせ、具体的な事例と共にさまざまな実現可能性やインスピレーションを感じていただけるようなトークにしたいと思っております。

5
ルーキーズLT(5分)

復職時にやって良かった/やっけおけば良かったことN選

komaji504 komaji

皆さんは、職場の環境が変わったときや長期の休暇から復帰したときに、慣れない環境に素早くキャッチアップできるように、そしてワークライフバランスを維持するためにやって良かった/やっておけば良かったことはありますか?
私ごとですが、昨年に人生初の転職をし、その3ヶ月後には第一子が生まれて約3ヶ月間の育休を取得しました。つまり、6ヶ月間で2回の職場復帰を経験したことになります。
本トークでは、私が職場復帰を経験した中で、やって良かった/やっておけば良かったと思うことを紹介します。これから皆さんが転職や異動をされたり、長期休暇を取得されたりした際の参考になると嬉しいです。

5
レギュラートーク(20分)

XCTest(UI Testing)の活用をさらに加速させよう

tarappo tarappo

XCTest(UI Testing)は、アプリのUI要素に対して何かしらのアクションをおこなうことがメインのAPIでした。
しかし、iOSは進化しており、アプリを操作するだけではいろいろなテストをカバーすることがむずかしくなっています。

そこから、いろいろなAPIが徐々に提供されてきています。
たとえば、実行する端末に対して操作をするAPIも増えてきています。

また、UI Testingの進化だけではなく、それを活用する環境も進化してきています。
たとえば、自動テストの運用といった観点での機能追加も増えています。

そこで本トークではUI Testingをより活用できるように次について話していきます。

  • UI Testingの提供するAPIについて
  • テストの失敗をいかに効率よく発見し、対応をするか
  • テストの実行速度をいかに最適化するか
  • テストの実行環境の活用
8
レギュラートーク(20分)

未来を先取り!visionOSで空間コンピューティング時代のアプリを開発しよう

TAAT626 TAAT

WWDC 2023でついに、Apple初のヘッドセット端末であるApple Vision Proが発表されました!
Macがパーソナルコンピューティングを切り拓いたように、iPhoneはモバイルコンピューティングを、そして今度はVision Proが空間コンピューティングを切り拓いていくでしょう。

Apple Vision Proの発売は来年予定ですが、このトークでは一足先にvisionOS向けに空間コンピューティングのアプリ開発について紹介します。具体的には、visionOSでどのようなアプリを作れるのか、空間デザインや空間インターフェイス、どのように空間コンピューティングのアプリ開発を始めればいいのか、既存のiOSやiPadOS、Unityアプリの空間コンピューティングへの対応方法、などについて詳しく解説します。

一緒に空間コンピューティング時代の幕開けに備えましょう!

1
ルーキーズLT(5分)

SwiftとRustの書き味が似てる件

daido1976 daido1976

SwiftはRustから多くのインスピレーションを得ており、特に今後のOwnershipの導入により、その類似性がより感じられるようになっています。
主な共通点として、パターンマッチ、リッチなenum、Option(nal)とResult、async/await構文、trait(protocol)などが挙げられます。(他にもたくさんあります)
また、新たに追加されたマクロ機能や、コンパイラによるスレッドセーフなコードの保証も共通の特徴です。

本発表では、これらの類似点に触れつつ、SwiftエンジニアがRustを、あるいはRustエンジニアがSwiftを書き始めるハードルを下げる新たな視点を提供します!

1
LT(5分)

未来を先取り!visionOSで空間コンピューティング時代のアプリを開発しよう

TAAT626 TAAT

WWDC 2023でついに、Apple初のヘッドセット端末であるApple Vision Proが発表されました!
Macがパーソナルコンピューティングを切り拓いたように、iPhoneはモバイルコンピューティングを、そして今度はVision Proが空間コンピューティングを切り拓いていくでしょう。

Apple Vision Proの発売は来年予定ですが、このトークでは一足先にvisionOS向けのアプリ開発について、どのようなアプリを作れるのか、どのように開発を始めればいいのか、既存アプリの対応方法など、空間コンピューティング時代のアプリ開発の基礎知識を紹介します。

一緒に空間コンピューティング時代の幕開けに備えましょう!

1
レギュラートーク(20分)

SwiftUIで作るコーチマークとTipKit

komaji504 komaji

アプリの機能を説明する手法は様々ありますが、コーチマークもその一つです。

コーチマークとは、オーバーレイで特定の機能にフォーカスさせつつその使い方を説明する手法です。これを実現するためには、フォーカスさせるViewの座標やサイズといった情報をView間で取り回す必要があり、複雑なView階層を持つ場合は実装もまた複雑になってしまいます。さて、SwiftUIではどのように実装するのがスマートなのでしょうか。

また、WWDC2023ではユーザに機能を説明するためのコンポーネントを提供するフレームワークとしてTipKitが発表されました。このフレームワークを活用することで、機能説明の幅が広がることでしょう。

そこで、本トークでは以下の内容についてお話しします。

  • コーチマークとは
  • SwiftUIにおけるコーチマークの実装例
  • TipKitでできること
  • TipKitを用いた実装例
6
レギュラートーク(20分)

プログラミング教材を作ろう!Playground Book概論

nirazo Kenzo Nirasawa

学習指導要領の改訂に伴い、プログラミング教育は2020年度から小学校で必修化され、翌年には中学校でも必修化されました。
そして、AppleからSwift Playground Bookを使った中学校向けの教材もリリースされています。

プログラミング教育にフォーカスが当たり始めた今、我々も若きエンジニアを育てるために何かできることはないでしょうか?
Swift Playground Bookなら、若い世代にプログラミングの楽しさを知ってもらうための教材作りがSwiftでできるのです。

本セッションではXcodeでPlayground Bookを作る方法からデバッグ方法、リリースの方法までを実際にコードを見ながら説明していきます。
アプリ開発とは全く異なるXcodeプロジェクトの構造から始まり、特殊な文章表現・単語説明機能などPlayground Bookならではの内容について解説します。

2
レギュラートーク(40分)

CloudKitでiOSアプリ開発をパワーアップ!クラウドの力で新たな次元へ

tsuzuki817 Ryo Tsuzukihashi

CloudKit使ってますか?

CloudKitはAppleが提供するクラウドサービスで iOS、macOS、watchOS、tvOSなどのAppleのエコシステム内で利用できます。
CloudKitを使用することで、データの保存、同期、共有、認証などの機能を簡単に実装することができます。

このトークでは、比較的わかりやすい言葉でCloudKitの活用方法を解説し、参加者が実際に使える知識やスキルを身につけることを目指します。
ぜひご参加いただき、クラウドの力を借りて驚くようなiOSアプリを開発しましょう!

アジェンダ(仮)

  • CloudKitの基礎
  • CloudKitを取り入れた設計
  • CloudKit Consoleでデータを見る
  • メリット・デメリット
  • etc...
1
LT(5分)

なぜあなたのPRはマージされないのか

WorldDownTown Keisuke Shoji

本発表では、リモートワーク環境でのPR (Pull Request) コミュニケーションに焦点を当て、その効率化と品質向上のための具体的なテクニックを共有します。

  • PRのマージを迅速かつ円滑に進めるためのコツを紹介します。タイトルやdescriptionに含めるべき要素、PR作成者が気をつけるべき点(レビュアーの負荷軽減、大きな変更の小分割、検証方法の明記、シミュレータの設定など)をに説明します。
  • PRのレビュー側が心掛けるべきことについて議論します。コードレビューのコミュニケーション方法、効率的なレビューのためのGitHubの機能活用法などを提案します。
  • これらのプラクティスがもたらす副次的な効果について触れます。丁寧なPRがどのようにチーム全体の効率と品質を向上させるのかを概観します。

必要十分なコミュニケーションで素早くPRがマージされるための知見を提供します。

2
レギュラートーク(20分)

Firebase Dynamic Linksがサービス終了!?いったいどうなっちゃうの〜!?

n_atmark あつや

先日、Firebase Dynamic Links (以下 FDL) が将来的にサービス終了となることがアナウンスされました。 (https://firebase.google.com/support/dynamic-links-faq?hl=ja)

FDLはアプリ流入のための専用のリンクを無料で発行でき、アプリのインストール状況に依らずユーザーをアプリへと連れてくることのできる強力な武器だったわけですが、FDLが無くなると今までFDLを用いて実現していたことはどうすればよいのでしょうか。

このセッションではFDLのサービス終了に備えて知っておきたい、以下のトピックについて紹介する予定です。

・FDLによって実現できていたこと
・アプリ未インストール時にストアを開く挙動を実現する方法
・アプリの初回起動後に特定画面を開く挙動を実現する方法
・FDLのサービス終了への備えと対策

2