News Room is a modern and lightweight news application developed for Android using Flutter. This project was created as part of the Mandiri Virtual Internship Program, implementing Clean Architecture principles and the MVVM pattern to ensure scalability and maintainability.
π₯ Download Latest APK
β
Latest News Feed β Infinite scrolling for real-time news updates.
β
News Categories β Business, Technology, Sports, and more.
β
Bookmark Articles β Save your favorite articles for later.
β
Search Functionality β Quickly find news based on keywords.
β
User-Friendly UI β Simple and intuitive design.
- Flutter & Dart (Framework & Language)
- Provider (State Management)
- Dio (Network Calls)
- SQLite (Local Storage)
- GetIt (Dependency Injection)
This app follows the Clean Architecture approach with the MVVM (Model-View-ViewModel) pattern:
lib/
βββ data/
β βββ models/
β βββ repositories/
β βββ sources/
βββ domain/
β βββ entities/
β βββ repositories/
β βββ usecases/
βββ presentation/
β βββ pages/
β βββ widgets/
β βββ viewmodels/
βββ core/
βββ utils/
βββ constants/
βββ themes/
Before running the project, ensure you have:
- Flutter SDK installed
- Android Studio / VS Code
- Git
git clone https://github.com/Reannn22/Bank-Mandiri-Internship-Task-Final-Task-UI-and-Design-Pattern.git
cd Bank-Mandiri-Internship-Task-Final-Task-UI-and-Design-Pattern
flutter pub get
flutter run- Repository Pattern
- Factory Pattern
- Singleton Pattern
- Observer Pattern
- Dependency Injection
| Home Screen | Article Detail |
|---|---|
![]() |
![]() |
β
Followed Dart's official style guide
β
Proper error handling
β
Meaningful variable and function names
β
Well-structured folder architecture
β
Code comments for complex logic
πΉ Lazy loading of images
πΉ Caching mechanisms to improve speed
πΉ Efficient state management
πΉ Optimized build methods
The application includes:
- Unit Tests
- Widget Tests
- Integration Tests
We welcome contributions! Feel free to:
- Fork the repository
- Create a new feature branch (
git checkout -b feature-branch) - Commit your changes (
git commit -m 'Add new feature') - Push to GitHub (
git push origin feature-branch) - Open a Pull Request
This project is licensed under the MIT License β see the LICENSE file for details.
- News API β For providing the news data
- Bank Mandiri β For the internship opportunity
- Flutter Community β For resources and support
Reyhan Capri Moraga β @reannn22
π Project Link: GitHub Repository

