コンテンツにスキップ

続・ハッカソンの技術選定 [Flutter編]

Author: Takashi
lib/
├── constants/ # 定数を管理するディレクトリ ex: api_endpoint.dart
├── features/ # 機能を管理するディレクトリ ex: features/auth/
├── pages/ # ページを管理するディレクトリ ex: home_page.dart
├── storages/ # ストレージを管理するディレクトリ ex: secure_storage.dart
├── utils/ # ユーティリティを管理するディレクトリ ex: api_request.dart
├── main.dart # アプリのエントリーポイント
└── router.dart # ルーティングを管理するファイル
  • build_runner を使用して、コードを生成する
    • コマンドは flutter pub run build_runner build -d を使用する
    • flutter pub run build_runner watch -d とすると、コードが変更されたら自動でコードを生成する
  • flutter_dotenv を使用して環境変数を管理する
    • .env.example をコピーして .env を作成し、環境変数を設定する
  • 証明書は fastlane match を使用して管理する
    • fastlane とは iOS と Android のビルドなどを自動化するためのツール
    • fastlane match は証明書の管理やプロビジョニングプロファイルの管理、アプリの配布などに特化したツール
    • ios/fastlane/Fastfile に記載した lane を実行して、証明書の管理・配布を行う
    • 以下の lane を用意した
      • recreate: 証明書を再作成する
      • sync_certificates: 証明書を同期する
  • ルーティングは go_router を使用している
    • lib/router.dart ですべてのページのルーティングを管理している
    • 使用する際は以下のような使い分けを意識する
      • context.go: 現在のナビゲーションスタックを置き換えて指定したルートに遷移(前の画面には戻れない)
      • context.push: 現在のスタックに新しいルートを追加して遷移(前の画面には戻れる)
  • sensors_plus
    • センサー類を使用するためのパッケージ
    • 以下のセンサーが使用可能
      • 加速度
      • ジャイロ
      • 地磁気
      • 気圧
  • flutter_compass
    • 方位を取得できるパッケージ
    • 以下のセンサーが内部で使用されている
      • 加速度
      • ジャイロ
      • 地磁気
      • (部分的に)位置情報
  • shake
    • 振動を検出するためのパッケージ
    • 加速度センサーが内部で使用されている
  • ambient_light
    • 環境光センサーを使用するためのパッケージ
  • proximity_sensor
    • 近接センサーを使用するためのパッケージ
  • arkit_plugin
    • ARKit を使用するためのパッケージ
    • LiDAR センサーが扱える
  • nfc_manager
    • NFC の読み書きを行うためのパッケージ
    • タグの種類ごとのアクセスに対応
  • mobile_scanner
    • カメラを使用してバーコードや QR コードをスキャンするためのパッケージ
  • geolocator
    • 位置情報を取得するためのパッケージ