It's a simple app to show news data. I followed the recommendation to implement clean architecture in the app. It still not implement modularization (will implement it soon)
Tech I used to create the app
- Kotlin - Instead of Java, I used Kotlin to build the app.
- MVVM design pattern - Design pattern I used in presentation layer.
- Retrofit - Library to fetch data from API.
- Coroutine - Mainly used for threading, basically you can't say threading, it only for explanation purpose.
- Coil - Image loader.
- Koin - Dependency injection. Way more simple than using Dagger 2. Easily understand.
- Navigation Component - For change between fragment. I will try my best to make it single activity.
- Data binding - Binding component layout in XML to activity/fragment.
- Flow - To fetch data stream from API. In the app, it actually not needed to use it, since the data type would be one-shot, but I just want to try it in this project.
Design inspired by some awesome peoples, see their dribbble site for more awesome design
- Dashboard design - Blog App Concept by Tanvir Ahassan Anik
- News detail design - TrendNews – International News App
- Categories design - Podcast App | Categories | Mobile
- (Will be adding more later...)
I'm using API from NewsAPI to get news data. You can use it for free or paid.