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.
Take a look at the core functionalities and interface of NewsFlow:
| Light Theme | Dark Theme |
|---|---|
![]() |
![]() |
- 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.
- 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.
- Syed Bayazid Hossain - Main Developer & Architect - (https://github.com/bayazidht)
- Open Source Libraries:
- Glide for image processing.
- Kotlin Coroutines for background tasks.
- Material Components for UI elements.
- News Sources: RSS Feeds provided by various global news publishers (Reuters, The Verge, CNBC, etc.).
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
Follow these steps to set up and run the NewsFlow application on your local development environment.
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.
-
Clone the Repository Open your terminal or command prompt and run:
Bash
git clone https://github.com/bayazidht/NewsFlow.git cd NewsFlow -
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.
-
-
Check Dependencies Ensure all dependencies are downloaded correctly. If you see any sync errors:
-
Go to File > Invalidate Caches / Restart...
-
Select Invalidate and Restart.
-
-
Prepare Your Device
-
Physical Device: Enable USB Debugging in Developer Options.
-
Emulator: Create an AVD (Android Virtual Device) via Device Manager in Android Studio.
-
-
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 -
-
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.

