Minimal News App in Kotlin
Introduction
This News App is a simple mobile application developed using Kotlin. It allows users to stay up-to-date with the latest news from various categories such as Technology, Sports, Entertainment, and more. The app fetches news data from a reliable news API and presents it in a user-friendly interface, making it easy for users to browse and read articles of interest.
Features
- Browse news articles from different categories.
- View detailed information for each news article, including title, description, and source.
- Share articles with friends through various communication channels.
- User-friendly and intuitive interface for a seamless news browsing experience.
Screenshots
Setup Instructions
To set up the News App on your local machine, follow these steps:
-
Clone the repository to your local machine.
git clone https://github.com/sabinmhx/minimal-news-app.git
-
Open the project in Android Studio.
-
Build the project to resolve dependencies.
-
Obtain an API key from a news API provider. You can use popular news APIs like NewsAPI, New York Times API, or any other of your choice.
-
Open the
utils/Constants.kt
file and replaceYOUR_API_KEY
with your actual API key.const val NEWS_API_KEY = "YOUR_API_KEY"
-
Build and run the app on your emulator or physical device.
Build Tools
- Kotlin – First class and official programming language for Android development.
- Coroutines – For asynchronous and more.
- Flow – A flow is an asynchronous version of a Sequence, a type of collection whose values are lazily produced.
- Android Architecture Components – Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData – Data objects that notify views when the underlying database changes.
- ViewModel – Stores UI-related data that isn’t destroyed on UI changes.
- ViewBinding – Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Navigation – Navigation is a framework for navigating between ‘destinations’ within an Android application
- 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.
- DataStore – Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to store data asynchronously, consistently, and transactionally.
- Dependency Injection –
- Hilt-Dagger – Standard library to incorporate Dagger dependency injection into an Android application.
- Hilt-ViewModel – DI for injecting
ViewModel
.
- Retrofit – A type-safe HTTP client for Android and Java.
- Moshi – A modern JSON library for Kotlin and Java.
- Moshi Converter – A Converter which uses Moshi for serialization to and from JSON.
- Glide – Glide is a fast and efficient open source media management and image loading framework for Android
- Material Components for Android – Modular and customizable Material Design UI components for Android
Credits ?
News API is used to get all the news.This News App is inspired and built upon the foundation of various open-source projects and APIs, which we acknowledge and thank for their valuable contributions.
License
The News App is open-source software licensed under the MIT License. Feel free to use, modify, and distribute the app according to the terms of the license.