Skip to content

Modern, personalized news aggregator app built with RSS feeds APIs.

Notifications You must be signed in to change notification settings

bayazidht/NewsFlow

Repository files navigation

NewsFlow: Latest News 📰

GitHub last commit GitHub language count Kotlin Android

🌟 Overview

News Flow is a modern, personalized news aggregator app built with MVVM architecture. It fetches real-time updates via RSS feeds, featuring offline bookmarking, smart notifications, and category-based filtering for a seamless reading experience.

🖼️ App Screenshots: A Quick Tour

Take a look at the core functionalities and interface of NewsFlow:

Light Theme Dark Theme

✨ Key Features

  • Real-time Tracking: Instantly record and monitor income and expenses.
  • Layered Architecture: Built using clean, modern architecture principles for maintainability.
  • Cloud Integration: Real-time data synchronization across devices (using Firebase/Firestore).
  • Offline Caching: Seamless operation even without an internet connection.
  • Graphical Summary: Visual representation (Bar Charts, Pie Charts) of monthly and category-wise spending.

🛠️ Technology Stack

  • Language: Kotlin - Modern, concise, and safe programming language.
  • Architecture: MVVM (Model-View-ViewModel) with Clean Architecture principles.
  • UI Framework: Material Design 3 - For a modern and adaptive user interface.
  • Local Database: Room Database - For offline caching and bookmarking news.
  • Background Processing: WorkManager - For periodic news fetching and background notifications.
  • Image Loading: Glide - For smooth and efficient image loading and caching.
  • Networking: HttpURLConnection & Custom XML Pull Parser for RSS Feed processing.
  • Concurrency: Kotlin Coroutines - For asynchronous tasks and non-blocking IO operations.

🤝 Credits & Contributors

📂 Project Structure

com.bayazidht.newsflow
├── data
│   ├── local        # Room Database, DAOs, and Offline Logic
│   ├── remote       # RSS Parser and News Source configurations
│   ├── model        # Data classes (NewsItem, NotificationItem)
│   └── repository   # Data management layer
├── ui
│   ├── activity     # Main and Detail screens
│   ├── fragment     # Home, Trending, and Bookmark fragments
│   └── adapter      # RecyclerView adapters for news lists
└── worker           # WorkManager classes for background tasks 

🚀 Getting Started

Follow these steps to set up and run the NewsFlow application on your local development environment.

📋 Prerequisites

Before you begin, ensure you have the following installed:

  • Android Studio: Jellyfish | 2023.3.1 or newer.

  • JDK: Java Development Kit 17 or higher.

  • Gradle: Version 8.0 or higher (Managed via Gradle Wrapper).

  • Android Device/Emulator: Running API Level 24 (Android 7.0) or higher.


⚙️ Installation and Setup

  1. Clone the Repository Open your terminal or command prompt and run:

    Bash

    git clone https://github.com/bayazidht/NewsFlow.git
    cd NewsFlow
    
    
  2. Open in Android Studio

    • Launch Android Studio.

    • Select File > Open... and navigate to the cloned directory.

    • Click OK and wait for the IDE to finish the Gradle Sync process.

  3. Check Dependencies Ensure all dependencies are downloaded correctly. If you see any sync errors:

    • Go to File > Invalidate Caches / Restart...

    • Select Invalidate and Restart.

  4. Prepare Your Device

    • Physical Device: Enable USB Debugging in Developer Options.

    • Emulator: Create an AVD (Android Virtual Device) via Device Manager in Android Studio.

  5. Build and Run

    • Select your device from the target selector in the top toolbar.

    • Click the Run button (Green Triangle icon) or press Shift + F10.

    • Alternatively, run via CLI:

    Bash

    ./gradlew installDebug
    
    

🛠️ Troubleshooting Tips

  • Sync Failed: Ensure your internet connection is active as Gradle needs to download libraries like Glide, Room, and Material components.

  • Build Errors: If the build fails after a sync, try Build > Clean Project followed by Build > Rebuild Project.

  • Missing Images: Since the app uses RSS feeds, ensure your device has internet access to fetch live news and thumbnails.

About

Modern, personalized news aggregator app built with RSS feeds APIs.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages