「iOS 13の新機能をざっくり把握する本」の紹介

iOS 13の新APIについて解説する本を書きました。新機能について「何が」「どういう実装で」実現できるのかを解説しています。筆者が実際にコードを書いて試しつつ書いてるので、WWDCセッションやドキュメントにも書いてない部分が補完されてたりもします。さらっと読めるので新機能をざっくり把握したい方におすすめです。

Swift UIやSign In with Appleのような多くの方が話題にしている内容は入っていませんが、その他の新機能も知っておいて損はないものばかりです。本書はまだあまり情報が出ていない機能を中心に紹介しているので、Swift UI等の本命新機能は公式チュートリアル等でがっつり学びつつ、その他新機能を本書でサッとキャッチアップされてはいかがでしょうか。

BOOTHで電子版を購入できます。本文84ページです。

以下、各章の簡単な紹介です。

第1章 文字認識(Text Recognition)

iOS 13で、ついに、待望の「文字認識」機能が追加されました。カメラなどで撮影した画像内にある文字を読み取る機能です。OCR(Optical Character Recognition)とも呼ばれます。現状では英語のみのサポートですが、数字やアルファベットは日本語においても多く用いますし、電話番号や郵便番号、クレジットカードの番号、メールアドレス等、用途はいくらでも考えられます。日本語サポートを期待しつつ、こういう機能が存在することと、使い方ぐらいは把握しておいて損はないでしょう。

第2章 VisionKit

VisionKitはiOS 13から追加された新フレームワークです。`VNDocumentCameraViewController`というクラスが提供されており、ドキュメントをスキャンするための一連の機能をアプリに付加することができます。

画像1

使い方自体は簡単すぎて本書を読む必要はないと思いますが、アプリ開発において紙文書を入力としたいケースはままあるので、知っておいて損はないということで取り上げました。

第3章 BackgroundTasks

BackgroundTasksは、iOS 13で追加された新フレームワークです。その名の通り、アプリがバックグラウンドにあるときにタスクを実行できるようにするものです。バックグラウンド処理、重要ですよね。もちろんどんな処理でも無限にバックグラウンドで実行可能、というわけではないので、どういう処理がどんな感じで実行されるのか、既存のバックグラウンド処理との違いはなにか、一度自分でつくってみて掴んでおいた方がいいと思います。

第4章 Core NFCの新機能

Core NFCはiOS 11で追加されたフレームワークですが、iOS 12であまりアップデートされなかったなー、と思いきや、iOS 13で大幅に強化されました。

4.1 これまでのCoreNFC
- おさらい:CoreNFCの基本的な実装方法
- 以前のCoreNFCではできなかったこと
4.2 iOS13での追加機能
- 多くのNFCタグが読み出し可能に
- NDEFの書き込みが可能に
4.3 新たに読めるようになったNFCタグ規格の概要
- ISO7816 / ISO14443-MiFare / ISO15693 / ISO18092-FeliCa
4.4 実装:Suica/PASMOを読む

第5章 Semantic Segmentation Matte

そしてiOS 13から取得できるようになったSemantic Segmentation Matte(以下SSM)は、人の「髪」「肌」「歯」といった部位をセグメンテーションするためのマスクです。

画像2

めちゃくちゃ高精細で、髪や眉の細かいところまできれいにマスクできます。

これでたとえば何ができるかというと、髪や肌や歯の色や質感を変えたりできるわけです。

画像3

第6章 Core Haptics

うまくハマればUXがめちゃくちゃ気持ちよくなるTaptic Engineですが、今まではUIFeedbackGeneratorで既成のハプティックパターンを再生するだけでした。

Core Hapticsはハプティックパターンを細かくカスタマイズできるフレームワークです。Taptic Engineをより低いレイヤで制御するフレームワークと言い換えてもいいでしょう。

音をオーディオファイルから再生するように、ハプティックパターンをAHAP (Apple Haptic and Audio Pattern)というJSONライクなファイルフォーマットで定義して再生することもできます。

第7章 Indoor Maps

iOSアプリを面白く&&実用的にした一要素として、位置情報&地図という要素はかなり大きいと個人的には思っています。そしてまだまだ発展の余地がある領域がインドアマップでしょう。実は以前からPDFのベクター画像を地図にオーバーレイするサンプルは公式で出ていたのですが、「Indoor Mapping Data Format(IMDF)」という新しいフォーマットが規格化され、iOS 13ではそれを地図にレンダリングすることができるようになりました。

第8章 Create ML

ドラッグ&ドロップで超簡単にオリジナルの機械学習モデルがつくれてしまうCreate MLがmacOS 10.15 Catalina/Xcode 11で大幅パワーアップしました。

第9章 SoundAnalysis + Create MLで音声分類

SoundAnalysisは、iOS 13で追加された音声解析のためのフレームワークです。今のところ音声の「分類」が可能です。

第10章 デプス推定

これまでデプス(深度)は、デュアルカメラやTrueDepthカメラ等、ハイエンドなiOSデバイスに搭載されるカメラで撮影した場合にのみ取得できるものでした。

しかしWWDC19のタイミングで、Appleが公式に配布するCore MLモデルに「FCRN-DepthPrediction」と呼ばれるデプス推定モデルが追加され、デプス撮影機能をもたないカメラで撮影した静止画や動画からも(機械学習で推定した)デプスデータを取得できるようになりました。

画像4

第11章 一般物体のセグメンテーション

Appleが公式に配布するCore MLモデルに「DeeplabV3」と呼ばれるセグメンテーション用モデルが追加されました。本モデルはiOS 13の機能を使用していないため、iOS 12以上で利用可能です。

「Portrait Effect Matte」や「Semantic Segmentation Matte」は高精細なセグメンテーションマスクを提供します。しかし、以下のような制約があります。

- 静止画からしか取得できない
- デプスを撮影可能なカメラ(デュアルカメラまたはTrueDepthカメラ)で撮影する必要がある
- 人間だけが対象

またiOS 13 / ARKit 3で登場した「People Occlusion」はリアルタイムでセグメンテーションを行うものですが、以下のような制約があります。

- ARKitでしか使えない。つまり、既存の動画や静止画には使えない。
- 人間だけが対象
- iOS 13以上でしか使えない
- A12 Bionicチップが必要

一方、Core MLの「DeeplabV3」モデルは、

- 人間以外のオブジェクト(人間、犬、猫、etc...)もセグメンテーション可能
- 単眼カメラ(デプスを取得できないカメラ)での撮影時にも使用可能
- 動画でも静止画でも、リアルタイムでもオフラインでも使用可能
- iOS 12以上で使用可能
- デバイスを問わない(iOS 12が動くデバイスすべてで利用可能)

と、非常に幅広い場面・条件下で利用可能です。



この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

38

shu223

フリーランスiOSエンジニア兼サンフランシスコのFyusion社勤務。 著書に「iOS×BLE Core Bluetooth プログラミング」「iOSアプリ開発 達人のレシピ100」。GitHubで「iOS Sampler」シリーズ他さまざまなオープンソースを公開している。

代表作

記事数が増えてきたので、代表作だけをまとめました。
3つ のマガジンに含まれています
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。