FlutterでFirebaseAnalyticsを使う その2(Android編)

前回の復習

記事はこちら。

AndroidとiOSで共通する設定も行ってますので、先に上記記事の内容から行うことをオススメします。今回はAndroid編です。と言っても大体の設定やコード追加は終わってますので、難しい事はありません。

(Firebase側)プロジェクト作成&GoogleServices.json設定

まずはGoogleServices.jsonをダウンロードするところまで進めてください。ダウンロードしたら、android/app内に配置します。次にandroid/build.gradleをVSCode等で開き、

dependencies { 
  classpath 'com.android.tools.build:gradle:3.5.0'  
  classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
  classpath 'com.google.gms:google-services:4.3.3' } <-追加

Google-Servicesの記述を追加します。バージョンに関しては最新版をこちらで確認してください。
https://maven.google.com/web/index.html#com.google.gms:google-services

また、最終行に

apply plugin: 'com.google.gms.google-services'

を追加します。
その次はandroid/app/build.gradleを開きます。先ほどとはパスが違いますので気をつけてください。

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' ←追加する
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

真ん中ぐらいに上記の記述があるので、apply plugin: ‘com.google.gms.google-services’を追加してください。そして一番最後に

dependencies { 
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 
    implementation 'com.google.firebase:firebase-analytics:17.4.4' <=追加する
}

com.google.firebase:firebase-analyticsに関する記述を追加します。バージョンはググって新しい分を指定してください。
更に、minSdkVersionを上げておく必要があるそうです。

minSdkVersion 21

自分の環境では21でOKでした。

まだ作業はあります。次はandroid/settings.gladleを開き、一番下に

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}

を追加します。追加したら保存し、ターミナルを開きプロジェクトのルートフォルダで

flutter packages get

を実行してください。

デバッグしてみる

デバッグしてみると動くはずです。ですがエラーメッセージもコンソールに表示される場合があります。自分の場合は

* What went wrong: Execution failed for task ':app:processDebugGoogleServices'. 
> No matching client found for package name 'プロジェクトのID'

でした。どうもダウンロードした設定ファイルとアプリでIDが違っている様です。android/app/build.gradleの中にある、applicationIdを見てみると,

com.muchilog.appname.appname

の様に、なぜかアプリ名が2回繰り返されてましたので修正しました。

https://www.it-swarm.dev/ja/android/flutter%E3%81%A7%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E5%90%8D%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F/805768980/

こちらを参考にしました。補足するとするならば、AndroidManifest.xmlは複数存在します。

あとはandroid/app/src/main/kotlin/com/muchilog/appname/appnameとなっている場所があるので、正しいバンドルIDと揃う様にファインダーでフォルダを増減させ、そして一番深いところにMainactivity.ktを配置します。このMainactivity.ktも編集してください。

にしても不思議ですね。iOSは前回でも確認しましたがバンドルIDはプロジェクトを作成した時点で正しく設定されていました。Androidだけ変な事に。原因は不明です。何か情報ありましたら教えていただけると幸いです。

今度こそデバッグ

今度こそはうまく行きました。FirebaseConsoleを確認すると、

まとめ

長かったですね!これでAndroidも無事完了です。次はFirebaseAuthenticationの実装を行います。よろしければこちらも試してみてください。

レンタルサーバは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をコピーしました