技術書典7で事前にチェックしており、iOS 13の新機能をざっくり知りたいために買いました。
私はまだiOS 13の新機能をほとんど把握していないので、読んで学ぼうと思いました。
感想
iOS 13の新機能のうち、SwiftUIやSign In with Appleなど多くの方が取り上げているものを「除いて」解説している本です。
ネット上に情報が少ない機能ばかり解説されているので、とても貴重な内容になっています。
筆者の方が実際に検証し、コードを交えて説明しているため、すぐに試すことができます。
ここまでの内容を検証して体系的にまとめるのは、相当な時間がかかったと思います。
そこで得られた知見を、本という読みやすい形で共有していただけるのは、本当にありがたいことです。
OCRはいろいろな用途に使えるので、追加されて嬉しいです。
今のところは英語のみサポートされているようです。しかし、こちらの本に書かれている通り、電話番号やメールアドレスのスキャンなど、日本語のアプリでも十分に有用です。
VisionKitはスキャナーが手元になく、iPhoneで手軽にスキャンしたいときに役立ちそうです。
同じくiOS 13で追加されたOCRと組み合わせることで、OCRの精度を上げられるかもしれません。
BackgroundTasksは、ネット上で見たことない情報でしたが、全iOSアプリエンジニアが知って損はない内容です。
AppRefreshの用途は「株価のようなちょっとした情報の更新」とあるので、おそらく標準の株価アプリで使われていると推測できます。
Processingは、中断されても問題ない重い処理を実行するためにあるので、こちらの本に書かれている通り、バッチ処理のような定期的かつ継続的な処理に適していると思います。
Core NFCが強化され、SuicaやPASMOが読み出せるようになったのはすごいです。
自分でも試してみたいです。
Semantic Segmentation Matteを使うと、人の髪や肌の色を変えることができるので、写真アプリに使えそうです。
Core Hapticsを使うことで、ハプティックパターンを作成、再生できるとのことですが、「ハプティックパターン」が何かわかりませんでした。
後ほど調べたいです。
Indoor Mapsは地図アプリにうってつけです。
屋外の地図をズームすることで、インドアマップが表示されるようにすれば、もっと便利になりそうです。
Google Mapsなどで実装されていたような気もしますが、別の技術で実現しているのかもしれません。
Create MLはGUIだけで機械学習でき、とてもかんたんに使えます。
機械学習する際には使いたいアプリです。
SoundAnalysisによる音声分類は、音声を何かしらの基準で分類したいときに使えます。
犬の鳴き声から犬種を当てたり、騒音を判定したりできそうです。
デプス推定は、ARや写真の編集などいろいろなことに使えそうです。
デプスについては、try! Swift Tokyo 2019で登壇された神武さんのトークがとても面白いので、併せて見ることをおすすめします。
一般物体のセグメンテーションは、対象物や対象OSが厳しくないのが特徴です。
その代わり、写真の画質などにもよると思いますが、セグメントの精度はあまり高くないかもしれません。
学んだこと
文字認識
- iOS 13で追加された機能
- 現状は英語のみサポートしている
VisionKit
- iOS 13で追加されたフレームワーク
- 撮影したドキュメントの矩形と色を補正し、画像として出力する
BackgroundTask
- iOS 13で追加されたフレームワーク
- アプリのバックグラウンド時にタスクを実行する
- タスクは2種類ある
- AppRefresh
ちょっとした情報を更新する
フォアグラウンドに移行してもタスクを停止しない
同時スケジューリング数:1 - Processing
時間のかかる処理を実行する
数分かかる処理はシステムが中断する可能性がある
フォアグラウンドに移行するとタスクを停止する
同時スケジューリング数:10
CoreNFC
- iOS 11で追加され、iOS 13で強化されたフレームワーク
- 以下のNFCタグが読み出せるようになった
- ISO 7816
- MiFare(ISO 14443)
- ISO 15693
- FeliCa(ISO 18092) - NDEFへ読み出しだけでなく、書き込みもできるようになった
Semantic Segmentation Matte
- iOS 13で使えるようになったマスク
- 人の髪や肌、歯などの領域を取得できる
Core Haptics
- iOS 13で追加されたフレームワーク
- TBD
Indoor Maps
- iOS 13でインドアマップ周りのAPIとデータフォーマットが整備された
- 屋内の地図を地図上に重ねて表示できる
Create ML
- iOS 13で強化され、独立したアプリになった
- 教師データとテストデータの画像をドラッグ&ドロップするだけで、機械学習のモデルが作れる
SoundAnalysis
- iOS 13で追加されたフレームワーク
- Create MLと組み合わせることで音声を分類できる
デプス推定
- WWDC 19のタイミングで、Apple公式のMLモデルにデプス推定モデルが追加された
- iOS 11以降で使える
- 深度情報を持っていない写真や動画からも、深度を取得できる
一般物体のセグメンテーション
- WWDC 19のタイミングで、Apple公式のMLモデルにセグメンテーション用モデルが追加された
- iOS 12以降で使える
- 人間以外のオブジェクトや、深度情報を持っていない写真や動画もセグメントできる
おわりに
iOS 13の新機能をがっつり使って実装し、実行結果の画面キャプチャまで載せているので、自分が実装した気になれて楽しかったです。
余談ですが、iOSDC Japan 2019で堤さんのトークを聴きたかったのですが、満員で入れませんでした。動画が公開されるのを心待ちにしています。