🎤

iOSDC Japan 2022 にスピーカー&コアスタッフとして参加しました

2022/10/04に公開

2022年9月10日〜9月12日の日程で、iOSDC Japan 2022 が開催されました。
https://iosdc.jp/2022/

iOSDC Japan 2022 はiOS関連技術をコアのテーマとしたソフトウェア技術者のためのカンファレンスです。今年はリアル会場とオンライン配信のハイブリッド開催を予定しています。
日本中、世界中から公募した知的好奇心を刺激するトークの他にも、パンフレットに掲載された技術記事、参加者であれば誰でも作れる即興のトーク・アンカンファレンスなど、初心者から上級者まで楽しめるコンテンツがみなさんを待っています。
- iOSDC Japan 2022 https://iosdc.jp/2022/

自分の参加形態

今年は「スピーカー」と「コアスタッフ」の2つの形態で参加しました。
この iOSDC Japan 2022 はオンライン・オフラインのハイブリッド開催でしたが、Day 0 から Day 2 の全日、オフラインで参加しました。自分のこれまでの参加形態をまとめると…

  • 2019: 当日スタッフ(Day 2 のみ)
  • 2020: コアスタッフ
  • 2021: コアスタッフ スピーカー
  • 2022: コアスタッフ スピーカー

となります。昨年は Revue に 2019〜2021 のお話を綴りましたので、もしご興味あれば…!

https://zenn.dev/treastrain/articles/27d21ee326d661

今年は iOSDC Japan 2022 の期間中(2022年9月10日〜9月12日)、所属している事業部から業務扱いとしてもらうことができたので、せっかくですからこの Zenn Publication への投稿としたいと思います。

コアスタッフとして

iOSDC Japan で「スタッフ」というと、「コアスタッフ」と「当日スタッフ」の二種類あります(これに「ネットワーク(専門)スタッフ」としての分類が加えられたりもします)。

「当日スタッフ」は読んで自の如く、iOSDC Japan 開催当日にさまざまなお手伝いを担当していただくスタッフとなっており、iOSDC Japan 2022 の場合は2022年7月29日から募集されていました。

そして、「コアスタッフ」は開催日よりももっと前の時期から、カンファレンスの実施に必要なあらゆる準備について実施し、当日スタッフたちのリーダー的ポジションも務めることになるスタッフとなります。iOSDC Japan の運営についてある程度知った状態だととてもスムーズなため、コアスタッフのほとんどは過去の当日スタッフ等の経験者となっています。

ノベルティボックスの箱設計・紹介ブログ記事執筆

iOSDC Japan ではもはや恒例となった「ノベルティボックス」、こちらの箱の設計を昨年に引き続き担当しました。
と言っても、過去の2年の経験からほとんどフローは確立しており、今回は大体の箱の大きさと内容物を取りまとめ、実際に箱へノベルティを封入してくださる業者との連絡を行う… といったものがメインになりました。

https://twitter.com/treastrain/status/1564441426275864576

箱のデザインだったり、中のノベルティは自分が作ったモノではありませんが、それでもやっぱりこうして実際の「モノ」として自分の手元にノベルティボックスが届いたときは、感動もひとしおでした。

また、こちらも昨年に引き続きですが、みなさんの手元へノベルティボックスが届く前に、中身の一部を紹介するブログ記事も執筆・公開しました。

https://blog.iosdc.jp/2022/08/16/novelty-items-2022/

今回は昨年からアップデートし、ノベルティボックスの 3D データファイル(USDZ 形式)をブログ記事内に掲載し、対応端末では AR でも確認できるようにしてみました。

https://twitter.com/treastrain/status/1559354858376794112

https://twitter.com/treastrain/status/1560276822637494274

はじめて Blender を使いました…。使いこなすにはまだまだ経験が必要です……。

https://twitter.com/treastrain/status/1558841466746990592

もう一つ取り組んだこと…?

iOSDC Japan は回を重ねるごとに新しい取り組みにも挑戦しています。今回、2019年開催ぶりのオフライン復活、情勢などもあり、とあるシステム構築に取り組みましたが……。それはまた別の記事でご紹介します。


iOSDC Japan 2022 - Track A (9/11 SUN.) より


オフライン参加で現地にいらっしゃった方は、こういうモノがあったのを覚えているでしょうか…

スピーカーとして

これらのコアスタッフ業とは完全に独立かつ並行して CfP も提出し、レギュラートーク(40分)の採択をいただきました。

https://fortee.jp/iosdc-japan-2022/proposal/40f51161-9c44-4330-ba92-e9aa407454c3

昨年は Formatter について同じレギュラートーク(40分)としてお話させていただき、ニッチな話題かな… と思いながらでしたが、「今でも役に立っています!」という嬉しいコメントもいただいています。ありがとうございます!

今年挑戦したのは、さらに一般受けはしないのではないかという、「"NFC"・"Core NFC" について40分間話し続ける」内容でした。しかし、会場では自分の想像よりも遥かにたくさんの方が聴いてくださり、フィードバックもいただきました。本当にありがとうございました…!後ほどアーカイブが YouTube で公開されると思います。当日投影した資料は SpeakerDeck にて公開しています。

https://twitter.com/treastrain/status/1568852010983882752

いただいたフィードバックの一部(表現の一部を変更しています)

  • NFC の仕様から説明があり、基礎的な情報を含めてキャッチアップできた
  • Core NFC 特有の制限や、自分で取り組まないと気づけないであろう注意点がまとまっていてよかった
  • 自分でもサンプル App を作ってみたいと思った
  • プライバシーに配慮した API が Apple らしいと感じた
  • iOS App 開発のために Android 端末を持っている方がよい、という重要な知見が得られた
  • 落ち着いてトークしていて(喋っていて)聴きやすかった

...etc.

また、このようなカンファレンスへの登壇自体は2回目なのですが、初回がその iOSDC Japan 2021 で完全オンライン開催(事前収録による登壇)だったので、このようにオフラインで事前収録を流すかたちではない登壇というのはこれが生まれてはじめての経験でした。貴重な経験をさせていただきました…!

https://twitter.com/treastrain/status/1568858469708754944

会社のエンジニアとして

また、昨年に引き続き会社のエンジニアブログの記事の執筆も担当していました。

https://engineering.dena.com/blog/2022/09/iosdcjp2022/

気になったトーク

例年、スタッフとして自分の担当をこなしながら、空いた時間には好きなトークを聴きに行く… というのができるのですが、今年は2年のオフライン開催ブランクによる体力の低下を忘れており、期間中はかなり忙しくしていました…。

(もし来年また開催されることがあれば、ぜひ当日スタッフとしてお手伝いいただけると嬉しいです…!人数が増えるとその分余裕が生まれます……!!!)

そのため以下に挙げるものは、いくつかは現地で聴いたもの、それ以外はアーカイブ等で見聞きしたものとなります。

ウーニャ、しってる。みんなふんいきでSwiftUIをつかってる。

https://fortee.jp/iosdc-japan-2022/proposal/28a7ecff-a0f1-40c9-80a5-b8ed2fb0fd94

ウホーイ(@the_uhooi)さんによる、SwiftUI の View で大きくなりがちなものを適宜分割したりするときの考え方についてのお話でした。いや、「お話」というよりも「みんなで議論する時間」だったというのが正しいかもしれません。トークの内容自体はさまざまな方が書かれたブログ記事などでたくさん出てきますのでここでは割愛しますが、トーク中の Twitter ハッシュタグを定めて、ウホーイさんがトークしながらそれらのツイートを拾っていく… というスタイルが、オフライン・オンラインのハイブリッド開催を活かしながらかつ双方向コミュニケーションも行う…… のが非常に印象的でした。

Swift Concurrency Next Step

https://fortee.jp/iosdc-japan-2022/proposal/1bbc3929-1302-4d62-9d0d-19de7083562d

shiz(@stzn3)さんによる、Swift 5.6 以降の Swift Concurrency に関するアップデートなどの情報が濃密に詰まったお話でした。昨年も Swift Concurrency についてのトークをされており、何度お世話になったか… というところでありますが、本トークではそれのおさらいも含まれています。とくに Swift 5.7 で起きた内容の変更点についてのまとめで出てくる内容(SE-0338 など)は、このトークのおかげで自分の認識を改めることができました。また、普段自分は「Swift の言語機能・コンパイラに頼るコーディングをする」ことを極力意識しているのですが、Concurrency な処理をどのようにコンパイラに頼るように寄せていくか… といった点などを再認識することができました。

Kotlin Multiplatform Mobile でiOSとAndroidの実装差異を無くす

https://fortee.jp/iosdc-japan-2022/proposal/f5526982-6ec8-4214-8236-c95d9523d529

新田 陸(@hal8563)さんによる、社内で iOS App プロジェクトに KMM を導入した際の取り組みについて解説するお話でした。リポジトリの管理方法、Kotlin で書かれた共有モジュールを CI/CD で管理… といったあたりの実務的なお話はとても勉強になりました。とくにエンジニアとして「iOS 担当」「Android 担当」「KMM 担当」と3つ配置しているといったあたりが非常に興味深かったです。

Kotlin 利用経験が10分くらいしかない私ですが、クロスプラットフォーム App 開発として Kotlin Multiplatform Mobile は個人的にもっとも興味のある仕組みです。過去にほんの少しだけ試した(そして失敗した)という発表を LT でしたのですが、再び KMM を使って何かアプリケーション開発してみたいと思ったトークでした!

Xcode が遅い! とにかく遅い!! 遅い Xcode をなんとかする方法

https://fortee.jp/iosdc-japan-2022/proposal/9d542893-3c30-4077-a85a-1c7ec68caa9c

Yoshimasa Niwa(@niw)さんによる、Xcode が遅い原因をとにかく深ぼっていくお話でした。〜〜という問題で悪いのはここの部分、それの回避策はこれで…… とトークは進んでいきとても勉強になりました。「この問題は Xcode のアップデートで直ります」というような場面で、会場から自然と拍手が起こっていたのがとても印象的でした。

即時通知を導入する際に考えるべきこと

https://fortee.jp/iosdc-japan-2022/proposal/dc963bce-52bd-429c-86ed-9a7b314063ce

あおい(@aomathwift)さんによる、iOS 15 で導入された「即時通知」をプロダクトに導入する際、どのような仕組みを整えて運用しているかというお話でした。技術的な「仕組み」のお話もありましたが、「重大な通知」を除いてもっとも優先度の高いレベルの通知がこの「即時通知」であることから、プロダクトを提供する側は節度を持った利用がユーザーのためになるということも伝えていました。非常に印象的だったのは、これを利用するための独自の社内ガイドラインを iOS App Developer 側が整えている、という点でした。

https://twitter.com/treastrain/status/1569145705448734720

Effective PencilKit / 新聞スクラップ体験の実現

https://fortee.jp/iosdc-japan-2022/proposal/3ad0d3fc-84a6-4fa2-8dd1-c4e2284aff4f

shimastriper(@shimastriper)さんによる、新聞の紙面ビューアー App で PencilKit(Apple Pencil)を用いて手書きによる機能をサポートしたときのお話でした。確かに新聞紙面を取り扱う App は Apple Pencil との相性が良さそうだなと思いつつ、機能実現のためにさまざまな苦労をされているのがわかるトークでした。

https://twitter.com/treastrain/status/1569174630979731458

https://twitter.com/treastrain/status/1569175276881588224

https://twitter.com/treastrain/status/1569180184611540993

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

https://fortee.jp/iosdc-japan-2022/proposal/922ece05-9a10-4e88-9c7f-f87312f9b550

Hiroshi Shikata(@dotrikun)さんによる、鉄道に関する App で用いられているさまざまな技術についてのお話でした。「ハードウェア」という言葉の中に「鉄道車両」・「線路」・「駅」が含まれる… というのが非常に鉄道に関する App らしいなと思いました。App の中で確認できる、運行中の鉄道車両の混雑状況について、必要な計測を行えない車両については予測データから算出している… といったあたりのお話も目から鱗でした。今回は LT でしたが、ぜひ40分のレギュラートークでみっちり伺いたいようなお話でした。

そのほか気になっていたトーク

開催前から気になっており、fortee の「スター」機能を使ってスターを付けていたトークは以下です(上記までで紹介したトークは除いています)(トーク実施順)。

2022年の新規アプリ開発で採用した技術

https://fortee.jp/iosdc-japan-2022/proposal/4fcfd131-2313-46dd-bd1b-f1a917148c46

施策基盤としてのディープリンク 〜なめらかにアプリが開く体験のために〜

https://fortee.jp/iosdc-japan-2022/proposal/6c4615f5-b471-4f78-9044-4ae3f8dd75d4

PiPを応用した配信コメントバー機能の開発秘話と技術の詳解

https://fortee.jp/iosdc-japan-2022/proposal/f9ec6cc3-bc06-4749-a6b4-a472b9234684

SwiftPMのプラグイン機能をiOSアプリ開発に活用する

https://fortee.jp/iosdc-japan-2022/proposal/4f56de04-0d5c-49ba-b2f8-12b25e36ad32

Dive into Mac Catalyst

https://fortee.jp/iosdc-japan-2022/proposal/fa1db2d6-2db6-489c-a2cc-cfbc4abeb34c

20分間で振り返るIn-App Purchaseの歴史

https://fortee.jp/iosdc-japan-2022/proposal/a5b23fcf-2f6b-479b-99f4-58654d0ff5ae

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

https://fortee.jp/iosdc-japan-2022/proposal/d7f13f0d-346d-41d7-9697-f93749294131

UIKit ベースの大規模なプロジェクトへの SwiftUI 導入

https://fortee.jp/iosdc-japan-2022/proposal/8f120179-7a65-429c-a471-ed11344f08b2

CoreGraphicsでドット絵を描こう

https://fortee.jp/iosdc-japan-2022/proposal/5e883ff1-3323-4911-b38c-53bf91141e09

Swift Concurrency時代のリアクティブプログラミングの基礎理解

https://fortee.jp/iosdc-japan-2022/proposal/397d52a7-8f62-4c40-8392-2dc081227189

神速iOSDC〜6年分〜

https://fortee.jp/iosdc-japan-2022/proposal/07999276-0624-4cb1-860d-8cf845e546c2

Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜

https://fortee.jp/iosdc-japan-2022/proposal/e383fe1f-0458-42b8-a732-81db63f4f6c9

挑戦!ISUCON de Server-side Swift 〜タイムゾーンには気をつけろ〜

https://fortee.jp/iosdc-japan-2022/proposal/1d91ba4f-6620-415b-859c-79e4dad66f89

Exposure Notification Privacy-preserving Analytics Architectureの仕様について

https://fortee.jp/iosdc-japan-2022/proposal/2adc32ee-4515-42bb-a22f-ddac6d5d8aee

バックポートして学ぶ新APIの仕組み

https://fortee.jp/iosdc-japan-2022/proposal/ae6ff1d3-0777-4804-9407-5a081fba313d

UIStackView逆引きレシピ

https://fortee.jp/iosdc-japan-2022/proposal/bcc2af92-4df9-4e4a-b465-0c9f93e04a60

手で触れずにアプリを動かす技術

https://fortee.jp/iosdc-japan-2022/proposal/f7323f3d-bc3a-4a6c-b591-3ca0f73bad49

動画だけじゃない!iOS 15のピクチャ・イン・ピクチャを使って好きなUIを表示させよう!

https://fortee.jp/iosdc-japan-2022/proposal/7646ca37-310b-42d1-8764-d80dd12714fd

20分でわかる!速習resultBuilder

https://fortee.jp/iosdc-japan-2022/proposal/6ea3cfbe-0749-4979-bd86-c896e6023c4b

サーバーと同期してリアルタイムに更新する画面を実装する

https://fortee.jp/iosdc-japan-2022/proposal/b4920d34-f0aa-4f92-9955-5009979b3419

OSSのアプリケーションを開発「し続ける」ための哲学

https://fortee.jp/iosdc-japan-2022/proposal/cde58bcd-9d53-41ca-9bab-1d44d19f2500

シーンに応じた使いやすいQRコード読み取り機能を実装しよう

https://fortee.jp/iosdc-japan-2022/proposal/3a466fb6-b445-4e44-8f5f-b57b7e5b44dc

モバイルアプリのオブザーバビリティを向上させるプラクティス

https://fortee.jp/iosdc-japan-2022/proposal/6bafac07-06f1-4846-964e-78dccfb29185

LINE iOSのビルド環境の変遷

https://fortee.jp/iosdc-japan-2022/proposal/ac7d5226-f64b-42ff-8d08-b8960d4021ca

「家族アルバム みてね」を支えるiOSビルド環境の改善

https://fortee.jp/iosdc-japan-2022/proposal/56a5bec9-6dcd-4a8e-9e33-312078af3acd

Swift Concurrency時代のiOSアプリの作り方

https://fortee.jp/iosdc-japan-2022/proposal/b50a5503-00e3-4dd3-ba1a-b28cd59c6a33

The state of Swift for WebAssembly in 2022

https://fortee.jp/iosdc-japan-2022/proposal/fa87f700-1483-456b-9b28-ba7c119cfa69

モバイルアプリの行動ログの「仕込み」を快適にする

https://fortee.jp/iosdc-japan-2022/proposal/ad544d2d-0e37-48f7-836a-3d46abe4ad2f

iOS15からのCommunication NotificationとSiri

https://fortee.jp/iosdc-japan-2022/proposal/149abcfe-2fa4-43cf-acec-f38393ca4a4b

キャッシュによる状態管理のアーキテクチャ

https://fortee.jp/iosdc-japan-2022/proposal/a9d5b12e-6170-4f1c-be93-9412898523a0

watchOSにおけるバックグラウンドタスクの限界

https://fortee.jp/iosdc-japan-2022/proposal/0970265f-664c-4626-848e-4c86f1efa94f

CarPlay向けのアプリって開発できるの?

https://fortee.jp/iosdc-japan-2022/proposal/a2164d63-1a7f-4fa3-9d06-613474e7d984

Flutterアプリ開発にネイティブコードはどこまで求められるのか

https://fortee.jp/iosdc-japan-2022/proposal/277ed19f-848b-4d39-8b53-5eb29765d099

VisionKitを使ってクレジットカードスキャナーを作る話

https://fortee.jp/iosdc-japan-2022/proposal/02608800-42a8-4de5-b123-5fccb3174ab4

サポートiOSバージョンを定期的にあげる仕組みづくり

https://fortee.jp/iosdc-japan-2022/proposal/38dd500c-5e65-494c-bb35-16a72eaf33ea

今更だけどUIKitで型パラメータのインジェクトを利用してViewのレイアウトをしてみよう

https://fortee.jp/iosdc-japan-2022/proposal/935af101-7655-4d6e-a708-e5dcba976aa8

iPadOSDC Japan 2022 by Hiromu Tsuruta

https://fortee.jp/iosdc-japan-2022/proposal/cc685572-46e9-483a-83b2-a1c839662dec

また来年!(?)


iOSDC Japan 2022 - Track A (9/12 MON.) より

日本で行われる最大級の iOS 関連カンファレンス、iOSDC Japan 2022 は今年もはじめから終わりまで技術的にも交流としても楽しいことばかりで、普段の業務としての、また個人としての開発のモチベーションが圧倒的に高まりました!

iOSDC Japan には普通に聴講する… 以外にも参加方法がたくさんあります。ぜひ来年はスピーカー、スポンサー、当日スタッフとして……!みなさんにお会いできるのを楽しみにしています!!!

DeNA Engineers

Discussion