Skip to content
7IREPublic
forked from lofcoding/NewsApp

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

24 Commits

Folders and files

Repository files navigation

NewsApp

An Android app built with Jetpack Compose and the latest android libraries.

Features

  • Modern Architecture: Clean Architecture (Data, Domain, Presentation layers) coupled with MVVM.
  • UI Toolkit: 100% Jetpack Compose.
  • Dependency Injection: Dagger Hilt for robust dependency management.
  • Networking: Retrofit2 for fetching data from the news API.
  • Pagination: Paging 3 integration for seamless scrolling and loading of news articles.
  • Local Storage:
    • Room Database for bookmarking and saving favorite news articles.
    • Preferences DataStore for managing onboarding states and local user preferences.
  • Navigation: Jetpack Compose Navigation for fluid transitions between screens (Onboarding, Home, Search, Bookmark, Details).
  • Image Loading: Coil for efficient remote image fetching and rendering.
  • Splash Screen: AndroidX Splash Screen API for a polished startup experience.
  • UI Enhancements:
    • Shimmer effects during data loading.
    • Accompanist System UI Controller for customizing the system bars.

Project Structure

app/src/main/java/com/loc/newsapp/
├── data/                       # Data Layer (Network, Local Database, Repository Implementations)
│   ├── di/                     # Dependency Injection modules (AppModule)
│   ├── local/                  # Room Database (Dao, Database, TypeConverters)
│   ├── manager/                # Implementations of managers (e.g., LocalUserManager)
│   ├── remote/                 # Retrofit API, PagingSources, DTOs
│   └── repository/             # Repository pattern implementations
├── domain/                     # Domain Layer (Models, Repositories, Use Cases)
│   ├── manager/                # Interfaces for DataStore/local managers
│   ├── model/                  # Core data models (Article, Source)
│   ├── repository/             # Repository interfaces
│   └── usecases/               # Encapsulated business logic (e.g., GetNews, SaveAppEntry)
├── presentation/               # Presentation Layer (UI, ViewModels, States, Events)
│   ├── bookmark/               # Bookmark Screen
│   ├── common/                 # Reusable Compose UI components (ArticleCard, SearchBar, ShimmerEffect)
│   ├── details/                # Details Screen for individual articles
│   ├── home/                   # Home Screen showing paged news
│   ├── navgraph/               # Compose Navigation configuration and routes
│   ├── news_navigator/         # Main container handling BottomNavigation
│   ├── onboarding/             # Onboarding flow for first-time users
│   └── search/                 # Search Screen for querying news
├── ui/theme/                   # Compose Themes, Colors, and Typography
├── util/                       # Utilities and Constants
├── MainActivity.kt             # Single-Activity entry point
└── NewsApplication.kt          # Application class for Hilt initialization

Preview

Screenshot 2023-08-23 at 4 11 00 PM
Screenshot 2023-08-23 at 4 11 00 PM
Screenshot 2023-08-23 at 4 11 00 PM

Screenshot 2023-08-23 at 4 11 00 PM
Screenshot 2023-08-23 at 4 11 00 PM
Screenshot 2023-08-23 at 4 11 00 PM


Technologies i used to build this app

Screenshot 2023-08-23 at 4 11 00 PM

Credits: This app was built by following a comprehensive tutorial. I am not the original creator of this project. All proper credits for the original concept, design, and tutorial go to the actual owner.

To learn how to build this app from scratch, you can watch their original playlist on YouTube: https://www.youtube.com/playlist?list=PLzZEuVaFb9Exi-pc8qtHBrrLg8bUn-TP6

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages