mirror of
https://github.com/flutter/samples.git
synced 2025-11-08 13:58:47 +00:00
60 lines
2.1 KiB
Markdown
60 lines
2.1 KiB
Markdown
# compass_app
|
||
|
||
The Compass sample application is an app that helps users build and book
|
||
itineraries for trips. It’s a robust sample application with many features, routes, and screens. The app communicates
|
||
with an HTTP server, has development and production environments, brand-specific styling, and high test coverage. In
|
||
these ways and more, it simulates a real-world, feature rich Flutter application.
|
||
|
||
The code in this application is used for explaining architecture in a Flutter application.
|
||
|
||

|
||

|
||

|
||

|
||
|
||
The Compass app was originally [designed and built by the Firebase GenKit team](https://developers.googleblog.com/en/how-firebase-genkit-helped-add-ai-to-our-compass-app/).
|
||
|
||
## Running the app
|
||
|
||
This app contains multiple environments.
|
||
|
||
* Development environment - This environment uses data from a JSON file, which is stored in the `assets` directory, and simulates developing locally.
|
||
|
||
```bash
|
||
$ cd app
|
||
$ flutter run --target lib/main_development.dart
|
||
```
|
||
|
||
* Staging environment - This environment uses an HTTP server to get data, simulating a real app experience. This is a "dummy" server, that has endpoints that simply return fake data. The server can be found in the `compass_app/server` directory. You need to run the server locally before running the Flutter application.
|
||
|
||
```bash
|
||
$ cd server
|
||
$ dart run
|
||
# => Server listening on port 8080
|
||
|
||
$ cd ../compass_app/app
|
||
$ flutter run --target lib/main_staging.dart
|
||
```
|
||
|
||
## Integration Tests
|
||
|
||
Integration tests must be run from the `app` directory.
|
||
|
||
**Integration tests with local data**
|
||
|
||
```bash
|
||
cd app
|
||
$ flutter test integration_test/app_local_data_test.dart
|
||
```
|
||
|
||
**Integration tests with background server and remote data**
|
||
|
||
```bash
|
||
cd app
|
||
$ flutter test integration_test/app_server_data_test.dart
|
||
```
|
||
|
||
Running the tests together with `flutter test integration_test` will fail.
|
||
See: https://github.com/flutter/flutter/issues/101031
|
||
|