Skip to content

salan70/teigiii_app

Repository files navigation

みんなの定義

みんなの定義は、ユーザーが自身の解釈や体験に基づいて言葉の「定義」を投稿し、共有することができるアプリです。

言葉の背後にある多様な価値観や感じるニュアンスを共有し、新しい視点や考え方を発見することができます。

TODO: DL用のリンク貼る

アプリ起動(run)

開発環境

fvm flutter run --dart-define-from-file=dart_defines/dev.json

本番環境

fvm flutter run --dart-define-from-file=dart_defines/prod.json

使用技術

Flutter

以下環境を使用しています。

Flutter 3.13.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision ead455963c (4 days ago) • 2023-09-26 18:28:17 -0700
Engine • revision a794cf2681
Tools • Dart 3.1.3 • DevTools 2.25.0

また、状態管理はRiverpodを使用しています。

Firebase

以下を使用しています。

  • Authentication
  • Firestore Database
  • Storage
  • Analytics
  • Crashlytics

GitHub Actions

CIの構築に使用しています。
CIは、Pull Request作成時とPush時に、静的解析とテストの実行が行われるようにしています。

開発方針

アーキテクチャ

アーキテクチャについて に記載しています。

GitHub関連

  • Issueベースで開発する
  • 開発時はdevelopブランチからブランチを切り、developブランチへプルリクエストを出してマージする
  • ブランチ名は「feature/#〇〇(対応するIssueの番号)_〇〇(対応内容)」とする
  • VS Codeの拡張を使用するなどして、commit時に「feat」「chore」などの接頭辞をつける

テスト

  • ビジネスロジックに対してUnit Testを原則書く
    • 書かない場合は、理由や後で書く旨をコメントで残す
  • プライベート関数に対してはUnit Testを原則書かない
    • 書く場合は、理由をコメントで残す
  • Unit Testは、作成が容易そうな関数、重要度が高そうな関数に対して書く
    • 理想は原則UnitTestを書くことだが、ユーザーが増えるまではこの方針で進める
  • Widget Test, Integration Testは実装しない
    • ある程度ユーザーが増えたら実装予定
  • テストはCIで自動実行する
  • 動作確認は適宜行い、プルリクエスト作成時に確認内容や結果を記載する

その他

  • 使用するIDEはVS Codeを前提とする
  • Flutterのバージョン管理にfvmを使う
    • 初回リリースまでFlutterバージョンは「3.13.6」を使用する