コンテンツにスキップ

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

Author: Takashi

Flutter は Google が開発したフレームワークで、クロスプラットフォーム開発ができる。現在は Android、iOS、Web、Windows、macOS、Linux のアプリを作成できる。また、Flutter Casual Games Toolkit を利用してゲーム開発もできる。

  • クロスプラットフォーム開発ができる
  • ネイティブコードの拡張がしやすい
  • ホットリロードが利用可能
    • 3.32 では Web でのホットリロードが利用可能になった
  • 豊富なウィジェットが提供されている
    • Material Design や Cupertino デザインのウィジェットを標準提供しており、標準のウィジェットで様々なデザインを作成することができる
    • ウィジェットを組み合わせて、独自のウィジェットを作成することが容易にできる
  • UI の一貫性が保たれる
    • デバイスごとに異なる挙動や UI 差異を抑えやすい
Terminal window
# Install FVM
brew tap leoafarias/fvm
brew install fvm
# Set Flutter version for a project
cd my_project
fvm use 3.19.0
# Run Flutter commands
fvm flutter doctor
Terminal window
# 開発環境のチェックツール
fvm flutter doctor
# プロジェクトの作成
fvm flutter create my_project
# プロジェクトの実行
fvm flutter run
# プロジェクトのビルド
fvm flutter build

ハッカソンでは主に以下のパッケージを使用して開発を行う

  • http
    • API リクエストを行うためのパッケージ
    • dio と比較して、コード量が少なく、シンプルに利用できる
  • flutter_hooks
    • React Hooks のような感覚で使用できる
    • ローカルな状態管理を行う
  • Riverpod
    • グローバルな状態管理を行うためのパッケージ
    • コンポーネントを横断するような場合に利用する
  • Freezed
    • モデルを作成するためのパッケージ
    • 少ないコード量で、fromJson や toJson などを自動で生成してくれる
  • Shared Preferences
    • 漏れても問題ないデータを保存する
    • 例えばテーマの設定など
  • flutter_secure_storage
    • 漏れては困るデータを保存する
    • 暗号化されて保存されるため、アクセストークンなどを保存する場合に利用する
  • flutter_native_splash
    • スプラッシュ画面(アプリを起動したときに表示される画面)を設定するためのパッケージ
  • Firebase 関連のパッケージ
    • ハッカソンでは API を独自で作成することが多いため、Firebase の特にストレージ系は利用する必要がない
    • Firebase を利用するための準備が大変
    • ただし、プッシュ通知などを実装する場合は利用を検討する