sugiken のメモ帳

iOSDC 2023 2日目

開発Swift

iOSDC 2023 2日目!

各セッションについてのメモ。

freee は業務としてカンファレンスに参加できるが、iOSDC は例年ブースを出しているのでその運営も兼ねて iOSDC に参加した。

オブザーバビリティの実装と改善

11:00- TrackD
https://fortee.jp/iosdc-japan-2023/proposal/dd08cde4-d391-4538-800b-27bdf975f983

TVer の例

なぜ導入したのか

アプリの品質を計測できていない
ユーザーに発生した課題をデータで解決する

オブザーバビリティとは

システムのナブ状態を把握するための尺度
データからシステムで何が起きているかをどれだけわかるか
未知の未知への対応
アプリのデータを収集→ユーザーの課題を解決できる
例えばバックエンドのエラーだけを watch していても問題に気付けない

何を導入したのか

例えば以下のツールがある

  • Firebase
  • Sentry
  • Datadog

TVerでは NewRelic を導入した

  • アプリのテレメトリデータ
  • メモリ使用量
  • アプリの起動時間
  • 独自のカスタムイベント

また、データの分析もしやすい。他のサービスメトリクスも含めて同一のサービス・画面で監視できるのも良い。

どう導入したのか

New Relic Mobile Agent を SPM で導入した。

アプリに問題がない = 快適に視聴できている?

そうではなく、アプリの動作状況、バックエンドの動作状況、ユーザーの番組視聴状況などによって快適さが変わる。

導入してどうだったのか

今後

MetricKit の導入活用やメモリ使用量の最適化でさらなる改善をしたい。

MetricKit って初めて知った

感想

確かにFirebase だとメモリ使用量の上昇に気付けない。あくまでメモリ使用量が上昇しきって、問題が起きたときにようやく気づけるが、それでは対応が遅い場合がある。もちろん freee は TVer ほどメモリやパフォーマンスの問題が起きない気がするが、品質を高めるためには予防もしていく必要がありそう。

真似できる!実践的なプロジェクト構成 bitkey流簡単レシピ

11:35- TrackA
https://fortee.jp/iosdc-japan-2023/proposal/a5870a6e-a470-4ee0-9a4b-58b6f4f5ca5d

TCA は使っていない
SPM 中心

Xcode Previews は想像以上に動く

実は Previews を実機で動かせる

実装にモジュールレベルで依存しないことが出来るか

pointfreeco/swift-dependencies を使用した。

参考になる

  • pointfreeco/Isowords

感想

自分の理解力の問題か、何を言っているのか理解するのが難しかったため、書きながら話を聞くことができなかった。
また pointfreeco を初めて知った。
Xcode Cloud 安いらしいし、個人で触ってみるかー。

旅行アプリでより正確にパスポートを読み込む技術

13:55- TrackB
https://fortee.jp/iosdc-japan-2023/proposal/10e0f4d2-19b0-48ac-bd3c-83a9d7822ec9

パスポートの読み込みが必要になった

重要性

パスポート情報を間違えると空港で飛行機をキャンセルせざるおえなかったりする

そこで OCR で読みとる試みをした

パスポートの構成

VIZ

人の目で確認するための情報

MRZ

機械読み取り用に記載されている情報 ICチップとかではないんだ

技術選定

リソースの少なさから、年額制のSDKを利用したが、その後MLKitやVisionの検証をすることになった。

  • SPM対応可否
  • 実装容易性
  • 精度

結論 Vision のほうがよかった

OCR が誤ることもある

そこでパスポートに組み込まれている NFC を読み取ることにした。日本でも2005年以降のパスポートでは埋め込まれている。

Type-BのNFCは個人情報が含まれるので、セキュリティレベルが高い。 パスポートに書かれている情報で認証することができる。

感想

OCR によって取得したデータと NFC から取得したデータを突合させて精度を高めるというの良い。気づいたとき、気も良かっただろうな・・。

なぜ、弊社はFlutterを捨ててネイティブ化(Swift / Kotlin)にコミットしたのか

2023/09/02 15:05〜
Track C
スポンサーセッション(20分)
スポンサーセッション
https://fortee.jp/iosdc-japan-2023/proposal/4a8ef72b-9c0c-40ef-8e8f-084fd0199c49

空間オーディオを活用しよう

16:00- TrackB
https://fortee.jp/iosdc-japan-2023/proposal/f99d0063-781b-4429-a9af-7444c7da609c

面白すぎてノートテイクはしなかったが、Apple の API を使えば自分で空間オーディオを作って遊べるかもしれないというのが面白い。
自分で Dolby Atmos とかの音源を用意したら作れるっぽい?もちろん必要なハードウェアを揃えた上でだが。
アプリで無理やりレンダリングしたら非対応なハードウェアでもそれっぽいことはできるだろうが、めちゃめちゃコストが高そう。