Skip to content

A news app developed in MVVM using Retrofit2, Room, Paging3, Dagger Hilt, DataStore, Coroutines, GSON, Glide, ViewBinding, general JetPack components and following Material Design guidelines.

Notifications You must be signed in to change notification settings

jfransp/EasyNews-newsfeed-app

Repository files navigation

EasyNews: news feed app

A news feed app developed using Retrofit, Room, Paging 3, Dagger Hilt, Preferences DataStore, Coroutines, GSON, Glide, ViewBinding and several JetPack architecture and navigation components, following Material Design guidelines, an MVVM architecture and using the NewsApi.org's HTTP REST API.

Overview

The app utilizes a custom toolbar, with action buttons according to the screen. It also features a side navigation drawer, allowing the user to navigate to several of the news sources offered by the NewsApi.org free plan access as well as setting configurations for country and category through a custom settings screen.

The main app environment has a bottom navigation view, allowing the user to navigate between a breaking news screen, a screen with articles saved by the user and a search screen that allows the user to search through the api's offered sources by both language and sort order. The article screen allows the user to read the article on a web view and also navigate to the source's website. The saved articles screen features a swipe to delete function with a timed "undo" pop up option.

Some extra implementations: error messages/handling, load state listeners, recyclerviews (with both rvadapters, listdapters and paging adapters), safe args, custom adapters for navigation and preference setting, web view, share function, custom xml shapes and drawables and more.

Here you can check out a short demonstration video: https://www.youtube.com/watch?v=QPwg-CprzHk

If you wish to try the app for yourself, just remember to get a free API key at newsapi.org and set it at the data/api/apikey.kt file variable.

Architecture

Credits: Icons by Gregor Cresnar (www.flaticon.com/authors/gregor-cresnar)

Some ideas I've learned from Florian Walther, Phillip Lackner and Ryan M. Kay

About

A news app developed in MVVM using Retrofit2, Room, Paging3, Dagger Hilt, DataStore, Coroutines, GSON, Glide, ViewBinding, general JetPack components and following Material Design guidelines.

Topics

Resources

Stars

Watchers

Forks

Languages