An application that consumes the Open Weather API to display weather information for a users location
In your local.properties
add the line below
API_KEY = Your Open Weather api key
The api key can be found here
Environment
- Built on A.S Hedgehog
- JDK 17
The project makes use of common android patterns in modern android codebases.
Project Structure Inside the Core directory, the Project has 5 main different modules with the following names and libraries used
-
Presentation Contains All the UI logic; Screens, ViewModel, Theme etc.
-
Domain Contains Repository Interface and Domain Models
-
Data Contains Repository Implementation and Data Models as well as mappers from DataSources to Data and Data to Domain
-
LocalDataSource Contains logic to fetch current user location and cache as well as entities for the database
-
RemoteDataSource Contains logic to make network calls
The Application is fully written in : Kotlin
- For testing I used the following libraries
- Tools and General setup
- Workflows
- The app has a (github action workflow)[https://github.com/chepsi/weather-app/actions] to run tests and build the application once a PR is raised against the main branch
- For the Presentation Layer I used MVVM. I have the MainScreen, MainViewModel and MainScreenState
- Generally I used clean architecture to Separate the different layers of the application as outlined above