| # Scenario App | |
| [](https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3A%22e%3A+scenario-app%22) | |
| This package simulates a Flutter app that uses the engine (`dart:ui`) only, | |
| in conjunction with Android and iOS-specific embedding code that simulates the | |
| use of the engine in a real app (such as plugins and platform views). | |
| The [`bin/run_android_tests.dart`](bin/run_android_tests.dart) and | |
| [`run_ios_tests.sh`](run_ios_tests.sh) are then used to run the tests on a | |
| connected device or emulator. | |
| See also: | |
| - [File an issue][file_issue] with the `e: scenario-app` label. | |
| - [`bin/`](bin/), the entry point for running Android integration tests. | |
| - [`lib/`](lib/), the Dart code and instrumentation for the scenario app. | |
| - [`ios/`](ios/), the iOS-side native code and tests. | |
| - [`android/`](android/), the Android-side native code and tests. | |
| [file_issue]: https://github.com/flutter/flutter/issues/new?labels=e:%20scenario-app,engine,team-engine | |
| ## Running a smoke test on Firebase TestLab | |
| To run the smoke test on Firebase TestLab test, build `android_profile_arm64`, | |
| and run [`./ci/firebase_testlab.py`](../../ci/firebase_testlab.py), or pass | |
| `--variant` to run a different configuration. | |
| ```sh | |
| # From the root of the engine repository | |
| $ ./ci/firebase_testlab.py --variant android_debug_arm64 | |
| ``` | |
| > [!NOTE] | |
| > These instructions were not verified at the time of writing/refactoring. | |
| ## Adding a New Scenario | |
| Create a new subclass of [Scenario](lib/src/scenario.dart) and add it to the map | |
| in [scenarios.dart](lib/src/scenarios.dart). For an example, see | |
| [animated_color_square.dart](lib/src/animated_color_square.dart), which draws a | |
| continuously animating colored square that bounces off the sides of the | |
| viewport. | |
| Then set the scenario from the Android or iOS app by calling `set_scenario` on | |
| platform channel `driver`. |