Home

Awesome

Jetpack Compose Exercises

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.

#1. Basic Navigation

<br /> <p float="left"> <img src = "https://user-images.githubusercontent.com/67064997/127823749-87a23b7b-ae8b-46a3-a883-a9b267e57381.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/127823753-36363485-9b20-4dbb-a436-996abe6b6a2c.png" width="200" /> </p> <br />

#2. Viewmodel Sharing

<br /> <p float="left"> <img src = "https://user-images.githubusercontent.com/67064997/127863143-71ffb8b8-46dc-41fd-9cca-0f5c025ddd46.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/127863134-73b5f22f-f4ea-4352-b23e-fe93b827883e.png" width="200" /> </p> <br />

#3. Lazy Column Scrolling

<br /> <img src="https://user-images.githubusercontent.com/67064997/127976999-1317bbfb-d9c9-487d-b5d8-3d48c0921c25.png" width="200" /> <br />

#4. LazyColumn Sync

<br /> <p float="left"> <img src="https://user-images.githubusercontent.com/67064997/128343506-6b5ae70e-f3f4-4d3c-917f-cc6342a07f1f.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/128351895-ab210e56-ae71-44d8-ad76-44740ef43c4a.png" width="200" /> </p> <br />

#5. State Hoisting

<br /> <img src="https://user-images.githubusercontent.com/67064997/128541787-6ea0ee16-d041-4059-bf47-87a078d3be52.png" width="200" /> <br />

#6. LazyVerticalGrid

<br /> <p float="left"> <img src="https://user-images.githubusercontent.com/67064997/128686864-503e759a-c20f-42a7-9a11-a8bf2bc26d90.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/128686855-01064390-e29e-43a5-9bba-cc3c714348f0.png" width="200" /> </p> <br />

#7. Image Sources

<br /> <p float="left"> <img src="https://user-images.githubusercontent.com/67064997/129017019-204c7a74-b0cd-4070-b58a-e97c87d21b35.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/129017029-2e29ed19-3ba5-4c45-8d17-d6310165b5c9.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/129017026-4e7b8a3d-3e5f-40e2-b041-c32880a9e837.png" width="200" /> </p> <br />

#8. Room Basics

<br /> <img src="https://user-images.githubusercontent.com/67064997/129380620-aedce818-05e1-4c6d-9b9d-66e85bf072de.png" width="200" /> <br />

#9. Room CRUD

<br /> <p float="left"> <img src="https://user-images.githubusercontent.com/67064997/129905189-628faa43-df63-40f8-b9c1-37ff41d56356.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/129905197-73cfdb03-dfdc-4c1c-9c19-4258a948595f.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/129905201-ec2fe7a4-0d74-4770-b32f-ac238440cca1.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/129905203-b3836041-6dbf-4b19-84e6-12ba31bd0f51.png" width="200" /> </p> <br />

#10. Retrofit Basics

<br /> <p float="left"> <img src="https://user-images.githubusercontent.com/67064997/130318548-b76396d4-b792-4b66-9e7c-663f95e5e059.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/130318552-70340799-a2d4-4c54-a922-bac9ac3fb5a4.png" width="200" /> </p> <br />

#11. Offline Caching

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.

Takeaways

<br /> <p float="left"> <img src="https://user-images.githubusercontent.com/67064997/131287985-d44b5104-80ee-40b8-b662-690e9aaff9f0.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/131287982-22f30009-7d1b-4e13-99a6-9513f3dcee38.png" width="200" /> </p> <br />

#12. Ad Network

Display AdMob ads on Android apps using Jetpack Compose.

Takeaways

<p float="left"> <img src="https://user-images.githubusercontent.com/67064997/132116774-212ac4b4-0e3e-4886-86f8-59a925de972f.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/132116776-9aa0ba07-d99e-4690-a126-e14e55703c3d.png" width="200" /> </p> <br />

#13. Notifications

Show different types of notifications using Jetpack Compose.

<p float="left"> <img src="https://user-images.githubusercontent.com/67064997/132974053-6b1961d5-dbe7-4d53-8a17-eb0d4e9d5cd6.png" width="200" /> <img src="https://user-images.githubusercontent.com/67064997/132974054-497f32b6-0bb2-4b44-b2b4-952da45f0568.png" width="200" /> </p>