2022年10月25日火曜日

Firestoreでのデータの保存について1

前回制作したアプリでは、Realmを用いてデータの保存処理を行なっていました。

しかし、端末内に保存されるため、アプリを削除すると、データも共に消えてしまいます。

そのため、今回はFirebaseのCloud Firestoreというものを使って、データの保存処理について実装します。そこで学習したことを簡単にまとめていきます。

概要

  • モバイル開発、ウェブ、サーバー開発に対応したデータベース
  • 階層データ構造に対応
  • リアルタイムアップデート
  • オフラインサポート(オフラインでもキャッシュから読み書き可能)

開発環境:Xcode (Ver.13.4.1)、SwiftUI

実装について(Firestore自体の設定は省略。基本的に手順通りに進める)

  1. Firebaseにアクセスし、プロジェクトを作成。
  2. iOSアプリを選択し、アプリの登録を行う。
  3. バンドルIDはXcodeにて確認できます。
    (アプリプロジェクトファイル選択 >TARGETSのプロジェクト選択
     >General >Bundle Identifier)
  4. 設定ファイルをダウンロードし、Xcodeにドラックアンドドロップで追加する。
    (Copy items if neededにチェックを入れること)
  5. Firebase SDKの追加
    CocoaPodsやSPM(Swift Package Manager)にてインストールします。
    私は、SPMにて導入しました。導入方法は以下の通りです。
     XcodeのFile>Add Packagesを選択し、右上の検索窓に、
     「https://github.com/firebase/firebase-ios-sdk.git」を入力し、必要なライブラリを導入する。
    ただしここが一番の躓きポイントでした・・・
    様々なサイトや書籍を参考にしたものの、どれを導入すべきか、明記しているものがなく、記載通りではエラーが出るなどして、かなり導入に時間を要しました。
    肝心のところを・・・覚えてません。思い出し次第追記します。
  6. 初期化コードの追加
    SwiftUIの場合の導入については、公式ドキュメントに記載がないので、他の方の記事を参考に記述しました。というか、Firebase公式ドキュメント、何事もざっくりしか書かれておらず、これだけでは初学者には実装困難です。
    AppDelegate.swiftファイルはないため、プロジェクト名.swiftに以下を追記します。
    ・import Firebase
    ・class AppDelegate内のfunc application(~)内に FirebaseApp.configure()
  7. 次にまたウェブに戻り、Cloud Firestore(Firestore Database)を選択し、ルールの設定などを行う。
     allow read, write: if true;  tureにすることで、アクセス可能になります。
  8. ここからは、データの書き込みが行われているかの確認手順ですが、続きは後日・・・?

参考書籍:つくって学ぼiOSアプリ開発

flutterについて、学んだことなど

Swiftについて学んできたため、つい比較してしまいがちです。 SwiftUIと比較して、書いてみました。 似ているようで似ていない flutterには、SwiftUIにおける「View」という概念が、「Widget」と呼ばれるものになる SwiftUIのようにWidgetの中に...