Haid-Faiz / NewsLand

It's an android news app developed by following Modern Android Development techniques.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NewsLand

Build Kotlin Lint Unit Tests Platform API

It shows news under following catagories:

  • Top Headlines wise news from 5 different country
  • Category wise news from 5 different category
  • Source wise news from 5 different sources

ScreenShots

  • App Intro & Search feature

  • Screen orientation changes & Pagination, etc

Architecture

The project follows the MVVM structure with Modular Architecture without any specifics.

There are two modules in the project

  • app - The UI of the app. The main project that forms the APK
  • datastore - The REST API consumption and local database android library

The following libraries were used in this project.

  • Kotlin Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • 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.
  • Room Database - SQLite object mapping library.
  • Dagger-Hilt - Standard library to incorporate Dagger dependency injection into an Android application.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Jetpack Navigation - Android Jetpack's Navigation component helps you implement navigation, from simple button clicks to more complex patterns.
  • Jetpack Paging 3 - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network.
  • Moshi - A modern JSON library for Kotlin and Java.
  • Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
  • Coil-kt - An image loading library for Android backed by Kotlin Coroutines.
  • Jetpack DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs. Basically it's a replacement for SharedPreferences.
  • Chrome Custom Tabs - Custom Tabs is a browser feature, introduced by Chrome. We can use it like WebView.
  • Lottie Animation - Lottie is a library for that parses animations exported as json and renders them natively.

About

It's an android news app developed by following Modern Android Development techniques.


Languages

Language:Kotlin 100.0%