├── sample
├── .github
│ ├── wiki
│ │ └── .keep
│ ├── workflows
│ │ ├── whatsnew
│ │ │ └── whatsnew-en-US
│ │ ├── publish_wiki.yml
│ │ ├── configs
│ │ │ └── changelog-config.json
│ │ ├── bump_version.yml
│ │ ├── test.yml
│ │ ├── android_deploy_production_to_playstore.yml
│ │ ├── android_deploy_staging.yml
│ │ └── android_deploy_production.yml
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE
│ │ ├── chore_template.md
│ │ ├── feature_template.md
│ │ ├── bug_template.md
│ │ └── story_template.md
│ ├── PULL_REQUEST_TEMPLATE
│ │ └── release_template.md
│ └── PULL_REQUEST_TEMPLATE.md
├── lib
│ ├── data
│ │ ├── remote
│ │ │ ├── models
│ │ │ │ ├── requests
│ │ │ │ │ └── .keep
│ │ │ │ └── responses
│ │ │ │ │ └── user_response.dart
│ │ │ └── datasources
│ │ │ │ └── api_service.dart
│ │ ├── local
│ │ │ └── secure_storage.dart
│ │ └── repositories
│ │ │ └── credential_repository_impl.dart
│ ├── l10n
│ │ ├── app_en.arb
│ │ ├── app_th.arb
│ │ └── app_vi.arb
│ ├── app
│ │ ├── resources
│ │ │ └── app_colors.dart
│ │ └── screens
│ │ │ └── home
│ │ │ ├── home_view_state.dart
│ │ │ └── home_view_model.dart
│ ├── domain
│ │ ├── repositories
│ │ │ └── credential_repository.dart
│ │ ├── models
│ │ │ └── user.dart
│ │ └── usecases
│ │ │ ├── base
│ │ │ ├── base_use_case.dart
│ │ │ └── use_case_result.dart
│ │ │ └── get_users_use_case.dart
│ ├── env.dart
│ ├── di
│ │ ├── di.dart
│ │ ├── module
│ │ │ ├── storage_module.dart
│ │ │ └── network_module.dart
│ │ ├── provider
│ │ │ └── dio_provider.dart
│ │ └── interceptor
│ │ │ └── app_interceptor.dart
│ ├── utils
│ │ └── wrappers
│ │ │ └── permission_wrapper.dart
│ └── main.dart
├── .env.sample
├── ios
│ ├── Runner
│ │ ├── Runner-Bridging-Header.h
│ │ ├── Assets.xcassets
│ │ │ ├── LaunchImage.imageset
│ │ │ │ ├── LaunchImage.png
│ │ │ │ ├── LaunchImage@2x.png
│ │ │ │ ├── LaunchImage@3x.png
│ │ │ │ ├── README.md
│ │ │ │ └── Contents.json
│ │ │ └── AppIcon.appiconset
│ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ ├── AppDelegate.swift
│ │ ├── Base.lproj
│ │ │ ├── Main.storyboard
│ │ │ └── LaunchScreen.storyboard
│ │ └── Info.plist
│ ├── Flutter
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── AppFrameworkInfo.plist
│ ├── fastlane
│ │ ├── Pluginfile
│ │ ├── Gymfile
│ │ ├── Matchfile
│ │ ├── Managers
│ │ │ ├── BuildManager.rb
│ │ │ ├── DistributionManager.rb
│ │ │ └── MatchManager.rb
│ │ └── Constants
│ │ │ ├── Environments.rb
│ │ │ └── Constants.rb
│ ├── Gemfile
│ ├── Runner.xcodeproj
│ │ └── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── RunnerTests
│ │ └── RunnerTests.swift
│ ├── .gitignore
│ └── Podfile.lock
├── android
│ ├── signing.properties.sample
│ ├── gradle.properties
│ ├── config
│ │ └── debug.keystore
│ ├── app
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── values
│ │ │ │ │ │ ├── strings.xml
│ │ │ │ │ │ └── styles.xml
│ │ │ │ │ ├── drawable
│ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ ├── drawable-v21
│ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ └── values-night
│ │ │ │ │ │ └── styles.xml
│ │ │ │ ├── kotlin
│ │ │ │ │ └── co
│ │ │ │ │ │ └── nimblehq
│ │ │ │ │ │ └── flutter
│ │ │ │ │ │ └── template
│ │ │ │ │ │ └── MainActivity.kt
│ │ │ │ └── AndroidManifest.xml
│ │ │ ├── staging
│ │ │ │ └── res
│ │ │ │ │ └── values
│ │ │ │ │ └── strings.xml
│ │ │ ├── debug
│ │ │ │ └── AndroidManifest.xml
│ │ │ └── profile
│ │ │ │ └── AndroidManifest.xml
│ │ └── proguard-rules.pro
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ ├── .gitignore
│ ├── settings.gradle
│ └── build.gradle
├── assets
│ ├── fonts
│ │ └── neuzeit.otf
│ └── images
│ │ └── nimble_logo.png
├── l10n.yaml
├── test_driver
│ └── integration_test.dart
├── test
│ ├── mocks
│ │ ├── data
│ │ │ └── remote
│ │ │ │ └── models
│ │ │ │ └── responses
│ │ │ │ └── user_response_mocks.dart
│ │ └── generate_mocks.dart
│ ├── domain
│ │ └── usecases
│ │ │ └── get_users_use_case_test.dart
│ ├── data
│ │ └── repositories
│ │ │ └── credential_repository_test.dart
│ └── app
│ │ └── screens
│ │ └── home
│ │ └── home_view_model_test.dart
├── build.yaml
├── .metadata
├── codecov.yml
├── integration_test
│ ├── real_app_test.dart
│ ├── screens
│ │ └── home_screen_test.dart
│ └── utils
│ │ └── test_util.dart
├── .gitignore
├── analysis_options.yaml
└── README.md
├── bricks
├── template
│ ├── __brick__
│ │ ├── .github
│ │ │ ├── wiki
│ │ │ │ └── .keep
│ │ │ ├── workflows
│ │ │ │ ├── whatsnew
│ │ │ │ │ └── whatsnew-en-US
│ │ │ │ ├── publish_wiki.yml
│ │ │ │ ├── configs
│ │ │ │ │ └── changelog-config.json
│ │ │ │ ├── test.yml
│ │ │ │ ├── bump_version.yml
│ │ │ │ └── android_deploy_production_to_playstore.yml
│ │ │ ├── CODEOWNERS
│ │ │ ├── ISSUE_TEMPLATE
│ │ │ │ ├── chore_template.md
│ │ │ │ ├── feature_template.md
│ │ │ │ ├── bug_template.md
│ │ │ │ └── story_template.md
│ │ │ ├── PULL_REQUEST_TEMPLATE
│ │ │ │ └── release_template.md
│ │ │ └── PULL_REQUEST_TEMPLATE.md
│ │ ├── lib
│ │ │ ├── data
│ │ │ │ ├── remote
│ │ │ │ │ ├── models
│ │ │ │ │ │ ├── requests
│ │ │ │ │ │ │ └── .keep
│ │ │ │ │ │ └── responses
│ │ │ │ │ │ │ └── user_response.dart
│ │ │ │ │ └── datasources
│ │ │ │ │ │ └── api_service.dart
│ │ │ │ ├── local
│ │ │ │ │ └── secure_storage.dart
│ │ │ │ └── repositories
│ │ │ │ │ └── credential_repository_impl.dart
│ │ │ ├── l10n
│ │ │ │ ├── app_en.arb
│ │ │ │ ├── app_th.arb
│ │ │ │ └── app_vi.arb
│ │ │ ├── app
│ │ │ │ ├── resources
│ │ │ │ │ └── app_colors.dart
│ │ │ │ └── screens
│ │ │ │ │ └── home
│ │ │ │ │ ├── home_view_state.dart
│ │ │ │ │ └── home_view_model.dart
│ │ │ ├── env.dart
│ │ │ ├── domain
│ │ │ │ ├── repositories
│ │ │ │ │ └── credential_repository.dart
│ │ │ │ ├── models
│ │ │ │ │ └── user.dart
│ │ │ │ └── usecases
│ │ │ │ │ ├── base
│ │ │ │ │ ├── base_use_case.dart
│ │ │ │ │ └── use_case_result.dart
│ │ │ │ │ └── get_users_use_case.dart
│ │ │ ├── di
│ │ │ │ ├── di.dart
│ │ │ │ ├── module
│ │ │ │ │ ├── storage_module.dart
│ │ │ │ │ └── network_module.dart
│ │ │ │ ├── provider
│ │ │ │ │ └── dio_provider.dart
│ │ │ │ └── interceptor
│ │ │ │ │ └── app_interceptor.dart
│ │ │ └── main.dart
│ │ ├── .env.sample
│ │ ├── ios
│ │ │ ├── Runner
│ │ │ │ ├── Runner-Bridging-Header.h
│ │ │ │ ├── Assets.xcassets
│ │ │ │ │ ├── LaunchImage.imageset
│ │ │ │ │ │ ├── LaunchImage.png
│ │ │ │ │ │ ├── LaunchImage@2x.png
│ │ │ │ │ │ ├── LaunchImage@3x.png
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ │ │ ├── AppDelegate.swift
│ │ │ │ ├── Base.lproj
│ │ │ │ │ ├── Main.storyboard
│ │ │ │ │ └── LaunchScreen.storyboard
│ │ │ │ └── Info.plist
│ │ │ ├── Flutter
│ │ │ │ ├── Debug.xcconfig
│ │ │ │ ├── Release.xcconfig
│ │ │ │ └── AppFrameworkInfo.plist
│ │ │ ├── fastlane
│ │ │ │ ├── Pluginfile
│ │ │ │ ├── Gymfile
│ │ │ │ ├── Matchfile
│ │ │ │ ├── Managers
│ │ │ │ │ ├── BuildManager.rb
│ │ │ │ │ ├── DistributionManager.rb
│ │ │ │ │ └── MatchManager.rb
│ │ │ │ └── Constants
│ │ │ │ │ ├── Environments.rb
│ │ │ │ │ └── Constants.rb
│ │ │ ├── Gemfile
│ │ │ ├── Runner.xcodeproj
│ │ │ │ └── project.xcworkspace
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Runner.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── RunnerTests
│ │ │ │ └── RunnerTests.swift
│ │ │ ├── .gitignore
│ │ │ ├── Podfile.lock
│ │ │ └── Podfile
│ │ ├── android
│ │ │ ├── signing.properties.sample
│ │ │ ├── gradle.properties
│ │ │ ├── config
│ │ │ │ └── debug.keystore
│ │ │ ├── app
│ │ │ │ ├── src
│ │ │ │ │ ├── main
│ │ │ │ │ │ ├── res
│ │ │ │ │ │ │ ├── values
│ │ │ │ │ │ │ │ ├── strings.xml
│ │ │ │ │ │ │ │ └── styles.xml
│ │ │ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ │ ├── drawable
│ │ │ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ │ │ ├── drawable-v21
│ │ │ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ │ │ └── values-night
│ │ │ │ │ │ │ │ └── styles.xml
│ │ │ │ │ │ ├── kotlin
│ │ │ │ │ │ │ └── {{package_name.pathCase()}}
│ │ │ │ │ │ │ │ └── MainActivity.kt
│ │ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ │ ├── staging
│ │ │ │ │ │ └── res
│ │ │ │ │ │ │ └── values
│ │ │ │ │ │ │ └── strings.xml
│ │ │ │ │ ├── debug
│ │ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ │ └── profile
│ │ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── proguard-rules.pro
│ │ │ ├── gradle
│ │ │ │ └── wrapper
│ │ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── .gitignore
│ │ │ ├── settings.gradle
│ │ │ └── build.gradle
│ │ ├── l10n.yaml
│ │ ├── assets
│ │ │ ├── fonts
│ │ │ │ └── neuzeit.otf
│ │ │ └── images
│ │ │ │ └── nimble_logo.png
│ │ ├── test_driver
│ │ │ └── integration_test.dart
│ │ ├── test
│ │ │ ├── mocks
│ │ │ │ ├── data
│ │ │ │ │ └── remote
│ │ │ │ │ │ └── models
│ │ │ │ │ │ └── responses
│ │ │ │ │ │ └── user_response_mocks.dart
│ │ │ │ └── generate_mocks.dart
│ │ │ ├── domain
│ │ │ │ └── usecases
│ │ │ │ │ └── get_users_use_case_test.dart
│ │ │ ├── data
│ │ │ │ └── repositories
│ │ │ │ │ └── credential_repository_test.dart
│ │ │ └── app
│ │ │ │ └── screens
│ │ │ │ └── home
│ │ │ │ └── home_view_model_test.dart
│ │ ├── .metadata
│ │ ├── build.yaml
│ │ ├── codecov.yml
│ │ ├── integration_test
│ │ │ ├── real_app_test.dart
│ │ │ ├── screens
│ │ │ │ └── home_screen_test.dart
│ │ │ └── utils
│ │ │ │ └── test_util.dart
│ │ ├── .gitignore
│ │ ├── analysis_options.yaml
│ │ └── README.md
│ ├── LICENSE
│ ├── hooks
│ │ ├── .gitignore
│ │ ├── pubspec.yaml
│ │ ├── hooks_util.dart
│ │ ├── post_gen.dart
│ │ └── pre_gen.dart
│ ├── CHANGELOG.md
│ ├── README.md
│ └── brick.yaml
└── permission_handler
│ ├── __brick__
│ ├── {{~ _pubspec_dependency.yaml }}
│ ├── lib
│ │ └── utils
│ │ │ └── wrappers
│ │ │ └── permission_wrapper.dart
│ └── {{~ _Podfile_build_configurations }}
│ ├── README.md
│ └── brick.yaml
├── .github
├── wiki
│ ├── Home.md
│ └── _Sidebar.md
├── images
│ └── table-of-contents.png
├── CODEOWNERS
├── PULL_REQUEST_TEMPLATE
│ └── release_template.md
├── ISSUE_TEMPLATE
│ ├── chore_template.md
│ ├── feature_template.md
│ ├── bug_template.md
│ ├── story_template.md
│ └── config.yml
├── workflows
│ ├── publish_docs_to_wiki.yml
│ ├── configs
│ │ └── changelog-config.json
│ ├── bump_version.yml
│ ├── android_deploy_production_to_playstore.yml
│ └── android_deploy_staging.yml
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── mason.yaml
├── mason-config.json
└── LICENSE
/sample/.github/wiki/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/.github/wiki/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sample/lib/data/remote/models/requests/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sample/.env.sample:
--------------------------------------------------------------------------------
1 | SECRET=
2 | REST_API_ENDPOINT=
3 |
--------------------------------------------------------------------------------
/bricks/template/LICENSE:
--------------------------------------------------------------------------------
1 | TODO: Add your license here.
2 |
--------------------------------------------------------------------------------
/bricks/template/hooks/.gitignore:
--------------------------------------------------------------------------------
1 | .dart_tool
2 | build
3 |
--------------------------------------------------------------------------------
/.github/wiki/Home.md:
--------------------------------------------------------------------------------
1 | Welcome to the Flutter-Templates wiki!
2 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/data/remote/models/requests/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sample/lib/l10n/app_en.arb:
--------------------------------------------------------------------------------
1 | {
2 | "hello": "Hello!"
3 | }
4 |
--------------------------------------------------------------------------------
/sample/lib/l10n/app_th.arb:
--------------------------------------------------------------------------------
1 | {
2 | "hello": "สวัสดี"
3 | }
4 |
--------------------------------------------------------------------------------
/sample/lib/l10n/app_vi.arb:
--------------------------------------------------------------------------------
1 | {
2 | "hello": "Xin chào!"
3 | }
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/.env.sample:
--------------------------------------------------------------------------------
1 | SECRET=
2 | REST_API_ENDPOINT=
3 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/l10n/app_en.arb:
--------------------------------------------------------------------------------
1 | {
2 | "hello": "Hello!"
3 | }
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/l10n/app_th.arb:
--------------------------------------------------------------------------------
1 | {
2 | "hello": "สวัสดี"
3 | }
4 |
--------------------------------------------------------------------------------
/bricks/template/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 0.1.0+1
2 |
3 | - TODO: Describe initial release.
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/l10n/app_vi.arb:
--------------------------------------------------------------------------------
1 | {
2 | "hello": "Xin chào!"
3 | }
4 |
--------------------------------------------------------------------------------
/sample/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/sample/android/signing.properties.sample:
--------------------------------------------------------------------------------
1 | KEYSTORE_PASSWORD=
2 | KEY_ALIAS=
3 | KEY_PASSWORD=
4 |
--------------------------------------------------------------------------------
/bricks/permission_handler/__brick__/{{~ _pubspec_dependency.yaml }}:
--------------------------------------------------------------------------------
1 |
2 | permission_handler: ^10.2.0
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/signing.properties.sample:
--------------------------------------------------------------------------------
1 | KEYSTORE_PASSWORD=
2 | KEY_ALIAS=
3 | KEY_PASSWORD=
4 |
--------------------------------------------------------------------------------
/.github/wiki/_Sidebar.md:
--------------------------------------------------------------------------------
1 | # Table of Contents
2 |
3 | - [[Home]]
4 |
5 | ## Infrastructure
6 |
7 | - [[Deployment]]
8 |
--------------------------------------------------------------------------------
/sample/.github/workflows/whatsnew/whatsnew-en-US:
--------------------------------------------------------------------------------
1 |
2 | Enter or paste your release notes for en-US here
3 |
4 |
--------------------------------------------------------------------------------
/sample/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/sample/assets/fonts/neuzeit.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/assets/fonts/neuzeit.otf
--------------------------------------------------------------------------------
/sample/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: lib/l10n
2 | template-arb-file: app_en.arb
3 | output-localization-file: app_localizations.dart
4 |
--------------------------------------------------------------------------------
/.github/images/table-of-contents.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/.github/images/table-of-contents.png
--------------------------------------------------------------------------------
/sample/android/config/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/android/config/debug.keystore
--------------------------------------------------------------------------------
/sample/assets/images/nimble_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/assets/images/nimble_logo.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/.github/workflows/whatsnew/whatsnew-en-US:
--------------------------------------------------------------------------------
1 |
2 | Enter or paste your release notes for en-US here
3 |
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: lib/l10n
2 | template-arb-file: app_en.arb
3 | output-localization-file: app_localizations.dart
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/assets/fonts/neuzeit.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/assets/fonts/neuzeit.otf
--------------------------------------------------------------------------------
/sample/test_driver/integration_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:integration_test/integration_test_driver.dart';
2 |
3 | Future main() => integrationDriver();
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/config/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/android/config/debug.keystore
--------------------------------------------------------------------------------
/bricks/template/__brick__/assets/images/nimble_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/assets/images/nimble_logo.png
--------------------------------------------------------------------------------
/bricks/template/hooks/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: template_hooks
2 |
3 | environment:
4 | sdk: ">=2.18.4 <3.0.0"
5 |
6 | dependencies:
7 | mason: ">=0.1.0-dev.41 <0.1.0"
8 |
--------------------------------------------------------------------------------
/sample/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # Team
2 | # @teamlead is the Team Lead
3 | * @teammember1 @teammember2
4 |
5 | # Engineering Leads
6 | CODEOWNERS @nimblehq/engineering-leads
7 |
--------------------------------------------------------------------------------
/sample/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 | #include? "tmp.xcconfig"
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | .DS_Store
3 |
4 | # VSCode
5 | .vscode
6 |
7 | # Intellij
8 | *.iml
9 | .idea/*
10 |
11 | # Mason
12 | mason-lock.json
13 | .mason/
14 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/test_driver/integration_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:integration_test/integration_test_driver.dart';
2 |
3 | Future main() => integrationDriver();
4 |
--------------------------------------------------------------------------------
/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 | #include? "tmp.xcconfig"
4 |
--------------------------------------------------------------------------------
/sample/ios/fastlane/Pluginfile:
--------------------------------------------------------------------------------
1 | # Autogenerated by fastlane
2 | #
3 | # Ensure this file is checked in to source control!
4 |
5 | gem 'fastlane-plugin-firebase_app_distribution'
6 |
--------------------------------------------------------------------------------
/sample/lib/app/resources/app_colors.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class AppColors {
4 | static const Color nimblePrimaryBlue = Color(0xFF201547);
5 | }
6 |
--------------------------------------------------------------------------------
/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Flutter Templates
4 |
5 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # Team
2 | # @teamlead is the Team Lead
3 | * @teammember1 @teammember2
4 |
5 | # Engineering Leads
6 | CODEOWNERS @nimblehq/engineering-leads
7 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 | #include? "tmp.xcconfig"
4 |
--------------------------------------------------------------------------------
/sample/android/app/src/staging/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Flutter Templates Staging
4 |
5 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 | #include? "tmp.xcconfig"
4 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/fastlane/Pluginfile:
--------------------------------------------------------------------------------
1 | # Autogenerated by fastlane
2 | #
3 | # Ensure this file is checked in to source control!
4 |
5 | gem 'fastlane-plugin-firebase_app_distribution'
6 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/app/resources/app_colors.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class AppColors {
4 | static const Color nimblePrimaryBlue = Color(0xFF201547);
5 | }
6 |
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/sample/lib/domain/repositories/credential_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:sample/domain/models/user.dart';
2 |
3 | abstract class CredentialRepository {
4 | Future> getUsers();
5 | }
6 |
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/sample/lib/env.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_config/flutter_config.dart';
2 |
3 | class Env {
4 | static String get restApiEndpoint {
5 | return FlutterConfig.get('REST_API_ENDPOINT');
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{app_name.titleCase()}}
4 |
5 |
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/sample/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/staging/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{app_name.titleCase()}} Staging
4 |
5 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/env.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_config/flutter_config.dart';
2 |
3 | class Env {
4 | static String get restApiEndpoint {
5 | return FlutterConfig.get('REST_API_ENDPOINT');
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/sample/android/app/src/main/kotlin/co/nimblehq/flutter/template/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package co.nimblehq.flutter.template
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/sample/ios/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 | gem "cocoapods"
5 |
6 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
7 | eval_gemfile(plugins_path) if File.exist?(plugins_path)
--------------------------------------------------------------------------------
/sample/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/domain/repositories/credential_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:{{project_name.snakeCase()}}/domain/models/user.dart';
2 |
3 | abstract class CredentialRepository {
4 | Future> getUsers();
5 | }
6 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/app/src/main/kotlin/{{package_name.pathCase()}}/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package {{package_name.dotCase()}}
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 | gem "cocoapods"
5 |
6 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
7 | eval_gemfile(plugins_path) if File.exist?(plugins_path)
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nimblehq/flutter-templates/HEAD/bricks/template/__brick__/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/sample/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
6 |
--------------------------------------------------------------------------------
/mason.yaml:
--------------------------------------------------------------------------------
1 | # Register bricks which can be consumed via the Mason CLI.
2 | # https://github.com/felangel/mason
3 | bricks:
4 | template:
5 | path: ./bricks/template/
6 |
7 | # Other features
8 | permission_handler:
9 | path: ./bricks/permission_handler/
10 |
--------------------------------------------------------------------------------
/sample/lib/app/screens/home/home_view_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 | part 'home_view_state.freezed.dart';
4 |
5 | @freezed
6 | class HomeViewState with _$HomeViewState {
7 | const factory HomeViewState.init() = _Init;
8 | }
9 |
--------------------------------------------------------------------------------
/sample/lib/di/di.dart:
--------------------------------------------------------------------------------
1 | import 'package:get_it/get_it.dart';
2 | import 'package:injectable/injectable.dart';
3 |
4 | import 'di.config.dart';
5 |
6 | final GetIt getIt = GetIt.instance;
7 |
8 | @injectableInit
9 | Future configureInjection() async => getIt.init();
10 |
--------------------------------------------------------------------------------
/sample/ios/fastlane/Gymfile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | clean(true)
4 | export_team_id(Environments.TEAM_ID)
5 | output_directory(Constants.BUILD_PATH) # .ipa
6 | build_path(Constants.BUILD_PATH) # .xcarchive is stored
7 | derived_data_path(Constants.DERIVED_DATA_PATH) # .app
8 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
6 |
--------------------------------------------------------------------------------
/mason-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_name": "flutter_templates",
3 | "package_name": "co.nimblehq.flutter.template",
4 | "app_name": "Flutter Templates",
5 | "app_version": "1.14.0",
6 | "build_number": "1",
7 | "json_field_rename_format": "snake",
8 | "add_permission_handler": true
9 | }
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/app/screens/home/home_view_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 | part 'home_view_state.freezed.dart';
4 |
5 | @freezed
6 | class HomeViewState with _$HomeViewState {
7 | const factory HomeViewState.init() = _Init;
8 | }
9 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/di/di.dart:
--------------------------------------------------------------------------------
1 | import 'package:get_it/get_it.dart';
2 | import 'package:injectable/injectable.dart';
3 |
4 | import 'di.config.dart';
5 |
6 | final GetIt getIt = GetIt.instance;
7 |
8 | @injectableInit
9 | Future configureInjection() async => getIt.init();
10 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # Team
2 | # @luongvo is the Team Lead
3 | * @luongvo @manh-t @markgravity @sleepylee @chornerman @doannimble @hoangnguyen92dn @nmint8m @ducbm051291 @thiennguyen0196 @kaungkhantsoe @Shayokh144 @toby-thanathip @Wadeewee
4 |
5 | # Engineering Leads
6 | CODEOWNERS @nimblehq/engineering-leads
7 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/fastlane/Gymfile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | clean(true)
4 | export_team_id(Environments.TEAM_ID)
5 | output_directory(Constants.BUILD_PATH) # .ipa
6 | build_path(Constants.BUILD_PATH) # .xcarchive is stored
7 | derived_data_path(Constants.DERIVED_DATA_PATH) # .app
8 |
--------------------------------------------------------------------------------
/sample/test/mocks/data/remote/models/responses/user_response_mocks.dart:
--------------------------------------------------------------------------------
1 | import 'package:sample/data/remote/models/responses/user_response.dart';
2 |
3 | class UserResponseMocks {
4 | static UserResponse mock() {
5 | return UserResponse(
6 | "email",
7 | "username",
8 | );
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/sample/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/sample/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/sample/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/release_template.md:
--------------------------------------------------------------------------------
1 | https://github.com/nimblehq/flutter-templates/milestone/?
2 |
3 | ## Features
4 |
5 | Provide the ID and title of the issue in the section for each type (feature, chore and bug). The link is optional.
6 |
7 | - #
8 |
9 | ## Chores
10 |
11 | - #
12 |
13 | ## Bugs
14 |
15 | - #
16 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/sample/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/sample/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | builders:
4 | json_serializable:
5 | options:
6 | # Full FieldRename's options, refer https://github.com/google/json_serializable.dart/blob/2185e8b80d8d0c12e2adbf897d920b6f5725cded/json_annotation/lib/src/json_serializable.dart#L16-L32
7 | field_rename: "snake"
8 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/sample/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/test/mocks/data/remote/models/responses/user_response_mocks.dart:
--------------------------------------------------------------------------------
1 | import 'package:{{project_name.snakeCase()}}/data/remote/models/responses/user_response.dart';
2 |
3 | class UserResponseMocks {
4 | static UserResponse mock() {
5 | return UserResponse(
6 | "email",
7 | "username",
8 | );
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/sample/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: f4abaa0735eba4dfd8f33f73363911d63931fe03
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/sample/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | signing.properties
12 | config/release.keystore
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/chore_template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Chore"
3 | about: "Open a chore issue for a minor update."
4 | title: "Update "
5 | labels: "type : chore"
6 | ---
7 |
8 | ## Why
9 |
10 | Describe the update in detail and why it is needed.
11 |
12 | ## Who Benefits?
13 |
14 | Describe who will be the beneficiaries e.g. everyone, specific chapters, clients...
15 |
--------------------------------------------------------------------------------
/sample/ios/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Flutter
2 | import UIKit
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: f4abaa0735eba4dfd8f33f73363911d63931fe03
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | builders:
4 | json_serializable:
5 | options:
6 | # Full FieldRename's options, refer https://github.com/google/json_serializable.dart/blob/2185e8b80d8d0c12e2adbf897d920b6f5725cded/json_annotation/lib/src/json_serializable.dart#L16-L32
7 | field_rename: "{{json_field_rename_format}}"
8 |
--------------------------------------------------------------------------------
/sample/.github/ISSUE_TEMPLATE/chore_template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Chore"
3 | about: "Open a chore issue for a minor update."
4 | title: "Update "
5 | labels: "type : chore"
6 | ---
7 |
8 | ## Why
9 |
10 | Describe the update in detail and why it is needed.
11 |
12 | ## Who Benefits?
13 |
14 | Describe who will be the beneficiaries e.g. everyone, specific chapters, clients...
15 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | signing.properties
12 | config/release.keystore
13 |
--------------------------------------------------------------------------------
/sample/lib/di/module/storage_module.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_secure_storage/flutter_secure_storage.dart';
2 | import 'package:injectable/injectable.dart';
3 |
4 | @module
5 | abstract class StorageModule {
6 | @singleton
7 | FlutterSecureStorage get flutterSecureStorage => const FlutterSecureStorage(
8 | aOptions: AndroidOptions(encryptedSharedPreferences: true));
9 | }
10 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Feature"
3 | about: "Open a feature issue to add new functionalities."
4 | title: "Add "
5 | labels: "type : feature"
6 | ---
7 |
8 | ## Why
9 |
10 | Describe the big picture of the feature and why it is needed.
11 |
12 | ## Who Benefits?
13 |
14 | Describe who will be the beneficiaries e.g. everyone, specific chapters, clients...
15 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Flutter
2 | import UIKit
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/.github/ISSUE_TEMPLATE/chore_template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Chore"
3 | about: "Open a chore issue for a minor update."
4 | title: "Update "
5 | labels: "type : chore"
6 | ---
7 |
8 | ## Why
9 |
10 | Describe the update in detail and why it is needed.
11 |
12 | ## Who Benefits?
13 |
14 | Describe who will be the beneficiaries e.g. everyone, specific chapters, clients...
15 |
--------------------------------------------------------------------------------
/bricks/permission_handler/README.md:
--------------------------------------------------------------------------------
1 | # permission_handler
2 |
3 | [](https://github.com/felangel/mason)
4 |
5 | A new brick created with the Mason CLI.
6 |
7 | ## Description 🚀
8 |
9 | This brick has the simple implementation of [permission_handler](https://pub.dev/packages/permission_handler) package.
10 |
--------------------------------------------------------------------------------
/sample/.github/ISSUE_TEMPLATE/feature_template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Feature"
3 | about: "Open a feature issue to add new functionalities."
4 | title: "Add "
5 | labels: "type : feature"
6 | ---
7 |
8 | ## Why
9 |
10 | Describe the big picture of the feature and why it is needed.
11 |
12 | ## Who Benefits?
13 |
14 | Describe who will be the beneficiaries e.g. everyone, specific chapters, clients...
15 |
--------------------------------------------------------------------------------
/sample/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/bricks/template/__brick__/lib/di/module/storage_module.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_secure_storage/flutter_secure_storage.dart';
2 | import 'package:injectable/injectable.dart';
3 |
4 | @module
5 | abstract class StorageModule {
6 | @singleton
7 | FlutterSecureStorage get flutterSecureStorage => const FlutterSecureStorage(
8 | aOptions: AndroidOptions(encryptedSharedPreferences: true));
9 | }
10 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/.github/ISSUE_TEMPLATE/feature_template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Feature"
3 | about: "Open a feature issue to add new functionalities."
4 | title: "Add "
5 | labels: "type : feature"
6 | ---
7 |
8 | ## Why
9 |
10 | Describe the big picture of the feature and why it is needed.
11 |
12 | ## Who Benefits?
13 |
14 | Describe who will be the beneficiaries e.g. everyone, specific chapters, clients...
15 |
--------------------------------------------------------------------------------
/bricks/template/__brick__/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/sample/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/sample/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/bricks/template/hooks/hooks_util.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | Future deleteFileSystemEntities(List entities) async {
4 | entities.forEach((entity) {
5 | if (entity.existsSync()) {
6 | print('Delete ' + entity.path);
7 | if (entity is File) {
8 | entity.deleteSync();
9 | } else if (entity is Directory) {
10 | entity.deleteSync(recursive: true);
11 | }
12 | }
13 | });
14 | }
15 |
--------------------------------------------------------------------------------
/sample/lib/domain/models/user.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 |
3 | class User extends Equatable {
4 | final String email;
5 | final String username;
6 |
7 | const User({
8 | required this.email,
9 | required this.username,
10 | });
11 |
12 | @override
13 | bool? get stringify => true;
14 |
15 | @override
16 | List