A group of exercise projects implementing different areas of native Android development with Kotlin and Jetpack Compose. Can help anyone who is just starting to learn Android development with Kotlin.
A group of exercise projects implementing different areas of native Android development with Kotlin and Jetpack Compose. Can help anyone who is just starting to learn Android development with Kotlin.
View Model
between composables inside Jetpack Compose Navigation.
Sync list on a LazyColumn after adding and deleting items.
Using TopAppBar, Button with an icon, built-in icons.
Filling up the whole remaining space by an UI element.
Hiding keyboard on enter press and on button click.
Case insensitive check for a word on a list.
Make a word sentence case.
Allow entering only letters on the TextField.
TopAppBar icon change on click (ascending/descending order).
Delete items from LazyColumn on click.
Show leading icon on TextField.
Show trailing icon on TextField based on error.
Show separate error message with TextField based on error.
FIXME: Strange sorting bug. Keeps the new words separate while sorting.
Show user-selected image from the gallery.
Show user-entered image from a web URL.
TODO: Verify image exists on provided URL before showing.
TODO: Show the previous image in case of an non-existing image on the URL.
TODO: Display image from the camera when the Camera API from Compose arrives.
This project demonstrates the offline caching of REST API data in the local database. It fetches earthquake data from the United States Geological Survey department's server using REST API, stores it on the local database, and displays it.
Data is filtered to show only the earthquakes of 4 magnitudes or higher, with a 400 km radius from the Bangladeshi capital Dhaka, in the past 12 months.
Every time the app is opened, it checks for any new earthquake data on the server that is more recent than locally stored. If any new data is found, it fetches all the data, deletes everything from the database, and stores the latest data for displaying. Also sync data once in a day by running a background work using WorkManager.
java.time
API (26+) in legacy projects (21).
Display AdMob ads on Android apps using Jetpack Compose.
Show different types of notifications using Jetpack Compose.