Edited at

iOS+Firebaseでの実装まとめ1


1.はじめに

Firebaseが良いという話が社内でよく聞いていたもののFirebaseで何ができるのか全然理解できていませんでした。そんな時個人開発で作りたいアプリがあり、web知識ゼロの僕でもサーバーサイドを簡単に実装できるサービスを探していました。そんな時、こちらの記事でMBaaSというものを知ったのでバックエンドはFirebaseすることにしました。

割と調べればFirebaseについての記事もそこそこありますし、公式ドキュメントも充実しているので、作りやすかったですが、それでもつまずいた点もあったので、毎度同じみ備忘録として残します。量が多いので、何回かに分けて投稿する予定です。少しでも参考になれば幸いです。


2.MBaaSとは

まずは概要から。

読み方は"エムバース"Mobile Backend as a Serviceの略で、2012年ごろからアメリカで使われるようになった言葉のようです。スマホ向けのウェブアプリ機能を提供するサービスのこと。


・メリット


  1. サーバ側の設計が不要

  2. サーバを運用する必要がない

  3. コストがかからない

  4. スピーディーなアプリ開発が可能

  5. セキュリティ面が安心


・デメリット


  1. 開発しているアプリの根幹データを預けることになるため、何か問題が生じても乗り換えられない

  2. 無料サービスの場合、機能制限があることが多い

  3. 従量課金の場合、アプリが大きくヒットするとそれなりのお金がかかる可能性がある

MBaaSサービスはFirebase以外にも色々ありますが、作るサービスによって慎重に選定する必要があります。僕の場合はFirebaseで実装したかったので、Firebase一択でした。


3.Firebaseでできること


  1. リアルタイムデータベース(Firebase Realtime Database)

  2. クラウドストレージ(Firebase Cloud Storage)

  3. アプリのアクセス解析(Firebase向けGoogleアナリティクス)

  4. クラウドメッセージング(Firebase Cloud Messaging)

  5. 認証(Firebase Authentication)

  6. クラッシュ分析(Firebase Crashlytics)


4. Firebase料金

基本的に無料で利用できます。拡張する場合にデータ量に応じて料金が発生します。

プランそれぞれは無料のSparkプラン月額25ドルのFlameプラン従量制のBlazeプランの3種類。

無料プランの場合は、同時接続数や容量に制限があります。個人開発レベルでは無料プランで十分対応可能だと思います。

料金詳細については公式のこちらを参照のこと


5.導入

僕の場合、認証とリアルタイムデータベース、画像を保存するようにクラウドストレージをメインで使用したのでそれらの導入方法です。

Firebase自体の導入方法については、他にも記事があるので割愛しますが、こちらの記事で丁寧に書かれているので参考になるかと思います。

SwiftアプリにFirebaseを入れてみた

まずはみんな大好きcocoapodsでライブラリを追加します。

プロジェクトのPodFileに下記を追加。

pod 'Firebase/Auth'

pod 'Firebase/Storage'
pod 'Firebase/Database'

そして

pod update

初めてライブラリを導入した時に陥ったところなんですが、プロジェクトに初めてライブラリを入れると、プロジェクトディレクトリ以下に、新たにワークスペースファイル(.xcworkspace)が作られるので以後これを開いて開発を進めないとビルドエラーとなりますので注意してください。

あとは使用するファイル内で以下のようにインポートして使用できる状態となります。

import FirebaseDatabase

import FirebaseAuth
import FirebaseStorage

これで準備完了です。

不定期ですが、次回は、実装とFirebaseコンソールでの設定方法について記載できたらと思います。

早くアプリをリリースさせたい...