Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hossein69ameri/newsapi

Built with the latest technologies and best practices.
https://github.com/hossein69ameri/newsapi

android jetpack-compose kotlin mvvm

Last synced: 3 months ago
JSON representation

Built with the latest technologies and best practices.

Awesome Lists containing this project

README

        

# NewsApi
Welcome to the [NewsApi] repository! This project is an Android application developed in Kotlin, leveraging the latest Android technologies, including Jetpack Compose for a modern and responsive UI. The app utilizes the [The News API](https://www.thenewsapi.com/) to fetch and display the latest news articles from around the world.
This application is designed to be a showcase of best practices in modern Android development, including the use of MVVM, dependency injection, and the latest tools and libraries. Whether you're looking to stay informed with the latest news or explore the possibilities of Jetpack Compose and Kotlin in Android development, this project is a great starting point.

# Screen Shot

# Features
100% Kotlin

Dependency Managment With Version Catalog

Jetpack Compose

MVVM architecture

Android Architecture Components

Kotlin Coroutines + Flow

Single activity pattern

Dependency injection

# Tech Stacks

[Jetpack Compose](https://developer.android.com/compose) - Build better apps faster with Jetpack Compose.

[KSP](https://developer.android.com/build/migrate-to-ksp) - Migrate from kapt to KSP.

[Chucker](https://github.com/ChuckerTeam/chucker)- An HTTP inspector for Android & OkHTTP

[Retrofit](https://square.github.io/retrofit/) + [OkHttp](https://square.github.io/okhttp/) - An HTTP inspector for Android & OkHTTP

[Hilt](https://dagger.dev/hilt/) - Dependency injection.

[Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - A collection of libraries that help you design robust, testable and maintainable apps.

[ViewModel](https://developer.android.com/reference/androidx/lifecycle/ViewModel) - UI-related data holder, lifecycle aware.

[Navigation component](https://developer.android.com/guide/navigation) - Fragment routing handler.

[Coroutines](https://developer.android.com/kotlin/coroutines) - Concurrency design pattern for asynchronous programming.

[Flow](https://developer.android.com/kotlin/flow) - Stream of value that returns from suspend function.

[Lottie](https://lottiefiles.com/blog/working-with-lottie/getting-started-with-lottie-animations-in-android-app) - Animations in an Android App

[Coil](https://github.com/coil-kt/coil) - Image loading

# Architectures
![alt - Github](https://raw.githubusercontent.com/amitshekhariitbhu/MVVM-Architecture-Android/master/assets/mvvm-arch.png)

**View** : Activity/Fragment with UI-specific logics only.

**ViewModel** : It keeps the logic away from View layer, provides data streams for UI and handle user interactions

**Model** : Repository pattern, data layers that provide interface to manipulate data from both the local and remote data sources. The local data sources will serve as single source of truth

# Contact
Have an project? DM me at

[email protected]