SkillAgentSearch skills...

NewsCompose

MVVM News Application with Jetpack Compose

Install / Use

/learn @AhmedGamalRamadan/NewsCompose

README

News App in Kotlin using Jetpack Compose

Description

The News App is a mobile application developed using Kotlin and Jetpack Compose. It's designed to fetch news articles from a provided API and display them in a user-friendly interface. The application follows the MVVM (Model-View-ViewModel) architecture pattern to ensure separation of concerns and maintainability.

Features:

  • Jetpack Compose: The app leverages Jetpack Compose, a modern Android UI toolkit, to create a seamless and interactive user experience.
  • Kotlin: Developed entirely in Kotlin, the codebase benefits from the conciseness and expressiveness of the language, promoting efficient and readable code.
  • Shimmer Effect: Utilizes the shimmer effect to provide users with visual feedback while content is loading, enhancing the overall user experience by reducing perceived loading times.
  • Retrofit: Fetches news articles from an API.
  • Dependency Injection: Employing dependency injection enhances the app's maintainability and testability by decoupling components and facilitating easier component replacement and testing.
  • Network Connectivity Check: The app includes functionality to check for network connectivity, ensuring a seamless experience by handling scenarios where the device may be offline or have limited connectivity.
  • Implements MVVM architecture for clean and organized code.

Architecture block diagram

Android Architecture

Installation

  1. Clone the Repository: Clone this repository to your local machine.
  2. Open in Android Studio: Open the project in Android Studio.
  3. Build and Run: Build and run the project on an Android device or emulator.

Usage

  • Upon launching the app, users will be presented with a list of news articles.
  • Users can tap on different categories buttons to filter news articles based on their interests.
  • Further interactions with the app are still under development.

Demo

Watch the video demo here

Screenshots:

<table> <tr> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/cba3563e-dd67-40dc-99c1-512388bf5df8" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/bf640336-3449-493a-91e8-243213462e22" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/37339933-f9d6-4514-b0c4-93cb5f3819f7" alt="splash" width="230"></td> </tr> <tr> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/f3fd73d2-388b-41df-a8b2-834e65e54956" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/2f2ecfe4-18e2-469b-a46f-b9f80a8d10eb" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/91f9e5e8-8803-47b0-899c-5a90cf36479f" alt="splash" width="230"></td> </tr> <tr> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/cb7a2008-1e0a-49bd-8fbc-236c27a1f7c3" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/bb35b49e-46ce-4314-b44c-f3680726a5ee" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/c90dfbf5-0b1f-477c-addb-79b3c232679d" alt="splash" width="230"></td> </tr> <tr> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/014979a2-f45b-44af-85a6-b1ba857e575a" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/c0037ad3-b079-4cbe-b439-3fd2a8e5d731" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/990c75f1-779a-4b4b-b8c8-ab9a818f75f8" alt="splash" width="230"></td> </tr> <tr> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/3e62f33f-3d3b-4278-8e07-2d6cbf0ec522" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/7cd8ac1d-40ac-4aa8-869f-6a15456035f7" alt="splash" width="230"></td> <td><img src="https://github.com/AhmedGamalRamadan/NewsCompose/assets/144063315/79f45bed-a14c-48c9-8888-d37b252e0bfe" alt="splash" width="230"></td> </tr> </table>

Connect with Me 🌐

Let's connect! Feel free to reach out on LinkedIn.

<p align="left"> <a href="https://www.linkedin.com/in/ahmed-gamal-ramadan/" target="blank"><img align="center" src="https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/linked-in-alt.svg" alt="https://www.linkedin.com/in/ahmed-gamal-97509328a/" height="30" width="40" /></a> </p>

Related Skills

View on GitHub
GitHub Stars5
CategoryData
Updated1y ago
Forks2

Languages

Kotlin

Security Score

60/100

Audited on Sep 10, 2024

No findings