Skip to content

This is a news application project developed using the MVVM (Model-View-ViewModel) architecture.

Notifications You must be signed in to change notification settings

MehdiSekoba/Digiato

Repository files navigation

Advanced Android Development Techniques

This is a news application project developed using the MVVM (Model-View-ViewModel) architecture. The app fetches news data from the Digiato website, with a custom backend developed by me. The backend is hosted on my server, and the news updates in real-time whenever there is an update on the Digiato site.

ScreenShots

splash Screen light home Screen light
category Screen light video Screen light
Profile Screen light
splash Screen dark home Screen dark
category Screen dark video Screen dark
Profile Screen dark

The rest of the features are at the bottom of the video viewing page

Features

Splash Screen Implemented using 'MotionLayout' with custom loading animations.

Shimmer Effect Shimmer Effect: Used for loading indicators to enhance user experience.

Dependency Injection Dependency Injection: Implemented using Hilt for efficient dependency management.

Caching By Room Caching: News data is cached to ensure availability when the user is offline.

Custom Divider Custom Divider: Implemented for RecyclerView items to enhance UI.

Navigation Navigation: Managed using the Navigation Component.

DataStore Save Theme Data Storage: Implemented using DataStore for persistent storage.

Theme Support Theme Support: Includes both dark and light modes, ensuring icons and text adapt to the selected theme.

Database Database: Implemented using Room with TypeConverter and Database for data management.

Coroutines Coroutines: Used for asynchronous operations to ensure smooth performance.

LiveData LiveData and Flow: Used for observing data changes and managing data streams.

Entity and DAO Entity and DAO: Implemented in Room for efficient data caching.

Custom Fonts Custom Fonts: Added throughout the project using the Calligraphy library.

Network Dependency Network Dependency Injection: Custom implementation for managing network dependencies.

Material Design 3 Material Design 3: The project adheres to Material Design 3 guidelines.

Persian Calendar Persian Calendar: Implemented for users needing a localized calendar.

Custom Views Custom Views: Developed specific custom views to enhance the UI/UX.

Purpose: The primary goal of this project is to demonstrate the implementation of data caching and other modern Android development practices.

Architecture

  • MVVM Architecture
    • This project follows the MVVM (Model-View-ViewModel) architecture pattern for a clear separation of concerns and better testability.

      Video

IMAGE ALT TEXT HERE

Support

This project includes many more capabilities. Please support the project by giving it a star and forking it.