Slide 1

Slide 1 text

「Firebase Apple SDK 年間ダイジェスト2023年」と題しまして発表させていただきます。よろしくお願いいたします。

Slide 2

Slide 2 text

Firebase Apple SDK は、Firebase の16のプロダクトを Apple プラットフォームにおいて使うためのライブラリです。以前は Firebase iOS SDK と呼ばれていました。

Slide 3

Slide 3 text

Firebase Apple SDK は今年、17回リリースされました。1つ目は1月18日の10.4で、そこからほとんど3週間おきのペースで、今週、10.19がリリースされました。

Slide 4

Slide 4 text

今回は、今年の Firebase Apple SDK について iOS アプリ開発者として気になる内容を5分で振り返りたいと思います。

Slide 5

Slide 5 text

まずは今年、初リリースとなった10.4です。5つのプロダクトで更新がありました。 Firebase Cloud Messaging では、APNs のトークンが取得される前に FCM 登録トークンを取得しようとした際、それが新たにエラーとして取り扱われるようになりました。

Slide 6

Slide 6 text

次に2月7日リリースの10.5です。4つのプロダクトで更新がありました。 Cloud Firestore では、コレクションにドキュメントを追加する際に用いる `addDocument` メソッドに @discardableResult(ディスカーダブルリザルト)アノテーションが付与されたので、追加されたドキュメントへの参照を以降で使用しない場合にすっきりと記述できるようになりました。

Slide 7

Slide 7 text

続いて2月28日リリースの10.6です。 Google Analytics では、Apple Search Ads キャンペーンの測定のための実装が、iAd フレームワークから AdServices フレームワークを用いたものへ移行されました。 またベータ版リリースとして提供されている App Distribution iOS SDK を用いると、新しいビルドが App Distribution で利用可能になったときにアプリ内にアラートを表示させることができますが、そこでのサインインのための URL の誤りが修正されました。

Slide 8

Slide 8 text

3月21日リリースの10.7には、Cloud Firestore の OR 演算子サポート、リアルタイム Remote Config が Apple SDK にもやってきました。また Authentication では「Apple でサインイン」で得られるフルネームを Firebase に渡せるようになりました。

Slide 9

Slide 9 text

4月11日、10.8がリリースされ、Swift 5.6 以降が必須となりました。Authentication では Apple のアプリ内でアカウント削除をできるように求めたガイドライン内のユーザートークン無効化を簡単にできる機能が追加されました。

Slide 10

Slide 10 text

また Cloud Firestore では Swift Package Manager 経由で使う際のビルド時間短縮が図られました。

Slide 11

Slide 11 text

10.9は4月25日にリリースされました。2月の10.5で追加された `addDocument` の @discardableResult アノテーション付与はクロージャ版でのみ行われていましたが、今回から async 版のメソッドにも付与されました。

Slide 12

Slide 12 text

5月23日リリースの10.10では、Swift 5.7 以降が必須となりました。また In-App Messaging において Apple CarPlay で発生するクラッシュの問題が修正されました。

Slide 13

Slide 13 text

6月13日リリースの10.11では、Cloud Firestore のプレビュー機能である複数データベースに Apple SDK も対応しました。

Slide 14

Slide 14 text

ところで、Google I/O は毎年5月に行われますが、Apple WWDC は6月に開催されます。今年の目玉の一つは

Slide 15

Slide 15 text

Apple Vision Pro・visionOS の発表でした。

Slide 16

Slide 16 text

その後にリリースされた10.12では、visionOS で Firebase を利用するための説明の記述が目立ち始めました。また Authentication では多要素認証の追加要素としてワンタイムパスワードへのサポートが追加されました。Cloud Firestore では @FirestoreQuery property wrapper が SwiftUI のアニメーションをサポートしました。@FirestoreQuery は、SwiftUI の @FetchRequest や SwiftData の @Query と似たようなものです。

Slide 17

Slide 17 text

ここからさらに駆け足になります。8月1日のリリースでは、Google Analytics でオンデバイスコンバージョン測定のアップデートがあり、

Slide 18

Slide 18 text

同月22日には、Authentication のメール認証で reCAPTCHA 検証がサポートされ、

Slide 19

Slide 19 text

9月12日には Cloud Firestore のローカルでのクエリ実行が改善、

Slide 20

Slide 20 text

10月3日では reCAPTCHA v2 認証フローでカスタムドメインがサポートされました。

Slide 21

Slide 21 text

10月30日、10.17で大きな変更です。Firebase Apple SDK は多くが Objective-C や C++ で書かれており、それとは別に Swift から便利に扱えるようにした「Swift 拡張 API」が別モジュールとして用意されていました。

Slide 22

Slide 22 text

しかし、将来的に新しい Swift 言語機能のサポートを強化するためにモジュールが一本化されました。これはとてもうれしい変更でした。現在、別モジュールは非推奨扱いで来年2月には別モジュールは廃止されます。

Slide 23

Slide 23 text

11月14日リリース分では、新しいバージョンの Xcode に対する対応が行われ、

Slide 24

Slide 24 text

そして現時点で最新のリリースである10.19では、Authentication の一部のメソッドが非推奨になり、ブルートフォース攻撃であるメールアドレス列挙攻撃保護への準備がなされています。

Slide 25

Slide 25 text

Firebase Apple SDK は Swift からさらに使いやすく、OS 側との連係も深めながら visionOS へのサポートも進んだ1年でした。

Slide 26

Slide 26 text

今回使った資料は SpeakerDeck にて公開しています。

Slide 27

Slide 27 text

最後です。個人開発では2つの iPhone アプリで Firebase にとってもお世話になっています!ありがとうございました!