add_to_app/README.md
This directory contains Android and iOS projects that import and use a Flutter module. They're designed to show recommended approaches for adding Flutter to existing Android and iOS apps.
fullscreen — Embeds a full screen instance of
Flutter into an existing iOS or Android app.prebuilt_module — Embeds a full screen
instance of Flutter as a prebuilt library that can be loaded into an existing
iOS or Android app.plugin — Embeds a full screen Flutter instance that
is using plugins into an existing iOS or Android app.books — Mimics a real world use-case of embedding Flutter into an
existing Android app and demonstrates using
Pigeon to communicate between Flutter and
the host application.multiple_flutters — Shows the usage of the Flutter
Engine Group APIs to embed multiple instances of Flutter into an existing app
with low memory cost.android_view — Shows how to integrate a Flutter
add-to-app module at a view level for Android.The iOS samples in this repo require the latest version of Cocoapods. To make sure you've got it, run the following command on a macOS machine:
sudo gem install cocoapods
See https://guides.cocoapods.org/using/getting-started.html for more details.
You can flutter attach to the running host application to debug the Flutter
module. This will
allow you to hot reload, set breakpoints, and use DevTools and other debugging
functionality, similar to a full Flutter app.
If you run into an issue with the sample itself, please file an issue in the Flutter samples repo.
If after upgrading it fails to build, try upgrading to a slightly less new version
If there's an "Unknown class version exception <VERSION NUMBER>" try setting the version of Java used by modifying JAVA_HOME
If it still fails to build, check that the Flutter code referenced in the build is up-to-date and doesn't use discontinued plugins. (Common cases include “namespace”)
The 'project structure' -> 'modules' view can be helpful in understanding the dependency tree.
Once the app builds with the latest gradle/agp, update any deprecated usages in app/build.gradle
compileSdkVersion -> sdkVersion
Update the target sdk version and read through each target sdk update
Export broadcast receivers
Update the way flutter is imported to use flutter gradle plugin
When updating an app that uses AAR as a Flutter module -- In android studio update any android dependencies that are indicated as in yellow as old. Keep androidx.test:runner, androidx.test.espresso:espresso-core, and androidx.test:core, as defined in https://github.com/flutter/packages/tree/main/packages/espresso