FlutterKaigi 2023公式アプリケーションリポジトリにようこそ!
このリポジトリでは、コントリビューションを受け付ける期間を終了しました。ご関心をお寄せいただき、ありがとうございました! コントリビューションに関心がある場合には、最新のFlutterKaigiプロジェクトをご確認ください。
以下の情報は、コントリビューションを受け付けていた期間のものです。最後のリリースバージョンを確認したい場合には tag 1.5.0 をご確認ください。
FlutterKaigi 2023公式アプリケーションのUI定義は、Figmaにあります。 タスク管理にはGitHub Issueを利用しています。個別にコアメンバーに連絡せず、IssueやDiscussionを利用してください。
このプロジェクトでは、Flutter beta channelを利用しています。 このため、Flutter beta channelをインストールしてください。Flutter beta channelを利用する方法は2つあります。
- flutter channelを切り替える。
- fvmを利用してFlutter beta channelをインストールする。
flutter channel beta
flutter upgrade
- fvmをインストールする。
- プロジェクトのルートディレクトリに移動し、
fvm install
コマンドを実行する。 fvm flutter pub get
コマンドを実行する。- IDEをfvmを利用するように設定する。
- VSCodeを利用する場合は、すでに設定済みです。
- Android Studioを利用する場合は、fvmのドキュメントを参照してください。
コントリビュートはいつでも歓迎しています!詳細はCONTRIBUTING.ja.mdを参照してください。
- Flutter
- 状態管理
- データオブジェクト
- ナビゲーション
- M3 (Material Design 3)
アプリケーションの設計は、riverpod pub exampleを参考にしています。 Provider、FutureProvider、Notifier and AsyncNotifierを作成して、軽量なモデル層を作成します。
小規模なアプリケーションとなるため、レイヤーファーストのプロジェクト構造を採用します。
- lib
- gen
- l10n
- model
- ui
- router
- screen
- util
- extension
- web
https://dart.dev/tools/pub/dependencies
ライブラリバーション指定の方針として、メジャーバージョンのみを指定することとします。マイナーバージョン、パッチバージョンは問題が発生した場合のみ指定します。 例として、google_fontsのバージョン指定は以下のようになります。
google_fonts: ^5.0.0
コードの変更を伴わないpubspec.lockファイルのみを変更するPRはマージしません。ライブラリのみの更新は、コアメンバーが対応します。
flutter_lintsを導入し、flutterの標準スタイルを採用します。
https://docs.flutter.dev/release/breaking-changes/flutter-lints-package
追加するルールは以下の通りです。
- prefer_single_quotes
- always_use_package_imports
- require_trailing_commas
- avoid_void_async
- unawaited_futures
コントリビュートしてくれたみなさん、ありがとうございます!