A project for Manabie's testing
- MVVM pattern.
- Using provider package: https://pub.dev/packages/provider
- Add new task and save it to local database (SQLLite)
- Mark complete/uncompleted task
- Flutter (Channel stable, 2.0.0, on macOS 11.2.2 20D80 darwin-x64, locale en-VN)
- Local data lib: https://pub.dev/packages/sqflite
- When you create new repository class, it must be extend from
BaseRepository
class. And then register it inlocator.dart
file.
- Package: https://pub.dev/packages/get_it
- All DI set up will be in
locator.dart
- Step 1: Define your message in
i18n_en.json
andi18n_vi.json
- Step 2: Mapping your key ( step 1) to
app_lang.dart
- Step 3: Using
AppTranslations
class to get message. - Visit
main.dart
andlocalization
package to learn more about setup multi language
- Step 1: Copy your image to
\assets\images
- Step 2: Mapping image name to
app_drawable.dart
- Step 1: Visit
template\create_new_screen_mvvm
to create new screen - Step 2: We are using https://pub.dev/packages/route_annotation to generate flutter screen routing.
- Step 3:From root of project, run this line to generate code:
flutter packages pub run build_runner build --delete-conflicting-outputs
- Note: All screen must be extended from
BaseScreen
, all model class will be extendBaseViewModel
class.
- Step 1: Visit
template\create_object_template
to create new object - Step 2 :From root of project, run this line to generate code:
flutter packages pub run build_runner build --delete-conflicting-outputs
- All custom widget will be in
widget
package and must be end by _widget (Ex:app_appbar_widget.dart
).
- Must use
AppLogger
class to write your log.
test/task_viewmodel_test.dart
- On root project run
flutter test
- Android Studio
- VS
- Android: Using android studio to open
\android
folder and build the same with native platform - iOS: Using xcode to open
\ios
folder and build the same with native platform.