Skip to content

dubydu/fluttourII

Repository files navigation

Build Status

A Flutter project template, an upgrade version of fluttour

  • Flutter (Channel stable, 3.27.0)
  • Dart 3.6.0
  • Cocoapods 1.15.2
  • flutter_bloc: State management package.
  • dio: A powerful Http client for Dart.
  • graphql: A stand-alone GraphQL client for Dart.
  • mockito: A mock framework with APIs for Fakes, Mocks, behavior verification, and stubbing.

Run App with a specific environment.

  • Development: flutter run --flavor dev -t lib/main_dev.dart
  • Production: flutter run --flavor prod -t lib/main_prod.dart
.
├── README.md
├── {project_name}
│   ├── asssets
│   │   ├── fonts
│   │   ├── icons
│   │   ├── images
│   │   └── locales
│   └── lib
│       ├── config
│       │   ├── app_config.dart
│       │   ├── app_config_type.dart
│       │   ├── app_secure_config.dart
│       │   └── app_secure_config_type.dart
│       ├── data
│       │   ├── api
│       │   │   ├── api_client
│       │   │   │   ├── interceptor
│       │   │   │   │   ├── curl_log.dart
│       │   │   │   │   └── query.dart
│       │   │   │   ├── api_client.dart
│       │   │   │   ├── api_client_type.dart
│       │   │   │   └── api_client_type.g.dart
│       │   │   ├── graphql_client
│       │   │   │   ├── graphql_client.dart
│       │   │   │   └── graphql_client_type.dart
│       │   │   ├── query
│       │   │   │   ├── graphql_query.dart
│       │   │   │   └── sqlite_query.dart
│       │   │   ├── request
│       │   │   │   └── dummy_request.dart
│       │   │   └── response
│       │   │       ├── dummy_response.dart
│       │   │       └── dummy_response.g.dart
│       │   ├── datasource
│       │   │   └── dummy
│       │   │       ├── dummy_datasource.dart
│       │   │       └── dummy_datasource_type.dart
│       │   ├── repositoty
│       │   │   └── dummy_repository.dart
│       │   ├── translator
│       │   │   └── dummy_translator.dart
│       │   └── error_response.dart
│       ├── di
│       │   ├── client_module.dart
│       │   ├── config_module.dart
│       │   ├── datasource_module.dart
│       │   ├── repository_module.dart
│       │   └── usecase_module.dart
│       ├── domain
│       │   ├── model
│       │   │   ├── empty.dart
│       │   │   ├── failure.dart
│       │   │   └── dummy.dart
│       │   ├── repository
│       │   │   └── dummy_repository_type.dart
│       │   └── usecase
│       │       └── dummy
│       │           ├── dummy_usecase.dart
│       │           └── dummy_usecase_type.dart
│       ├── environment
│       │   ├── development
│       │   │   └── development_env.dart
│       │   ├── production
│       │   │   └── production_env.dart
│       │   └── environment.dart
│       ├── presentation
│       │   └── dummy
│       │       ├── dummy_page.dart
│       │       └── dummy_bloc.dart
│       ├── router
│       │   ├── gen_route.dart
│       │   ├── named_route.dart
│       │   ├── navigation_controller.dart
│       │   └── routes.dart
│       ├── util
│       │   ├── assets
│       │   │   ├── app_color.dart
│       │   │   ├── app_icon.dart
│       │   │   ├── app_image.dart
│       │   │   ├── app_locale.dart
│       │   │   └── app_text.dart
│       │   ├── extension
│       │   ├── widget
│       │   ├── app_global.dart
│       │   ├── app_mixin.dart
│       │   ├── app_router.dart
│       │   └── util.dart
│       ├── main.dart
│       ├── main_dev.dart
│       ├── main_prod.dart
│       └── my_app.dart
└── test
    ├── domain
    │   ├── usecase
    │   │   └── dummy
    │   │       ├── dummy_usecase_test.dart
    │   │       └── dummy_usecase_test.mocks.dart
    └── mock
        └── dummy_response_mock.dart
  group('describes what component you are testing', () {
    test('describes the purpose of the test or the current state of an object', () {
    
      // stub a mock method before interacting
      when('mock.doMock()').thenAnswer((_) => 'stub');
      
      // the expected result of the test
      expect('actual', 'matcher');
    });
  });
  • Run tests flutter test test/*
  • Make sure flutter pub get before you run the app.

iOS

  • Development: flutter build ipa --flavor dev lib/main_dev.dart --export-method [...]
  • Production: flutter build ipa --flavor prod lib/main_prod.dart --export-method [...]
  • --export-method

Android

  • Development: flutter build [appbundle/apk] --flavor dev lib/main_dev.dart
  • Production: flutter build [appbundle/apk] --flavor prod lib/main_prod.dart