A multi-source news aggregator app built with Flutter, designed for users of all ages with a focus on simplicity and accessibility.
تطبيق تجميع الأخبار من مصادر متعددة، مبني بـ Flutter، مصمم لجميع الأعمار مع التركيز على البساطة وسهولة الاستخدام.
Flutter ile oluşturulmuş, sadelik ve erişilebilirliğe odaklanan, tüm yaş grupları için tasarlanmış çoklu kaynaklı haber toplama uygulaması.
| Feature | Description |
|---|---|
| 📡 Multiple Sources | Combine news from NewsAPI + custom RSS feeds |
| 🌍 Multi-Language | Full support for Arabic, English, and Turkish |
| 🌙 Dark Mode | Eye-friendly dark theme |
| ⭐ Favorites | Save articles for later reading |
| 🔗 Share | Share articles via other apps |
| 📂 7 Categories | General, Business, Entertainment, Health, Science, Sports, Technology |
| 🔍 Search | Search within saved favorites |
| 📖 Full Article | Read full articles in WebView or extract content |
| 💾 Offline Cache | Read cached articles without internet |
| 🎨 Adaptive Fonts | Cairo for Arabic, Nunito for Turkish, Lato for English |
| الميزة | الوصف |
|---|---|
| 📡 مصادر متعددة | دمج الأخبار من NewsAPI + مصادر RSS مخصصة |
| 🌍 متعدد اللغات | دعم كامل للعربية والإنجليزية والتركية |
| 🌙 الوضع الداكن | ثيم داكن مريح للعين |
| ⭐ المفضلة | حفظ المقالات للقراءة لاحقاً |
| 🔗 المشاركة | مشاركة المقالات عبر التطبيقات الأخرى |
| 📂 7 فئات | عام، أعمال، ترفيه، صحة، علوم، رياضة، تكنولوجيا |
| 🔍 البحث | البحث داخل المفضلة المحفوظة |
| 📖 المقال الكامل | قراءة المقال كاملاً في WebView أو استخراج المحتوى |
| 💾 التخزين المؤقت | قراءة المقالات المخزنة بدون إنترنت |
| 🎨 خطوط متكيفة | Cairo للعربية، Nunito للتركية، Lato للإنجليزية |
| Özellik | Açıklama |
|---|---|
| 📡 Çoklu Kaynaklar | NewsAPI + özel RSS akışlarından haberleri birleştirme |
| 🌍 Çoklu Dil | Arapça, İngilizce ve Türkçe için tam destek |
| 🌙 Karanlık Mod | Göz dostu karanlık tema |
| ⭐ Favoriler | Makaleleri daha sonra okumak için kaydetme |
| 🔗 Paylaşım | Makaleleri diğer uygulamalarla paylaşma |
| 📂 7 Kategori | Genel, İş Dünyası, Eğlence, Sağlık, Bilim, Spor, Teknoloji |
| 🔍 Arama | Kaydedilen favorilerde arama |
| 📖 Tam Makale | WebView'da veya içerik çıkararak tam makaleleri okuma |
| 💾 Çevrimdışı Önbellek | İnternetsiz önbelleğe alınmış makaleleri okuma |
| 🎨 Uyarlanabilir Yazı Tipleri | Arapça için Cairo, Türkçe için Nunito, İngilizce için Lato |
| Technology | Purpose | الغرض | Amaç |
|---|---|---|---|
| Flutter | UI Framework | إطار الواجهة | UI Çerçevesi |
| Dart | Programming Language | لغة البرمجة | Programlama Dili |
| Riverpod | State Management | إدارة الحالة | Durum Yönetimi |
| Hive | Local Storage | التخزين المحلي | Yerel Depolama |
| Dio | HTTP Client | عميل HTTP | HTTP İstemcisi |
| Package | Purpose |
|---|---|
flutter_riverpod |
State management with providers |
hive_flutter |
Fast NoSQL local database |
dio |
HTTP client for API requests |
xml |
RSS feed parsing |
easy_localization |
Multi-language support |
cached_network_image |
Image caching |
webview_flutter |
In-app article viewing |
share_plus |
Share functionality |
google_fonts |
Custom fonts (Cairo, Nunito, Lato) |
lib/
├── core/
│ ├── constants/ # API Keys & Config
│ ├── network/ # Dio HTTP Client
│ └── storage/ # Hive Service
│
└── features/
└── news/
├── data/
│ ├── model/ # Article, NewsSource
│ └── repository/ # NewsRepository
│
└── presentation/
├── providers/ # Riverpod Providers
├── screens/ # UI Screens (7 screens)
└── widgets/ # Reusable Components
- Clean Architecture - Separation of data, domain, and presentation layers
- Repository Pattern - Abstract data source access
- Provider Pattern - Reactive state management
| Screen | Description | الوصف | Açıklama |
|---|---|---|---|
| NewsScreen | Main news feed | الصفحة الرئيسية | Ana haber akışı |
| ArticleDetailScreen | Article details & content | تفاصيل المقال | Makale detayları |
| FavoritesScreen | Saved articles | المفضلة | Favoriler |
| SettingsScreen | App settings & preferences | الإعدادات | Ayarlar |
| WebViewScreen | Full article in browser | المقال في المتصفح | Tarayıcıda makale |
| ManageSourcesScreen | RSS sources management | إدارة المصادر | Kaynak yönetimi |
| AddSourceScreen | Add new RSS source | إضافة مصدر | Kaynak ekle |
- Flutter SDK (>=3.0.0)
- Dart SDK (>=3.0.0)
- Android Studio / VS Code
# Clone the repository
git clone https://github.com/yourusername/newsappman.git
# Navigate to project directory
cd newsappman
# Install dependencies
flutter pub get
# Generate code (Hive adapters, Riverpod providers)
flutter pub run build_runner build --delete-conflicting-outputs
# Run the app
flutter run- Get a free API key from NewsAPI.org
- Create
lib/core/constants/app_secrets.dart:
class AppSecrets {
static const String newsApiKey = 'YOUR_API_KEY_HERE';
}| Metric | Value |
|---|---|
| Screens | 7 |
| Languages | 3 (AR, EN, TR) |
| Categories | 7 |
| Providers | 6+ |
| Supported Platforms | Android, iOS |
This project is for educational purposes.
هذا المشروع لأغراض تعليمية.
Bu proje eğitim amaçlıdır.
Made with ❤️ using Flutter
صُنع بـ ❤️ باستخدام Flutter
Flutter kullanılarak ❤️ ile yapıldı