This is an experimental sample app based on Flutter and Dart.
The purpose is to learn Dart and Flutter, to experiment with Flutter's support for the web platform and to test different API-technologies for implementing communication between a mobile (or web) app and backend services.
This app has backend service integrations based on either RESTful APIs or gRPC services.
For example the related repository quake implements a gRPC service providing earthquake data.
Quake Monitor sample app running on Chrome based on the Flutter web platform. Locally tested also on iOS simulator.
This repository contains three separate Dart or Flutter projects with
each having their own pubspec.yaml
dependency file.
Please open each project separately on an IDE. Each project has also own README describing the code and dependencies for a project.
Project | SDK | Description |
---|---|---|
api | Dart & gRPC | API client and generated stub for gRPC service providing earthquake data. |
core | Dart | Platform independent domain models, data providers (API clients), repositories, i18 and other shared utilities. |
mobile | Flutter | Blocs (state management), widgets, pages and UI related utilities. |
See code projects introduced above for Dart and Flutter libraries linked.
This project is authored by Navibyte.
This project is licensed under the MIT License - see the LICENSE.
The app is based on SDKs:
Other key libraries used by the app:
Data sources:
- earthquakes from the GeoJSON service of the USGS
- place searches from the GeoNames.org service
Other assets:
- App bar images by Marcello Migliosi via Pixabay
Inspiration for how to handle state using the Bloc library and how to structure model, repository, bloc and widget layers originates from Flutter Weather Tutorial by Felix Angelov (see also related example repository).
Inspiration for the sub-project structure originates from inKino app by Iiro Krankka.