Skip to content

DNET_FlutterThirdStep

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Flutterのサード・ステップ

概要

Flutter の step by step(其の三)。

手順1:プッシュ通知

CIBAのAD(CIBA(Client Initiated Backchannel Authentication)の該当節を参照)実装の準備

mBaaS選定

  • 色々なプラグインがあるが、
    使うとmBaaSにロックインされる。

  • FCMは実質デファクトなので
    ロックインの影響も少ない。

  • 以下は、FCMでの設定手順。

設定手順

準備(iOSのみ)

  • APNs入手
  • APNs認証キー、またはAPNs証明書の入手

FCM関連の設定

Firebaseにログイン

  • Firebaseにログイン(Android (FCM)の該当節を参照)

プロジェクトの作成

  • プロジェクトの作成(Android (FCM)の該当節を参照)

FCMへアプリを登録

  • FCMへアプリを登録(Android (FCM)の該当節を参照)

ファイルのダウンロード

  • ファイルのダウンロード(Android (FCM)の該当節を参照)

設定と実装

ビルド・プロセスへの組込

  • ビルド・プロセスへの組込(Android (FCM)の該当節を参照)

Android、iOS、其々のプラットフォームに向けて、

パッケージのインストール

firebase_messaging パッケージを追加する必要がある(Flutterのファースト・ステップの該当節を参照)。

プッシュ通知のコード実装

  • プッシュ通知のコード実装(Android (FCM)の該当節を参照)

  • デバイスの登録

    • デバイスIDを取得し、
    • サーバに送信して登録
  • 送信・受信

    • 送信
      サーバから送信(Android (FCM)の該当節を参照)
    • 受信
      プッシュ通知の受信。

参考(手順1)

Qiita(手順1)

FlutterFire

その他(手順1)

手順2:全体構成の見直し

サイズも増えて来たので、この辺りで、アプリの全体構成を見直してみる。

MaterialAppとScaffold

MaterialApp

  • 全体を構成する。
  • app.dartのWidget buildメソッドでreturnされる。

Scaffold

  • Pageを構成する。
  • PageのWidgetのWidget buildメソッドでreturnされる。

フォルダ構成

main.dart

  • runAppする。
  • その他、初期設定等。

common

ButtonやView等のWidgetクラスを配置

components

PageのWidgetクラスを配置

  • app.dart

    • runAppするApp。
    • MaterialApp を返す。
  • importer.dart

    • componentで使用されるライブラリをexportし、

      export 'package:flutter/material.dart';
    • componentでimporter.dartをimportする。

      import '../importer.dart';
  • Page毎のファイル or ディレクトリ
    ディレクトリの場合、commonでないWidgetクラスも配置

configs

  • グローバルな変数/定数クラスを配置
  • または、servicesのシングルトン化

helpers

staticな関数クラスを配置

models

モデルクラスを配置

routes

  • ルーティングの設定クラスを配置
  • fluro の configureなど。

services

  • サービス・クラスを配置
  • configsでシングルトン化

クリーン・アーキテクチャ系

以下のようなモノがあってもイイが、

  • Interactor(業務ロジック)
  • Repository(DBアクセス)

WebAPIのクライアントに終始するようなケースでは不要か。

画面分割

components

runAppするApp。

app.dartのWidget buildメソッドでMaterialAppをreturnする。

Page毎のWidget

PageのWidgetのWidget buildメソッドでScaffoldをreturnする。

部品化

Widget

common

自作クラス

パッケージ / プラグイン化(≒個別にプロジェクト化)しない
自作クラスは、configshelpersservicesに格納する。

参考(手順2)

Qiita(手順2)

参考

Flutterの参考

  • Flutterの参考(Flutterの該当節を参照)

Flutterの4thステップ

移行メモ

  • 元 Wiki では見出しそのものが他ページ・同ページ内へのリンクになっていた箇所 (「手順1:プッシュ通知」「Firebaseにログイン」「プロジェクトの作成」 「FCMへアプリを登録」「ファイルのダウンロード」「ビルド・プロセスへの組込」 「プッシュ通知のコード実装」「クリーン・アーキテクチャ系」「MaterialAppとScaffold」 「Flutterの参考」「Flutterの4thステップ」)は、GitHub Wiki では 見出しからアンカが生成されるため、見出しをプレーン・テキストとし、 リンクは直下の本文に置いた。
  • 同名の見出し(「参考」「Qiita」「その他」)が複数あり GitHub Wiki でアンカが衝突するため、括弧で文脈を補って一意にした。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの CIBA(Client Initiated Backchannel Authentication) に張り替えた。
  • リンク先が未移行のページは、移行先のファイル名を `DNET_○○.md` の形で示し TODO.md に登録した。

Tags: 移行, Flutter, プッシュ通知, FCM, APNs, firebase_messaging, フォルダ構成, MaterialApp, Scaffold, クリーン・アーキテクチャ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally