- Riverpod, Hooks (State management)
- Go Router (Navigation & Routing)
- Responsive Framework (Responsive & Auto adapt)
- Freezed, Freezed Annotation (Immutable class generator)
- Json Serializable, Json Annotation (to & from generator)
- Riverpod Lint, Custome Lint (Linter for riverpod)
- Build Runner (Dart code generator)
- Vector Graphics, Vector Graphics Compiler (SVG renderer & optimize)
- Shared Preferences (Simple key-value pairs storage)
- Intl (Internationalized, date & number format & parse, etc)
- Http (Http request)
- Animations (Fancy pre-built animations)
- Dartx (Collection of useful static extension methods)
- Add this code on AndroidManifest.xml (android/app/src/main/AndroidManifest.xml) below application tag
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="true" />
- Add this code on build.gradle (android/app/build.gradle) above android block
def dartEnvironmentVariables = []
if (project.hasProperty('dart-defines')) {
dartEnvironmentVariables = project.property('dart-defines')
.split(',')
.collectEntries { entry ->
def pair = new String(entry.decodeBase64(), 'UTF-8').split('=')
[(pair.first()): pair.last()]
}
}
- Add this code on build.gradle (android/app/build.gradle) inside defaultConfig on android block
android {
... Other Code here ...
defaultConfig {
... Other Code here ...
manifestPlaceholders += [
GMAP_KEY: dartEnvironmentVariables.GMAP_KEY
]
}
... Other Code here ...
}
- Usage on AndroidManifest.xml (android/app/src/main/AndroidManifest.xml) above activity tag on application tag
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="${GMAP_KEY}" />