採択
2022/09/10 17:15〜
Track D
レギュラートーク(40分)

SwiftUI Navigation のすべて

kalupas226 アイカワ

SwiftUIのNavigation APIは「Tab, Alert, Sheet, Navigation Link...」など様々な種類が存在し、OSによるインターフェースの変化も激しいです。
また、これらのAPIを利用して画面遷移を実現する際には多くの選択肢があり、画面遷移が増えれば状態管理も複雑になります。

このトークでは、そんなSwiftUI Navigationについて以下の内容で発表します。

・SwiftUIのシンプルな画面遷移と状態駆動型の画面遷移について俯瞰
・状態駆動型の画面遷移の利用時に起きる状態の不整合、不要な状態の管理を改善するswiftui-navigationの手法

本トークではPoint-Free製のswiftui-navigationを深掘ることによって、よりSwiftUIのNavigationについて理解できるようになることを目指します。

LT(5分)

1年間継続している自転車駆動開発のすべて

tokizuoh tokizo

人間にとって、健康は日々の生活においてとても重要です。
エンジニアにとって、新しい技術のキャッチアップは日々の開発を行う上でとても重要です。

いつも物事が長く続かなかった私が、健康と新しい技術のキャッチアップ、この両方のモチベーションを1年間保ち続けて得たことを紹介します。

以下のテーマをお届けします。

  • 健康と技術、両方を数値化して定量的にモチベーションを維持
  • HealthKitを使ったワークアウト管理のカスタマイズ
  • HealthKitでSwift Concurrencyを学ぶきっかけ作り
2
レギュラートーク(20分)

あなたの知らないCore Dataの世界

coffeegyunyu 日向強

複雑なユーザーデータを扱うには、アプリ内データベースを使うことは避けられません。
皆さんはどんなデータベースをお使いでしょうか?

iOSで用意されているCore Dataは、OSのバージョンアップごとに、SwiftUIやDiffable Data Sourceを使う上でとても便利で強力な機能が追加されているなど、iOSアプリを開発する上でとても便利です。
しかし、その一方であまりフィーチャーされてない機能、「これどうやって使うんだ」な説明不足な機能があるのも事実です。
「何となく使いづらそう」「他のもので十分」な人も多いかと思います。

そんなCore Dataに関して「こんなこともできますよ」な魅力に溢れた様々な機能を説明していくトークになります。
「へー、こんなことができるんだ」や「使えそう」などとちょっとでも思っていただければ幸いです。

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

SwiftUIにRealmを導入するとViewとModelだけでアプリが作れる話

tomsan96 とむ

iOSアプリで使うデータベースとしては、RealmやCoreDataが有名です。
特にRealmを使ったことがある方は多いのではないでしょうか。
本トークではSwiftUIにRealmを導入して実装する上での知見をお伝えし、みなさんがこの構成でアプリを作るまでの第一歩をサポートします。

昨年、RealmはアップデートでSwiftUIとの親和性が高くなりました。
その結果、データ・バインディングを行うViewModelを開発者が実装しなくても、ViewとModelさえあればアプリを作ることができるようになっています。
どのようなアップデートがされたのか、なぜViewModelに相当するものが不要なのかを解説します。
新しくなったRealmを活用するととても便利なのですが、現状注意しなければならない問題もあるためその回避方法も合わせて説明します。

10
採択
原稿(4ページ)

Apple Silicon から学ぶ CPU の歴史

AkkeyLab AkkeyLab

・x86_64 と arm64
・Rosetta から Rosetta2 へ
・CPU アーキテクチャ変更2回目の Apple

皆さんは現在利用している Mac の CPU アーキテクチャをご存知でしょうか?アーキテクチャと言っても MVVM とか Clean Architecture のようなソフトウェアアーキテクチャではなく、命令セットアーキテクチャと呼ばれるものになります。
例えば、Intel であれば x64, Apple Silicon であれば ARM が命令セットアーキテクチャです。

本稿では Apple Silicon を中心に CPU に関する歴史を文系・理系関係なく楽しんでいただけるようにご紹介します。
日頃使っている開発環境がどのようなハードウェア設計のもとで動作しているかを知ることで、Apple の素晴らしいハードウェアが更に好きになること間違いなしです!

11
採択
原稿(8ページ)

AkkeyLab流イミフクラッシュ解読術

AkkeyLab AkkeyLab

・手元で再現できない
・心当たりのないクラッシュ
・何ヶ月も触ってない行でクラッシュ

このように嫌な予感がする現象に皆さん一度は遭遇したことがあるのではないでしょうか。
そして、調査手順次第ではもっと早く原因特定できたのに…と悔しい思いをしたこともあるかもしれません。
そこで、本稿では効率的な原因探索方法を図を用いて解説いたします。

・直近でアプリのリリースがなければサーバ側の調査(GCP を例にご紹介)
・スタックトレースと合わせてクラッシュ直前のログも確認
・外部要因が疑われる場合は Twitter を活用
などなど

このような調査手順に絶対的正解は存在しないため、チームでも属人化しがちな箇所ではないでしょうか。
そこで、本稿を元にチームでアレンジを加え、秘伝のタレとして育ててみてはいかがでしょうか?ドメイン知識の薄い新メンバーも爆速で難問解読のプロになること間違いなしです!

9
LT(5分)

iBeacon ( BLE ) を扱う前に知っておきたいテストTips

kuroruri くろるり

iBeaconと連携するアプリの機能実装は簡単そうに見えて、やってみたら意外と難しい、という経験がある人は何人かいらっしゃるでしょう。
そうiBeaconを使った機能の実装は意外と難しいのです。
開発環境ではきちんと動いたので安心していたのに、実際にビーコンを動作させる環境で動かしてみると期待通り動かない、なんてのはよくある話です。
そうなる原因は電波環境の違いという見えない罠が存在することです。
その罠に気がつくのが遅くなるほど、開発に致命的な影響が出て慌てふためくことでしょう。

本LTでは後から慌てる状況にならないため、iBeaconを扱う機能を実装し始めるよりも前に知っておきたいテストのTipsをお話します。

※iBeaconと言ってますがAndroid側でのBLE実装も視野に入れた一般的な話をする予定です

3
採択
2022/09/10 18:10〜
Track B
レギュラートーク(20分)

CICD構築・自動化入門

kuroruri くろるり

プログラマーの三大美徳の一つと言われる怠惰さを一番発揮しやすい場所はどこでしょうか?
それはCICDを含む自動化の仕組みの構築にあると思います。

ソフトウェアの開発においてCICDはもはや必須です。
ではCICDで得られるものはなんでしょうか?
それは我々が余分な仕事をしなくて済む時間です。
例えば、アプリをビルドするのに自分のPCを何十分も専有され、その間コードは一行も触れないなんてのは嫌なのです。
そんな時間があるなら我々はもっと他にやりたいことがあるのです。
面倒なことは機械が勝手にやって欲しいのです。

本セッションでは今まで面倒な仕事を勤勉にこなしてきた人が明日から怠惰に過ごせるよう、普段の仕事を自動化していくための考え方と進め方についてお話します。
そして導入した仕組みをコスト的に効率良く運用するためにどうすればいいか、導入した後の改善法についてもお話します。

LT(5分)

忙しいあなたへ!!新しくなったFirebase Apple SDKで何が良くなったのか5分でサクッと紹介します!

oka_yuuji oka yuji

【概要】
Google I/O 2022にてFirebaseの新機能が発表されましたがその中でもiOSのSDKが正式にSwift対応となりFirebase Apple SDK 9.0.0となって発表されました。
今回は特にその中でもよく使用される認証機能のAuthenticationとデータ管理機能のFirestoreについて、何が良くなったのかサクッと5分でご紹介したいと思います。
【目次】(予定)
・Firebase Apple SDKの概要
・Authenticationは以前と比べて何が良くなったのか
 ・async/awaitに対応した実装例の紹介
・Firestoreは以前と比べて何が良くなったのか 
 ・async/awaitに対応した実装例の紹介
 ・Codableに対応した実装例の紹介(ベータ版でなくなった話)
・所感

4
採択
原稿(2ページ)

iOSDC Japan 2022のパンフレットを盛り上げるイラスト

littleossa リルオッサ

何らかの形でiOSDC Japanに貢献したいので、パンフレットを盛り上げる奇妙で陽気なイラストを描きます。
昨今、エンジニアの働き方としてリモートでの働き方も多くなりました。皆様はどんな働き方をしていますでしょうか?

今回は、「まだ世の中には存在していないだろうけど、こんなリモートワークスタイルもあったらいいのでは?」をいくつかピックアップしてイラストにします。

共感出来ないこと、間違いなし!!!!!

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

Notionを活用したユーザー行動ログと自動生成

satoshin21 satoshin21

我々はプロダクトをより成長させるために、我々は常にユーザーの行動ログを元に検証し、仮説をたて次の改善に繋げています。
ですが、ユーザーの行動ログを実際に運用し始めるとログに関する仕様書が作成、更新されていなかったり、各職種とログに対する認識齟齬が発生したりと様々な問題が発生します。

我々はこれらを解決すべく、普段ドキュメントやタスクの管理で使っているNotionを活用しログ仕様書の作成とコードの自動生成を実装し運用しています。今回はその実現方法と得られた恩恵についてお話します。

  1. 行動ログ管理の課題
  2. なぜログのドキュメント管理にNotionを選んだのか?
  3. Notion Databaseの設計
  4. SwiftPMで作るCLI Tool
  5. Notion APIとStencil
  6. ドキュメントの更新と自動生成フロー
3
採択
2022/09/12 15:20〜
Track A
LT(5分)

鉄道アプリを支えるテクノロジー

dotrikun Hiroshi Shikata

東急株式会社・東急電鉄株式会社では東急東横線や田園都市線などの鉄道をより便利にお使いいただくために「東急線アプリ」を提供しています。

このLTでは

  • アプリと連携する駅、線路、車両などのハードウェアについて
  • アプリと連携する線路信号システム、運行情報システムの技術
  • アプリ上でリアルタイムデータ更新するためのアーキテクチャ

など
普段知る機会の少ない鉄道のテクノロジーとiOSアプリでの活用についてご紹介します。

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

iOSではじめるWebAR 2022

ikkou HEAVEN chan / ikkou

iOSDC Japan 2019、2020と続けて発表している『iOSではじめるWebAR』の最新版です!

そんなに毎年目新しい発表はあるの?と思われる方がいるかもしれませんが、例えばひとつ大きなトピックを挙げるなら『iOS 15.4でWebXR Device APIに“限定的に”対応』しました!さてそれでどうなったのか?それからどうなったのか?

この1年間の関連するアップデートを振り返りつつ、SafariにおけるWebARの動向をお伝えします。
具体的には次のようなトピックスを想定しています。

  • iOS 15.4で限定的に対応したWebXR Device APIのその後
  • iOS 15で追加された実験的要素<model>の実態
  • iOSにおけるWebARコンテンツ開発の最新動向
  • iOSでも動くWebARを用いた最新事例
7
LT(5分)

RealityKitでMetalを書いてカスタムシェーダーをレンダリングしよう!

RealityKitはWWDC2019で発表されたARのレンダリングフレームワークです。年々機能も改善されています。
今回は、そのRealityKitでMetalを書いてカスタムシェーダーをレンダリングしてみようと思います。
カスタムシェーダーを書けるようになればRealityKitでできる表現の幅が広くなると思います。

サンプルとして顔認識を行い、顔の表面にカスタムシェーダーをかけるアプリをつくりました。
このアプリのソースコードを使いながらRealityKitとMetalの連携の仕方、カスタムシェーダーの書き方を紹介できればと思います。

内容:
RealityKitとMetalを連携する大まかな流れ
Metal側のコード
Swift側のコード
Appleのカスタムシェーダーのドキュメント紹介

このLTを聞いて少しでもRealityKitに興味を持っていただければ嬉しいです。

4
採択
2022/09/11 11:05〜
Track B
レギュラートーク(40分)

Swift Concurrency Next Step

stzn3 shiz

Swift5.5で登場したSwift Concurrencyは、非同期処理を簡潔で安全に扱える機能です。主な機能は既に追加済ですが、現在も新しい機能の追加や改善が行われています。
今回は、この1年で見られた進化や実装上のTipsなどを紹介します。また、Swift6以降に既存のコードが動かなくなるリスクを最小限に抑えるための段階的導入方法など、ちょっと先の未来についても見ていきます。

例:

  • Swift5.6以降の新機能や変更
  • エラーやキャンセル時の子タスクの挙動
  • Taskのinitとselfの関係
  • Actorが切り替わるタイミング
  • swift-async-algorithmsから見る実装方法
  • iOS frameworkとの連携
  • Swift6で何が起こるのか?

これからConcurrencyをもっと使ってみようと思っているみなさまのお役に立ちましたら幸いです。

採択
2022/09/10 18:45〜
Track D
レギュラートーク(20分)

令和時代のXML処理を考える 〜もしあなたが巨大なXMLと相見える(あいまみえる)ことになったら〜

coffeegyunyu 日向強

アプリがネットワークなど外部サービスを通じてデータをやり取りすることはもはや当たり前になっています。
そのデータの代表的な形式としてJSONがあり、これはSwiftではCodableを通して簡易に変換することができます。

しかしデータ形式というものはJSONに限らず様々なものがあり、例えばXMLもその一種です。
「iOSにはXMLParserというものが用意されているから、ドキュメント見ながら実装すれば余裕っしょ」
もし、そのドキュメント通りに動作しなかったらどう思いますか?

このトークは、XMLを処理するにあたって、XMLParserを中心に、iOSでできること、できないことを洗い出していかに効率的に処理ができるかを突き詰めるトークとなります。

採択
2022/09/12 13:00〜
Track D
レギュラートーク(40分)

react-reconcilerでオレオレReact Nativeを作ろう!

_kwzr_ ああうえ

Reactの思想であるLearn Once, Write Anywhereを推し進めるため、React内部にはReactをどこでも動かせるようにするreact-reconcilerというパッケージが存在します。

react-reconcilerはReact DOMやReact Nativeで利用されているUIの差分検出処理のパッケージで、JSXで書かれたコンポーネントのマウントや更新通知を受け取れます。これを使って独自のレンダラーを作ってみましょう。

このトークでは、react-reconcilerのレンダラーをSwift(UIKit)で実装して自分だけのReact Nativeを作る方法について話します。

LT(5分)

ある日、突然、著名ライブラリの共同開発者になったら

the_uhooi uhooi

「Feel free to cut a new tag/release」
(自由にリリースしていいよ)

こちらはある著名ライブラリへPull requestを送ったときに、突然言われた言葉です。
私はこの言葉とともにコラボレーター(共同開発者)へ招待され、自由にリリースできる権限を与えられました。

「なんで、私がコラボレーターに!?」

このライブラリは海外の著名な企業が提供しています。
海外で何の実績もない私がいきなりコラボレーターに招待され、何が起きたか理解できませんでした。

しかし慌てません。
最初のコメントへ冷静に :+1: の絵文字を付け、リリースを試みることに…
そこで経験したこととは!?


本トークでは、私が著名ライブラリのコラボレーターとしてどんな感じで動き、何をしたかざっくり紹介します。
私と同じく、突然コラボレーターになって慌てている人にオススメです。

6
採択
原稿(2ページ)

iOSアプリ開発あるある4コマ〜2022年版〜

the_uhooi uhooi

iOSアプリ開発でよくあること(俗にいう「あるある」)を4コママンガでめちゃくちゃ面白く表現します。
一昨年に続き昨年もXcodeがインストールできなかったので、今年こそ実際の開発のあるあるが言いたいです。

13
採択
2022/09/12 15:15〜
Track A
LT(5分)

JailBreakと向き合おう

darquro darquro

昔はiOSのJailBreakはよく行われていましたが、最近はiOSのアップデートによりJailBreakは少なくなったような印象です。
とはいえ何もしないのではなく、やれることはやっておいたほうがいいと思います。

本LTでは、JailBreakはどのような手段があるのか、アプリはどのような対策ができるのか、自分なりに調べた結果を共有したいと思います。