GithubHelp home page GithubHelp logo

ahmedelbagory332 / news-app-mvi Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 1.0 5.23 MB

simple news app show articles.

Kotlin 100.00%
coroutines-android flow hilt-dependency-injection-android jetpack-compose localization mvi-android room-database usecase

news-app-mvi's Introduction

News App

A simple news app that allows users to get headlines based on their preferences and search articles.

Technology Stack

  • Code Architecture (MVI)
  • Jetpack Compose
  • Clean Architecture
  • Modularization
  • Flow & StateFlow to give view the data and notify it when a change occurs.
  • Dagger-hilt to handle dependency injection.
  • Co-routines to deal with threads.
  • Retrofit2 & OkHttp3 to handle apis requests.
  • Room DataBase to cache the data and display it in case there is no internet
  • Coil to load images from internet.

Features

Onboarding

On the first launch, users choose a favorite country and 3 categories to personalize their experience. This data is stored locally for future sessions.

Headlines Feed

The headlines screen fetches and displays the latest articles from the user's chosen country and categories. Articles are sorted by date and tapping opens the URL in a web browser.

Search

Users can search for articles across all categories or filter results. Search results also open externally for a better reading experience. Saved articles are stored locally.

Data Storage

Room is used to cache API responses and save favorite articles for offline access. This improves performance and user experience when connectivity is limited.

Future Enhancements

  • Arabic localization to support additional languages/regions
  • Offline caching of images for improved offline mode
  • In-app article viewing instead of external browser

Screen Shots

news-app-mvi's People

Contributors

ahmedelbagory332 avatar

Stargazers

Prathamesh Kumbhar avatar Murilo Sandiego avatar Dhiraj Singh Dafouti avatar Usama Sayed avatar Ali Al Fayed avatar KSaid avatar

Watchers

 avatar

Forkers

nfaycel

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.