A sample to showcase Kotlin, MVVM, Navigation, Coroutines, Room, WorkManager, Retrofit and DataBinding.
- MVVM Architecture + Repository design Pattern.
- Jetpack Libraries and Architecture Components.
Add your News api key in the local.properties
file:
news_api_key=YOUR_NEWS_API_KEY
- Android Jetpack
- ViewModel ViewModel is designed to store and manage UI-related data in a lifecycle conscious way. This allows data to survive configuration changes such as screen rotations.
- DataBinding is a Library in the support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components updating app component observers that are in an active lifecycle state.
- Navigation Android Jetpack's Navigation component helps you implement effective navigation.
- Room is a library for data storage persistence which provides an abstraction layer over SQLite.
- WorkManager allows you to schedule work to run one-time or repeatedly.
- Picasso is a powerful image downloading and caching library for Android.
- Kotlin coroutines Executing code asynchronously.
- Retrofit is a Type-safe HTTP client for Android, Java and Kotlin by Square.
- Moshi is a modern JSON library for Android and Java. It makes it easy to parse JSON format data.
- OkHttp interceptor Logs HTTP requests and responses.
- Material Design Build beautiful, usable products using Material Components for Android.