|
1 |
| -# 📰 Headlines Toolkit |
2 |
| - |
3 |
| -## 📖 Overview |
4 |
| - |
5 |
| -**source-available**, full-stack Flutter application designed as a robust foundation for building modern news applications. This toolkit offers a streamlined, user-friendly experience for browsing news headlines and is built upon a clean, maintainable architecture. |
6 |
| -## ✨ Features |
7 |
| - |
8 |
| -- 🗞️ **Headlines Feed:** Displays a minimalist list of news headlines (title only, with source, category, and country represented as icons). |
9 |
| -- 📃 **Headline Details Page:** Provides detailed information about a headline (title, image, source, category, date, and a "Continue Reading" button that opens the original article in the browser). |
10 |
| -- 🔎 **Search:** Allows users to search for headlines. |
11 |
| -- 🗂️ **Filtering:** Allows users to filter headlines by category, source, and event country. |
12 |
| -- 🌗 **Dark Mode:** Supports light and dark themes. |
13 |
| -- 📅 **Planned Features:** |
14 |
| - - 👥 User accounts/profiles |
15 |
| - - 🌟 Personalized recommendations |
16 |
| - - 💾 Saving articles |
17 |
| - - 📵 Offline Reading |
18 |
| - - 🔔 Push notifications |
19 |
| - - 🚀 Social sharing |
20 |
| - - 💬 Comments/discussion features |
| 1 | +# 📱✨ ht_main: Headlines Toolkit Main App |
| 2 | + |
| 3 | + |
| 4 | +[](https://pub.dev/packages/very_good_analysis) |
| 5 | +[](https://polyformproject.org/licenses/free-trial/1.0.0) |
| 6 | + |
| 7 | +`ht_main`** is a Flutter mobile application serves as both a powerful, fully functional news application ready for deployment, and an exceptionally robust starter kit, architected for easy extension and customization. It is a key component of the [Headlines Toolkit](https://github.com/headlines-toolkit), an ecosystem that also includes a [Dart Frog backend API](https://github.com/headlines-toolkit/ht-api) and a [web-based content dashboard](https://github.com/headlines-toolkit/ht-dashboard). |
| 8 | + |
| 9 | +## ⭐ Features & Benefits |
| 10 | + |
| 11 | +`ht_main` comes packed with features to accelerate your development and delight your users: |
| 12 | + |
| 13 | +#### 📰 **Dynamic & Engaging Headlines Feed** |
| 14 | +Experience a beautifully crafted, infinitely scrolling news feed. It's highly performant and ready for your content. |
| 15 | +* **Benefit for you:** Save months of UI/UX development and complex state management. Get a production-quality feed system instantly! ⏱️ |
| 16 | + |
| 17 | +#### 🔍 **Advanced Content Filtering & Search** |
| 18 | +Empower users with intuitive filtering for headlines by categories, sources, and countries. A dedicated search page helps users find exactly what they're looking for. |
| 19 | +* **Benefit for you:** Offer powerful content discovery tools that significantly enhance user engagement and satisfaction. 🎯 |
| 20 | + |
| 21 | +#### 🔐 **Robust User Authentication** |
| 22 | +Secure and flexible authentication flows are built-in: |
| 23 | +* 📧 **Email + Code (Passwordless) Sign-In:** Modern and secure. |
| 24 | +* 👤 **Anonymous Sign-In:** Allow users to explore before committing. |
| 25 | +* 🔗 **Account Linking:** Seamlessly convert anonymous users to registered accounts, ensuring all their personalized settings (like theme and language), content preferences (followed categories, sources, countries), and saved headlines are preserved and synced. |
| 26 | +* **Benefit for you:** Complex security and user management handled, including data migration during account linking, letting you focus on features. ✅ |
| 27 | + |
| 28 | +#### 🧑🎨 **Personalized User Accounts & Preferences** |
| 29 | +Users can tailor their experience: |
| 30 | +* **Content Preferences:** Follow/unfollow categories, sources, and countries. |
| 31 | +* **Saved Headlines:** Bookmark articles for easy access later. |
| 32 | +* **Benefit for you:** A strong foundation for personalization, driving user retention and creating a sticky app experience. ❤️ |
| 33 | + |
| 34 | +#### ⚙️ **Customizable App Settings** |
| 35 | +Offer users control over their app experience: |
| 36 | +* **Appearance:** Light/Dark/System themes, accent colors (via FlexColorScheme), font choices, and text scaling. |
| 37 | +* **Feed Display:** Customize how headlines are presented. |
| 38 | +* **Benefit for you:** Provide a premium, adaptable user experience that caters to individual needs. 🔧 |
| 39 | + |
| 40 | +#### 📱 **Adaptive UI for All Screens** |
| 41 | +Built with `flutter_adaptive_scaffold`, `ht_main` offers responsive navigation and layouts that look great on both phones and tablets. |
| 42 | +* **Benefit for you:** Deliver a consistent and optimized UX across a wide range of devices effortlessly. ↔️ |
| 43 | + |
| 44 | +#### 🏗️ **Clean & Modern Architecture** |
| 45 | +Developed with best practices for a maintainable and scalable codebase: |
| 46 | +* **Flutter & Dart:** Cutting-edge mobile development. |
| 47 | +* **BLoC Pattern:** Predictable and robust state management. |
| 48 | +* **GoRouter:** Well-structured and powerful navigation. |
| 49 | +* **Benefit for you:** An easy-to-understand, extendable, and testable foundation for your project. 📈 |
| 50 | + |
| 51 | +#### 🌍 **Localization Ready** |
| 52 | +Fully internationalized with working English and Arabic localizations (`.arb` files). Adding more languages is straightforward. |
| 53 | +* **Benefit for you:** Easily adapt your application for a global audience. 🌐 |
| 54 | + |
| 55 | +--- |
21 | 56 |
|
22 | 57 | ## 🛠️ Technical Overview
|
23 | 58 |
|
24 |
| -- 🎯 **Language:** Dart |
25 |
| -- 💙 **Framework:** Flutter |
26 |
| -- 🧱 **State Management:** BLoC |
27 |
| -- 🔀 **Routing:** go_router |
28 |
| -- ⚙️ **Backend:** Firebase (current), Supabase (future) |
29 |
| -- 🏛️ **Architecture:** Layered architecture (Data, Repository, Business Logic, Presentation) |
| 59 | +* **Framework:** Flutter |
| 60 | +* **Language:** Dart |
| 61 | +* **State Management:** BLoC / flutter_bloc |
| 62 | +* **Navigation:** GoRouter |
| 63 | +* **Theming:** FlexColorScheme |
| 64 | +* **Core Dependencies:** Integrates seamlessly with Headlines Toolkit shared packages (`ht_shared`, `ht_auth_repository`, `ht_data_repository`, `ht_http_client`, etc.). |
| 65 | + |
| 66 | +--- |
30 | 67 |
|
31 | 68 | ## 🔑 Access and Licensing
|
32 | 69 |
|
33 |
| -`ht_main` is source-available as part of the Headlines Toolkit ecosystem. |
| 70 | +`ht-main` is source-available as part of the Headlines Toolkit ecosystem. |
34 | 71 |
|
35 |
| -The source code for `ht_main` is available for review as part of the Headlines |
36 |
| -Toolkit ecosystem. To acquire a commercial license for building unlimited news |
37 |
| -applications with the Headlines Toolkit repositories, please visit the |
38 |
| -[Headlines Toolkit GitHub organization page](https://github.com/headlines-toolkit) |
| 72 | +To acquire a commercial license for building unlimited news applications, please visit |
| 73 | +the [Headlines Toolkit GitHub organization page](https://github.com/headlines-toolkit) |
39 | 74 | for more details.
|
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## 🚀 Getting Started |
| 79 | + |
| 80 | +1. **Ensure Flutter is installed.** (See [Flutter documentation](https://flutter.dev/docs/get-started/install)) |
| 81 | +2. **Clone the repository:** |
| 82 | + ```bash |
| 83 | + git clone https://github.com/headlines-toolkit/ht-main.git |
| 84 | + cd ht-main |
| 85 | + ``` |
| 86 | +3. **Get dependencies:** |
| 87 | + ```bash |
| 88 | + flutter pub get |
| 89 | + ``` |
| 90 | +4. **Run the app:** |
| 91 | + ```bash |
| 92 | + flutter run |
| 93 | + ``` |
| 94 | + *(Note: For full functionality, ensure the `ht-api` backend service is running and accessible.)* |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +## ✅ Testing |
| 99 | + |
| 100 | +This project aims for high test coverage to ensure quality and reliability. |
| 101 | + |
| 102 | +* Run tests with: |
| 103 | + ```bash |
| 104 | + flutter test |
| 105 | + ``` |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +## 📜 License |
| 110 | + |
| 111 | +This package is licensed under the **PolyForm Free Trial**. |
| 112 | +Please review the [LICENSE](LICENSE) file for details. |
| 113 | + |
| 114 | +--- |
0 commit comments