This is an Android app that helps check whether the weather is suitable for riding a bike.
The app uses weather and location data to show the current weather information and help the user decide if it is a good time to go for a bike ride.
I made this project to practice Android development and learn how to build a more complete app using Jetpack Compose.
- Kotlin
- Jetpack Compose
- Material 3
- Retrofit
- Gson
- OkHttp
- Coil
- Coroutines
- ViewModel
- Koin
- Location Services
- Gets the user's location
- Gets weather information using an API
- Shows weather information on the screen
- Gives information related to bike riding
- Uses a simple and clean Compose UI
I divided the project into different parts:
Handles the data coming from the API and other data sources.
Contains the main models, repository interfaces, and use cases.
Contains the UI, screens, components, and ViewModels.
Contains the dependency injection setup using Koin.
This structure helped me understand how different parts of an Android application can be separated.
While making this project, I learned:
- How to build a complete UI using Jetpack Compose
- How to use ViewModel with Compose
- How to make API calls using Retrofit
- How to work with JSON and Gson
- How to use OkHttp
- How to load images using Coil
- How to get location information
- How to use Coroutines
- How to separate data, domain, and presentation
- How repositories work
- How use cases work
- How dependency injection works using Koin
- How to connect the API data with the UI
- How to manage UI state
- How to organize a larger Android project
I made this project to move from small Android practice projects to a more complete application.
The main goal was to understand how different Android concepts work together in one project.
- Improve the weather prediction
- Add more detailed weather information
- Add better error handling
- Improve the UI
- Add weather forecasts
- Add more bike riding related information
Hamza Mallick