For API Documentation: Click here
App Screenshots
home screen | news detail | read later |
---|---|---|
App Gifs
splash screen | list-detail-read later |
---|---|
How to build on your environment
Add your News API's API key in local.properties file.
NEWS_API_KEY=add_your_api_key
and run the app.
Tech stack
β MVVM with Clean Architectureβ Kotlin 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.β LiveData - is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.β Coroutines - A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.β Navigation Component - Handle everything needed for in-app navigation. asynchronous tasks for optimal execution.β Safe-Args - For passing data between destinationsβ Dagger-Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.β Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.β ViewModel - Easily schedule asynchronous tasks for optimal execution.β Retrofit - Retrofit is a REST client for Java/ Kotlin and Android by Square inc under Apache 2.0 license. Its a simple network library that is used for network transactions. By using this library we can seamlessly capture JSON response from web service/web API.β OkHttp - Doing HTTP efficiently makes your stuff load faster and saves bandwidth.β View Binding - a feature that allows you to more easily write code that interacts with views.β Lifecycle - As a user navigates through, out of, and back to your app, the Activity instances in your app transition through different states in their lifecycle.β Glide - for image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.β Firebase Auth - You can use Firebase Authentication to let your users authenticate with Firebase using their email addresses and passwords, and to manage your app's password-based accounts.β Lottie - Lottie is an open-source animation file format thatβs tiny, high quality, scriptable, interactive, and can be manipulated at runtimeβ Coil - An image loading library for Android backed by Kotlin Coroutines