今日は iOSDC の最終日。とても良いイベントでした。
今日視聴したセッションについて、簡単な感想。
BuildConfigurationによる機能出し分けを、型定義の力を借りて実現していく
Build Configuration の切り替えで処理を #if
などで切り分けるのは、実装ミスが多くなりがち。その代わりに型を活用する。そうすると、誤りがあればコンパイルエラーになるので自然にミスがなくなる。修正すべき部分をコンパイルエラーが教えてくれる、これうまくいくとすごい気持ちいいですよね。
iOSアプリ開発のための"The Composable Architecture"がすごく良いので紹介したい
The Composable Architecture はとても良さそうですね。Combine が活用されていて、標準でリアクティブフレームワークが使えるようになった恩恵がここにも。これは実際に使ってみたい。設計がこの TCA というサードパーティのフレームワークに依存するのは怖いといえば怖いけども。
Webとネイティブアプリの付き合い方を改めて考える
Web / PWA とネイティブアプリ、という構図にさらに App Clips を含めての考察。Web アプリがいいのかネイティブアプリがいいのかは、いつも悩むところです。僕はアプリエンジニアですが、ネイティブアプリを開発していると、これは Web のほうが良いのではないかと考えてしまうことがよくあります。逆にネイティブアプリのほうが良いという場合もありますね。また、このセッションで、PWA とネイティブアプリの組み合わせも考えられるということに気づかされました。
SwiftUIを導入したアプリ設計
これまで UIKit + Coordinator で設計をしていたところで、SwiftUI という選択肢とどう向き合うか。UIKit をベースにして部分的に SwiftUI を採用していくというのは、有力な選択ですね。ViewController がなくなるとトラッキングで困るというのは盲点でした。また、もし SwiftUI を全面的に採用するなら Coordinator パターンは相性が悪そうです。Redux や Flux みたいなパターンがいいかな。
SwiftUI時代の Functional iOS Architecture
稲見さんのいつもの圏論の話。アーキテクチャを理解するのに圏論は必要ないけど、圏論の言葉を使うとアーキテクチャを整理できるようですね。なるほど・・・。各種のアーキテクチャを学ぶときに、こうした 1 階層上の視点から俯瞰すると理解の助けになりそうです。今城さんの The Composable Architecture のセッションとあわせて見直したい。
LT
本当はこわいLLDB
デモを持ってくるとか、明らかに 5 分でおさまらないスライドを用意してくるとか、そういうのが逆に LT らしくてとても良いです。LLDB で View を調べるの、やってしまうよね。
iOS 13における Siri Shortcuts 最小実装+α
Siri Shortcuts は、ユーザに使ってもらうための導線をしっかり用意するのが大事そうですね。
xcrun Essentials
xcrun ってドキュメントがあんまりないんですよね。それなりに使うのに。
Swiftで分かるSOLID原則
SOLID 原則、当たり前のようで、案外おろそかになるやつですよね。リスコフの置換原則とか。
SwiftUIとFlutterを比較する
Flutter はドキュメントがしっかりしているのが良いですね。SwiftUI は面白いけど未成熟という感じはある。
100人以上の中高大学生にiOSアプリ開発を教えていて感じたこと
プログラミングが分からないレベルの人を、アプリリリースできるレベルに持っていくのすごいですね。役に立つ機能がないアプリはリジェクトされるわけですから・・・。
Feature Flagを適切に分類することでA/Bテストの運用コストを下げる
Feature Flag の分類、なるほど。考えたことがなかったです。
CryptoKitとCoreBluetoothを利用したスマートキー開発
車のスマートキーを自分で作ってしまうのすごい。RxBluetoothKit 知らなかったですが良さそうですね。CryptoKit 良いですよね。
Apple Low-Latency HLSを使った超低遅延配信について
内容盛りだくさんの LT でした。正直 Low-Latency HLS はあまりよく分からないけども。
着信時氏名表示させたいエンジニア vs 簡単には着信時氏名表示できない電話番号 (iOS14対応版)
iOS 12 までの 5 〜 8 桁だと氏名表示されない、国番号をつけると表示される、というのが謎すぎますね。iOS 13 でその挙動が変更されているのも謎。とりあえず iOS 12 以下を切ればいいんですね。
パンフレットの記事
今回、パンフレットの記事を 2 本書いたので、ぜひフィードバックをお願いします。個人的にはやらかした感があってつらいんですけども。
パンフレットの記事のフィードバックもらえると嬉しいですね。文字大きすぎ、紙のサイズ分かってないだろ、とか。電子版を iPad で見たらそれなりに読めるけどね・・・ #iosdc
— 宇佐見 公輔 (@usamik26) 2020年9月21日
イベント雑感
こんな感じで参加しました。普段の仕事は書斎ですが、その部屋は有線 LAN がなくて長時間のオンラインイベントでは不安なので、有線 LAN が使える部屋からの参加でした。
こんな感じで参加してます #iosdc #photo pic.twitter.com/wYEaF5E7tU
— 宇佐見 公輔 (@usamik26) 2020年9月21日
こんな環境で参加してます #iosdc #photo pic.twitter.com/beN3YS63kQ
— 宇佐見 公輔 (@usamik26) 2020年9月21日
今回はオンライン開催だったわけですが、いつもよりずっと楽に参加できて良かったです。オフラインのイベントはそもそも会場(だいたい東京)に行かなくてはいけないので、大阪在住の身としては移動のために時間とお金と気合が必要なんですよね。それがないというのは、もう本当に楽です。今後もイベントはずっとオンラインでいいんじゃないか。いや、直接会って話すのも体験としては大事かなあ・・・。今は、オンライン最高という気持ちのほうがはるかに強いですが・・・。
それと、セッションが後でもう一度見れるのはとても良いです。そのためなら、ニコニコのプレミアム会員になることには全く抵抗がない。
次もぜひ開催されてほしいです。