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

Loading Screen Home Screen Adding Screen

Setup Instructions

To set up the News App on your local machine, follow these steps:

  1. Clone the repository to your local machine.

    git clone https://github.com/sabinmhx/minimal-news-app.git
    
  2. Open the project in Android Studio.

  3. Build the project to resolve dependencies.

  4. 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.

  5. Open the utils/Constants.kt file and replace YOUR_API_KEY with your actual API key.

    const val NEWS_API_KEY = "YOUR_API_KEY"
    
  6. 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.

GitHub

View Github