FlutterでFirebaseAnalyticsを使う その1(iOS編)

Firebaseとは?

言わずもがなGoogleが提供しているサービス群。とても便利。避けては通れない道です。頑張りましょう。Firebase登録済み前提です。

(Firebaseにて)プロジェクトの追加

ここは特に難しい事はありません。また、このプロジェクトをルートにAndroidアプリとiOSアプリそれぞれのプロジェクトがぶら下がる様な構成になるので、共通したアプリ名の部分までで作成しておきましょう。

(Firebaseにて)パッケージの追加

基本的に難しい部分はありませんがハマりどころはあるので、しっかりとこのブログの文章を確認しながら行ってください。

まずはiOSから作成します。いずれにせよBundleIDは一緒なはずです。バンドルIDとはそのアプリ固有のIDのことで、実務では「ドメインを逆から記述+アプリ名」にすることがほとんどです。例:com.muchilog.hoge

自分はここでいきなりハマりましたが、flutterアプリはプロジェクトを作成する時にパラメータでバンドルIDを指定するそうです。後から変えようとしても内部的なところまで変更できません。潔くプロジェクトを作り直しましょう。

flutter create --org com.muchilog hogehoge

この様にすることで正しいバンドルIDを持ったプロジェクトを生成することができます。

GoogleService-info.plistの配置

Firebaseのサイトからダウンロードしたら一旦Finderで対象のプロジェクトを開き、
ios/Runner/Runner.xcodeproj をダブルクリックしてXcodeで開きます。
そしてXCodeの画面でRunnerフォルダ内にGoogleService-info.plistを配置します。

参考までにですが、このファイルを置く場所を間違っていると下記のエラーが出ますので注意。

*** First throw call stack: ( 
0 CoreFoundation 0x00007fff23e3de6e __exceptionPreprocess + 350 
1 libobjc.A.dylib 0x00007fff512539b2 objc_exception_throw + 48 
2 CoreFoundation 0x00007fff23e3dcac +[NSException raise:format:] + 188 
3 Runner 0x000000010abe1462 +[FIRApp configure] + 130 
4 Runner 0x000000010acb6459 -[FLTFirebaseAnalyticsPlugin init] + 217 
5 Runner 0x000000010acb629b +[FLTFirebaseAnalyticsPlugin registerWithRegistrar:] + 171 
6 Runner 0x000000010abdc6f3 +[GeneratedPluginRegistrant registerWithRegistry:] + 115 
7 Runner <…>

pubspec.yamlを編集

pubspec.yamlを開き、firebase関係のパッケージを追加します。

dependencies: 
flutter:
sdk: flutter
firebase_core:
firebase_analytics:

vsCodeであれば、保存すると自動でパッケージ更新が走ります。うまくいかない場合は、スペースの数や、_が-になってないかなど確認してください。

コード変更

なんと公式の設定情報ではコードサンプルがリンク切れで見れません。これが正しい方法なのかは分かりませんが、とりあえず標準の実装と思われるので載せておきます。

main.dartを開き、MyAppのクラス変数として

static FirebaseAnalytics analytics = FirebaseAnalytics(); 
static FirebaseAnalyticsObserver observer = FirebaseAnalyticsObserver(analytics: analytics);

を追加します。
また、MaterialAppの要素として、

navigatorObservers: <NavigatorObserver>[observer],

を追加します。これでデバッグを開始すると、firebase側で確認が取れるはずです。

次回はAndroid編

なかなか情報が無いですね。Googleさんもあまりこの辺りの情報は充実させていません。需要がないのでしょうか。しかも細かい情報が不足している部分もちらほら。次はAndroid編ですので、このまま流れで実装することをオススメします。。

(追記)更新しました。

レンタルサーバはConohaWINGが最強にオススメ!

muchilogでは今までいろんなレンタルサーバやSaaSを使ってきましたが、今では全てをConohaWINGにて運営しています。

■今まで使ってきたサービス一覧
・さくらレンタルサーバ(ベーシックプラン)
・カゴヤ
・Azure
・AWS

今ではこのブログは勿論、webサービスのバックエンドやアプリのサーバ機能もConohaWINGで動かしています。
そんなConohaWINGのメリットをいくつか紹介します!

【国内最速No.1】高性能レンタルサーバーConoHa WING

無料で最大2個の独自ドメインが使える!

サイト運営に必要な独自ドメインをなんと無料で取得することが可能です!これだけでも月100円以上は運営費が節約できます。

優れた速度と安定感

私がAzureやさくらを解約した大きな理由はこれ。Conohaは非常に安定して稼働しており、ダウンタイムがほぼ発生しません。発生した場合は潔くお知らせしてくれます。
また、このブログは勿論、バックエンドとして動いてるプログラムも処理速度が大幅に向上しました(体感で倍速以上)。 Azure等のSaaSからレンタルサーバに移行するって普通考えられませんよね?しかし実際に大きなメリットを感じているのです。

頻繁に開催されるキャンペーン

ConohaWINGは半額に迫るようなキャンペーンを頻繁に開催しています。このキャンペーンによって、性能的には業界トップクラスであるにも関わらず、 月額料金換算で最安値クラスで使えるのです。
基本的に長期一括契約の方がお得になるため、muchilogでは最長で契約することをオススメします。価格と性能のバランスを考えれば他に乗り換えることも考えれられませんし。

レンタルサーバは必須です!

web系のプログラミング学習を進める際には、レンタルサーバの契約は必須と思ってください。ローカルの環境と本番環境で動作が違うことは良くありますし、ポートフォリオを公開するのも大切です。

学習や制作に集中するためにも、満足度、速度、安定度全てのレベルが高いConohaWINGを最強にオススメします!

web系サービス開発会社に転職したい!

muchilogではIT系へ転職したいという方には「自社サービスを運営しているweb系企業」への転職をおすすめしています。

web系は「自由な社風」「成長できる環境」「ホワイトな労働条件」であることが多いからです。

そんなweb系企業への転職を確実にするためのプログラミングスクールが登場しました。


RUNTEQ

RUNTEQはただのスクールじゃない!

RUNTEQはweb系の開発会社。開発会社が運営するスクールなので必要とされる技術力は勿論習得可能。しかしそれだけではないのです。

特にweb系で転職・就職活動を行う際にはポートフォリオを求められることがあります。ポートフォリオとは自分自身の作品のことで、技術力や企画力を示すものです。

RUNTEQではポートフォリオの作成を企画段階からサポートしてくれます!

他のプログラミングスクールでは提携企業の派遣やアルバイトとして就職するしかなかったりもしますが、RUNTEQはあなたの市場価値を高める方法まで教えてくれるということですね。

また、RUNTEQが扱う教材はどれも第一線で当たり前に使われている技術。特に未経験者の独学ではどうしてもスキルセットに穴が出来てしまいます。その点RUNTEQは確実に現場力を養えます。

そして2020年2月〜2021年12月までの内定者の98%がweb系企業に内定しています。これはRUNTEQの指導力とサポートが優れていることの証拠でしょう。

まずは無料説明会に申し込んではいかがでしょうか?

RUNTEQ


Flutter 未分類
muchiをフォローする
MUCHILOG
タイトルとURLをコピーしました