Jetpack Compose playground project based on Recommended app architecture
Powered by
![TMDB Logo](https://private-user-images.githubusercontent.com/13759258/260683249-a1bf8723-f5b7-43a7-8118-22bc1e203301.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyNDE5MzQsIm5iZiI6MTcyMTI0MTYzNCwicGF0aCI6Ii8xMzc1OTI1OC8yNjA2ODMyNDktYTFiZjg3MjMtZjViNy00M2E3LTgxMTgtMjJiYzFlMjAzMzAxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDE4NDAzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU0ZDQ4ZmZjOGFkNzlkYzc5Mzc0YTBkODE1MmRhNjBjM2Q4ZDM1YzI2Y2ZmMjQwZDJmN2I0MjU5YWRlZTg5MmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.1pmKUq1MfLbM5uf1zI-Bog3WNWcrALVfhjws6rw7WXU)
- Follows Guidlines on Recommended Architecture
- 100% Kotlin
- Jetpack Compose
- Coroutines - Coroutines provide us an easy way to do synchronous and asynchronous programming.
- Flow & StateFlow - Flow is a type of coroutine that emits multiple values sequentially.
- Hilt - Dependency Injection framework by Google
- Retrofit - Network client by Square
- Material You and Dark theme Support - It has support for Material You & Light/Dark mode that can be toggled from preference screen
- Paging 3 - Pagination library for Jetpack compose
- DataStore Preferences like API with coroutine & Flow support
- Coil Image loading library for Compose
Animationsโ- UI & Unit Tests
![M3 Light Home](https://private-user-images.githubusercontent.com/13759258/266414394-1bdeae49-4611-4c75-8a30-8a2552eb7708.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyNDE5MzQsIm5iZiI6MTcyMTI0MTYzNCwicGF0aCI6Ii8xMzc1OTI1OC8yNjY0MTQzOTQtMWJkZWFlNDktNDYxMS00Yzc1LThhMzAtOGEyNTUyZWI3NzA4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDE4NDAzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM4N2M3OTlhOTYyMGNjNjlhNDUwM2FhMjY0NGQ3MWJhYjViNzczNzlhNTg3NDQ4YzE1ZDE3MjA2YzdhNzQ0YjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.M-jTaitGdQ1sZLc2_zyD16ZNKnOT5vpTbcBADddUd7k)
![M3 Dark Home](https://private-user-images.githubusercontent.com/13759258/266414446-e47d0f99-815e-4888-8a1c-26470d41c6cc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyNDE5MzQsIm5iZiI6MTcyMTI0MTYzNCwicGF0aCI6Ii8xMzc1OTI1OC8yNjY0MTQ0NDYtZTQ3ZDBmOTktODE1ZS00ODg4LThhMWMtMjY0NzBkNDFjNmNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDE4NDAzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhZmQ3ODcwODAxNjA1NzAyZjlkOGUxMjUxYzU1M2E3NDZhNmY0YzM3Y2QzM2Q3ZDEzNTZiN2I3MjIyYzFiYjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hdw6jIvrEJGdY3TnTDvT7N0E7c_LazqSv_jImM6eBYI)
![M3 Dark Detail](https://private-user-images.githubusercontent.com/13759258/266414384-7082b600-85ef-44bb-99f4-4a8a82a5056b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyNDE5MzQsIm5iZiI6MTcyMTI0MTYzNCwicGF0aCI6Ii8xMzc1OTI1OC8yNjY0MTQzODQtNzA4MmI2MDAtODVlZi00NGJiLTk5ZjQtNGE4YTgyYTUwNTZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDE4NDAzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQwNTk0ZDhjZDVmN2ZmNmNlNjUwYWY1MzBmNGFjM2Y5YzA3MTYxMTUxNzE5NWQxMjM1YTNmN2NkMGU1OWI1Y2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.HyWIYxkVGSM98na7nsn4dr4j2qI_CpnN0daR3mxoV-w)
Create an API key on The Movie DB's and add in your
local local.properties
file like this
TMDB_KEY=<REPLACE_WITH_YOUR_API_KEY>