DaysLeft Mobile App Development

Application Development

For those interested the application is built using the latest version of Flutter (as of Jun 18th 2022). The architecture uses flutter_bloc and is split into 3 main layers

  • - data layer
  • - domain layer
  • - feature layer

The project is split across multiple packages to allow for unit testing of each individual dependency.

Data Layer

This consists of the trip_api, local_trip_api and the countries_api packages. The local_trip_api being an implementation of trip_api using the Flutter shared preferences package.

Domain Layer

This contains the trip_repository and is responsible for interacting with the trip and Schengen country information in the data layer.

Feature Layer

This has all the application specific features and holds the UI and business logic. This is separated into feature directories found in the main src directory:

  • - home manages the main screen shown to the user (added for a new planned feature)
  • - trip_home used to manage the list of trips
  • - edit_trip manages the creation of new trips and editing of existing trips
  • - trip_summary used to maintain the trip calculation information shown to the user