A new Flutter project.
Getting Started
This project is built using Flutter 3.7.9.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Quick test
Running the project
- Run
flutter pub get
to get all dependencies. - Create a
.env
file in the project root. With referal to.env-example
. This will include the open weathe API key and url. - Build auto-generated resources with
flutter pub run build_runner build --delete-conflicting-outputs
. - Create goole map configurations. For iOs use
ios/Flutter/GoogleMaps.xcconfig.example
to create aios/Flutter/GoogleMaps.xcconfig
file containing the google map key. For android useandroid/maps.properties.example
to create aandroid/maps.properties
file that contains the google maps api key configuration. - Run the flutter project to iOs or android.
Tasks
- Please demonstrate best practices - including but not limited to,
- Architecture
- Design Patterns
- Unit Testing (TDD Preferential)
- Proper use of the SOLID principles
- Integration into a CI/CD build pipeline
- Code coverage integration
- Static code analysis
- Please note these are additional requirements, complete the ones you are comfortable with to demonstrate your knowledge and experience
- Please also take some initiative and implement some additional features like,
- The ability to save different weather locations as favourites
- The ability to view a list of favourites
- The ability to get extra information about a specific location
- Using something like the Google Places API - https://developers.google.com/places/web-service/intro
- The ability to see weather information while the application is offline (show time last updated etc)
- Allow the user to view saved locations on a map
- Meaning the user should be able to access a map and see all the weather locations they have saved as favourites and where they are now.
Previews
Android | iOs |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |