I built this app in order to learn the following topics:
-
MVVM architecture
- Preserve user state across device configuration changes
- Maintain Business Logic outside of composable functions
- Apply seperates of concerns principle
- Implement Ui States.
-
Adpative UI
- Build an adaptive layout to support multiple screen sizes.
-
Jetpack Compose Navigation
- Navigates between multiple screens.
- Sharing data with another app using intents.
- Manipulate the back stack to navigate to previous screens.
-
and more....
It's recommended to have these prerequisites for completing this project:
- Familiar with how to create UI layouts in Compose, and how to make them adaptive to different screen sizes
- Ability to add and implement the Jetpack Navigation component with Compose
- Ability to implement an app with the recommended app architecture.
- I made a simple model that provides me a basic idea of what the app looks like.
- Later on, I sketch some arrows to illustrate the navigation of the app.
- Finally, I implement the logic and layout of the app using Kotlin and Jetpack Compose library.
I use
when
statements:To assign the appropriate type of navigation bar for each screen size
To create a composable detail screen for each navigation bar
Compact Size Devices (ex: phone in portrait mode)
Medium Size Devices (ex: foldable in portrait mode)
Expanded Size Devices (ex: Tablets)
- I made this app for educational purposes only.
- I include some rough data and it is inaccurate.
Get Started? The main resources of this project:
Any Question? Contact Me: