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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5Nzg4MzgsIm5iZiI6MTcxNTk3ODUzOCwicGF0aCI6Ii8xMzc1OTI1OC8yNjA2ODMyNDktYTFiZjg3MjMtZjViNy00M2E3LTgxMTgtMjJiYzFlMjAzMzAxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDIwNDIxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY3MGE1ZDI0M2QwZGZiZTM0OTg1MzZjMWRmY2FlOTQ2OTQ5ZmQwMjA1YTMzZWQ2OGViMzczMTQzNjYzMWRjYTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4Vx__IyB0Nq2CykXqx5pWeUvUWOUBVwvLaeuKpFsYro)
- 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
- Detekt Code smell analysis for Kotlin projects
Animations✅- UI & Unit Tests
![M3 Light Home](https://private-user-images.githubusercontent.com/13759258/266414394-1bdeae49-4611-4c75-8a30-8a2552eb7708.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5Nzg4MzgsIm5iZiI6MTcxNTk3ODUzOCwicGF0aCI6Ii8xMzc1OTI1OC8yNjY0MTQzOTQtMWJkZWFlNDktNDYxMS00Yzc1LThhMzAtOGEyNTUyZWI3NzA4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDIwNDIxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBiZmIwYTU2NTllZWYxNDVlZWUxZTA5Y2E4NDA1NDBjYmE2MmJmMzg2ODc2ZTk0YmI3ZmU4ZDUxMWFhOTFkMTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.1k6PGVKcApcRw26eU3ib9jwCCLyE6GShQ-fFNYQMcm0)
![M3 Dark Home](https://private-user-images.githubusercontent.com/13759258/266414446-e47d0f99-815e-4888-8a1c-26470d41c6cc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5Nzg4MzgsIm5iZiI6MTcxNTk3ODUzOCwicGF0aCI6Ii8xMzc1OTI1OC8yNjY0MTQ0NDYtZTQ3ZDBmOTktODE1ZS00ODg4LThhMWMtMjY0NzBkNDFjNmNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDIwNDIxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNlOTEzMGE3Mzg1NGVkZGUzMDk4ZWIwMzMxNjM3ZDlhNWRjNDNhZDM3OGEwM2Y5YTBmMDI5ZjZmNDc1NDMxMDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8PDzLHN2vgDZDQHyQOU_KsKiNeYZSulaqeQmp0TTnFA)
![M3 Dark Detail](https://private-user-images.githubusercontent.com/13759258/266414384-7082b600-85ef-44bb-99f4-4a8a82a5056b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTU5Nzg4MzgsIm5iZiI6MTcxNTk3ODUzOCwicGF0aCI6Ii8xMzc1OTI1OC8yNjY0MTQzODQtNzA4MmI2MDAtODVlZi00NGJiLTk5ZjQtNGE4YTgyYTUwNTZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTE3VDIwNDIxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3ZTJlMDQ0MmUxZjEyOTgzY2Q1OGM5NTJlZTg0NzdjMzdmZGYzZDMyMmEyNjllMTQ3OTliNTAxODEwMzA4Y2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bCP1iLS1pDKXRrLwdsIYhtd43RJQI8eL8MkPFGG3X90)
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>