![見出し画像](https://assets.st-note.com/production/uploads/images/115212515/rectangle_large_type_2_7985f7fd8af8cefa665134a89f89b72f.jpeg?width=1200)
たくさん人生について語ったiOSDC Japan 2023 #iosdc
2023/09/01の夕方から始まったiOSDC Japan 2023に参加してきました!
try! Swift NYCに参加するために出国する飛行機の都合で最終日は不参加です。
ということでこの記事で僕のiOSDC Japan 2023を終わらせます。
そういえばこれまで2017年から6年連続で何かしら登壇していたのですが、とうとう記録が途絶えてしまいました。
(ちなみに採択のテーブルには乗ってたっぽいが、スケジュールが合わず断念。これ言っていいのか分からないので、ダメだったら消します)
観たセッションの感想
タクシーアプリの多言語対応・ローカライズにおける課題と解決策 by h1d3mun3
ローカライズのためのツールを運用するも、属人化が生まれてしまうので、JSONをGitHubで管理するようにした。日本語と英語の文法の順序の違いなどに苦労したとのことでした。
この辺りは前職(前々職?)でも課題があったりしましたが、これといって解決には至りませんでした。
Swift Packageを使った巨大な依存グラフのキャッシュ戦略 by giginet
![](https://assets.st-note.com/img/1693722460648-28T2zOFpkx.jpg?width=1200)
LINEほどの巨大なプロジェクトではビルド速度が課題になるのは想像に難くないです。そこでBazelというツールを使ってビルドの高速化をしていたものの、XCFrameworkの登場により課題が出てきたので、SPMのPackageをXCFramework化してimport可能にするScipioというツールを開発したとのこと。S3互換のキャッシュにも対応しているので、CIのビルド時にキャッシュの取得は必要だが、それを差し置いても全てビルドするよりは早くなるとのこと。
これはある程度大きなプロジェクトでは有用そうだなと思ったし、技術的な挑戦としても興味深かったです。僕は現時点ではこういう仕組みが必要なほどの大きなプロジェクトは担当していないのですが、こういうツールがあるんだな、と思っておくと、プロジェクトの肥大化も怖くないかも?と期待できるかなと思いました。
watchOS開発最前線 by 蔀
前職(現職?)の同僚の発表でした。個人開発のwatchOS向けのアプリを開発する際に得た知見を発表してくれました。ちょいちょい小ネタを挟みながら発表する様子が個人的に面白かったです。
![](https://assets.st-note.com/img/1693723136014-Dtrletugya.jpg?width=1200)
TextKit 2 時代の iOS のキーボードとテキスト入力と表示のすべて by Yoshimasa Niwa
TextKit 2について1との違いを丁寧に説明していただきました。TextKit 2の世界で1を利用すると強制的に1の世界にフォールバックするというのはちょっと怖いですね。でもテキスト入力欄に好きなViewを埋め込めるというのは色々可能性がありそうだなと思いました。
個人的にコピペした時の挙動などをどうしたらいいのか気になったのでAsk the speakerの時間にチラッと聞いたのですが、専用のIDをInfo.plistなどに埋め込んでAttachmentと対応付ければアプリ内ではコピペした時でも復元できるはず、ということでした。
Mastering SwiftSyntax by kishikawa katsumi
これまで個人的にあまり馴染みのなかったSwiftSyntaxがMacroの登場により学ぶ必要性が増した中でとても分かりやすく説明して頂きました。特にサンプルコードで示していた Init を public にするだけのものがとても欲しいのでちょっと試してみようと思いました。
UIのブラックボックスを探る by noppe
基本的にiOSのアプリを作るにはiOSが用意してくれているものをそのまま使うことが望ましいです。例えばナビゲーションバーを独自で再現する場合、考慮すべきこと・妥協すべきことが色々出てきます。また、カスタムビューでiOSらしさを再現するのも実はかなり難しいです。透過を気にする必要がなければカラーピッカーなどを利用するといいですが、iOSは背景に透過を利用していることがあったり、Dark Modeを考慮したりすると、そのまま利用すればいいというわけじゃないことが起こってしまいます。また、カスタムビューを作るとアクセシビリティがとても悪くなることが多々あります。利用環境によってはボタンが押し辛くなったり、Voice Overでは何のボタンなのか理解できなくなる可能性まで出てきてしまいます。こういうのってなかなか気付けないんですよね...アプリを作る時にカスタムビューを作る必要が出てきたときに、何度も振り返って見てみたい素晴らしいトークでした。
なぜ、弊社はFlutterを捨ててネイティブ化(Swift / Kotlin)にコミットしたのか by 佐藤 直之
一度Flutterで作ったアプリを捨ててネイティブで作り直しを決断したchocoZAPのアプリについての話でした。なぜネイティブで作り直すことにしたのか、というところのボトルネックはFlutterエンジニアが世の中に全然いなかったため、ということでした。
しかも、現在もネイティブアプリ版はまだリリースされてないので、Flutter版もメンテしつつネイティブアプリも追いつく必要があり割と大変そうだなぁと思いました。
iOSの技術選定にSwiftUI+TCAを選んだところは興味深かったです。
本題
掲題の人生について語った件は、先日公開した記事についてです。会場をふらふらしていると多くの方に話しかけていただきました。
同様に会社を辞めた方、転職を考えているという方、何か別のことをやろうとしている方、体調の問題や、家庭環境などの変化による問題など、様々な意見をお伺いすることができました。
僕が会社を辞める決断をし、本業を無職化するという決断ができたのはいくつか副業があるお陰と、妻の後押しがあったからです。
本業を辞めるのでトータルの月収はもちろん下がりますが、生きていくぐらいならなんとかなると思ったので思い切ることができました。
ただ、これは本業がある状態で副業も掛け持ちしていたからできただけであり、再現性はないよなと思います。
ただ、こうなれたのはnoteなどのブログにアウトプットを続けていたこと、過去のiOSDCに登壇したお陰で多少なりとも名前は知ってくれている人がいたことに起因しているとは思います。
X(Twitter)でのimpやフォロワー数、ブログサービスのPVを追いかけているわけではないのですが、割と大事だなぁと振り返ると思ったりしました。
撮った写真たち
![](https://assets.st-note.com/production/uploads/images/115249475/picture_pc_b33595d3ac2fad5e89136dbd8bc97e68.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249422/picture_pc_e2daabedf512af611a97a7864a1188e6.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249450/picture_pc_a0cbc8e70686e23163f413114753ae4c.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249461/picture_pc_6bc861a792db8ce51fab120b1c81a204.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249460/picture_pc_55cc3b0abf15bc02c19dc4999a3e6298.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249474/picture_pc_0a2aed430484fba12b28501b99a12f0c.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249436/picture_pc_81f294c58dc066b48ec3511b1aec7bb0.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249491/picture_pc_24c900ebe0738940059f269e60c18ec5.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249459/picture_pc_a598939bcfc84aacc91c412a3628f23c.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249441/picture_pc_d17499534cc0bdaaa7248c89f76e0beb.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249408/picture_pc_b2752c9c8faba6bf4e061f35239e40b5.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/115249449/picture_pc_702a2b7bc47a71db44e3cd0799259a7b.png?width=1200)
まとめ
最終日の3日目はNYへのフライトの時間とかぶってしまい出席を断念しました。割とバタバタしてしまい、iOSDCはほとんどキャッチアップできていません。どこかで改めてキャッチアップしたいなと思っています。
ということは僕のiOSDCまだ終わらない??とはいえ記憶が鮮明な内に書き出しておきたかったので、この記事をもって一段落とさせてもらえればと思います。
来年に向けてCfPのネタを貯めて登壇できたらいいな。
今回色々お話してくれた方々ありがとうございました。また会いましょう!