News App used to show update news in the world,
1- main screen 2- details screen 3- image viewer (zomming and sharing)
used [dagger hilt, coroutines, navigation components, LiveData, Skelton patterns, clean code,clean architure, Glide,Retrofit, and more..]
- Kotlin – As a programming language.
- Coroutines – For multithreading while handling requests to the server and local database.
- Flow – In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value. For example, you can use a flow to receive live updates from a database.
- Navigation Component – To handle app navigation.
- Multidex – To enable creating multi dex files because of using set of libraries that reached the maximum size of single dex file.
- Model-View-ViewModel(MVVM) – Offers an implementation of observer design pattern.
- LiveData – notifies views of any database changes in an observer way.
- Retrofit – A type-safe HTTP client for Android and Java
- Glide – It is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.
- Timber – It helps in logging while debugging your app. and all logging code will not be embedded in the released APK.
- Hilt – It is arguably the most used Dependency Injection, or DI, framework for Android. Many Android projects use Dagger to simplify building and providing dependencies across the app. It gives you the ability to create specific scopes, modules, and components, where each forms a piece of a puzzle: The dependency graph.
- Clean Architecture – Applying Clean Architecture , Solid Principles and use cases to build a robust, maintainable, and testable application.