FlutterKaigi 2023 official application
Welcome FlutterKaigi 2023 official application repository!
Development
See Figma for the design of the FlutterKaigi 2023 official application. We use GitHub Issues for task management. Please do not contact core members individually, but use Issues and Discussions.
Set up
This project uses Flutter beta channel. Therefore, please install Flutter beta channel. There is 2 way to use flutter beta channel.
- Switch flutter channel.
- Install Flutter beta channel with fvm.
Switch flutter channel
flutter channel beta
flutter upgrade
Install Flutter beta channel with fvm
- Install fvm.
- Move to project root directory, and run
fvm install
command. - Run
fvm flutter pub get
command. - Set up IDE to use fvm.
- If you use VSCode, already set up.
- If you use Android Studio, please see fvm document.
Contributing
We always welcome all contributions! See CONTRIBUTING.md for more information.
For Japanese, please see CONTRIBUTING.ja.md.
Tech Stacks
- Flutter
- State management
- Data object
- Navigation
- M3 (Material Design 3)
The application design is based on riverpod pub example. Create Provider, FutureProvider, Notifier and AsyncNotifier to create a lightweight model layer.
Project structure
Since this will be a small application, a layer-first project structure will be used.
- lib
- gen
- l10n
- model
- ui
- router
- screen
- util
- extension
- web
About specifying the library version
https://dart.dev/tools/pub/dependencies
As a policy, only major versions are set. Minor and patch version are specified as 0, unless a problem occurs. As an example, the version specification for google_fonts is as follows.
google_fonts: ^5.0.0
PRs that modify only the pubspec.lock file without code modification will not be merged. The core members will take care of this.
Coding style
Introduce flutter_lints and adopt flutter's standard style.
https://docs.flutter.dev/release/breaking-changes/flutter-lints-package
The rules to be specially added are as follows.
- prefer_single_quotes
- always_use_package_imports
- require_trailing_commas
- avoid_void_async
- unawaited_futures
Thanks
Thank you for contributing!