الإصدار 1.0.8 · MIT · من XYCODE LLC
Flutter Forge
مجموعة لتوليد المعمارية والكود لـ Flutter. أنشئ هيكل Clean Architecture وإدارة الحالة ووحدات الميزات من داخل VS Code وبيئات JetBrains وAndroid Studio وAntigravity وCursor وWindsurf.
$ code --install-extension AbdalluhEssamElsayed.flutter-forge ✓ Extension 'flutter-forge' v1.0.8 was successfully installed. # then, in the command palette › Flutter Forge: Generate New Project
لماذا أنشأناه
في مشاريع Flutter لعملائنا، كان إعداد Clean Architecture — عقود المستودعات وحالات الاستخدام وعميل Dio وحقن الاعتماديات بـ GetIt — يستغرق من 30 إلى 45 دقيقة من الكتابة اليدوية المعرّضة للأخطاء في كل مشروع جديد. وكانت المعمارية تختلف أيضًا من مهندس لآخر داخل الفريق.
بنينا Flutter Forge ليحوّل هذا الإعداد إلى نافذة واحدة داخل بيئة التطوير. يكتب كودًا منظّمًا يجتاز قواعد الفحص وجاهزًا للاختبارات من أول commit — ونستخدمه في كل مشروع نُطلقه.
نتولّى أيضًا الاستشارات وبناء الأدوات المخصّصة — أخبرنا عن مشروعك.
عروض توضيحية
عرضان توضيحيان: إنشاء مشروع من الصفر، وكيف تترابط الطبقات المولَّدة.
المميزات
- إنشاء هيكل المشروع
- يحدّد معالج اسم المشروع والمؤسسة والمعمارية والتوجيه والاعتماديات، ثم يكتب
pubspec.yamlوشجرة المجلدات ونقطة البداية. - توليد الميزات
- يكتشف إن كان المشروع يستخدم Clean Architecture أو MVVM أو MVC، ويضيف ميزة بطبقات مطابقة — الكيانات وحالات الاستخدام والواجهة. الاختصار Ctrl+Alt+F / Cmd+Alt+F.
- تكامل واجهات البرمجة
- يقرأ مواصفات Swagger / OpenAPI ويولّد نماذج Dart محددة الأنواع وDTOs وخدمات عميل Dio — دون تحليل JSON يدويًا.
- إعداد التصميم المتجاوب
- يُعِدّ
flutter_screenutilمسبقًا مع تحجيم الخطوط والمسافات المتجاوبة ومكيّفات تخطيط الهاتف والتابلت. - معرّف الحزمة والأيقونات
- يغيّر معرّف الحزمة وأيقونات التطبيق على Android (
build.gradleوmanifest) وiOS (Info.plistوproject.pbxproj) معًا. - فحص المعمارية
- يكشف مخالفات الطبقات — كملف عرض يستورد مصدر بيانات — ويقترح إصلاحًا آليًا.
المعماريات
يدعم أربعة أنماط، لتتكيّف الأداة مع الفريق لا العكس.
Clean Architecture
موصى به للتطبيقات الكبيرة
ثلاث طبقات: العرض (الواجهة والحالة) ← المجال (الكيانات وحالات الاستخدام وعقود المستودعات) ← البيانات (النماذج ومصادر البيانات والتنفيذ). قابلة للاختبار بمصادر بيانات وهمية ومستقلة عن اختيارات الواجهة وقاعدة البيانات.
lib/features/<feature>/{presentation,domain,data}/
MVVM
ربط تفاعلي للواجهة
تعرض ViewModels حالة قابلة للمراقبة أو value notifiers تستهلكها الواجهات مباشرة. طبقات أقل وتسليم أسرع، مع دعم ChangeNotifier وStateNotifier.
lib/{view_models,views,models}/
MVC
خفيف
تتوسّط المتحكمات بين النماذج والواجهات. أقل تعقيدًا للتطبيقات الصغيرة والنماذج الأولية، وسهل على المهندسين المبتدئين.
lib/{controllers,views,models}/
نمط GetX
متكامل
متحكمات وربط ومسارات ومتغيرات .obs تفاعلية، مع توجيه وحقن اعتماديات مدمجين.
lib/{bindings,controllers,views}/
إدارة الحالة
اختر أداة إدارة الحالة التي تناسب المشروع؛ وتُولَّد كل واحدة بربطها الخاص.
| أداة إدارة الحالة | النمط | الكود المتكرر | الأنسب لـ |
|---|---|---|---|
| BLoC | تدفقات تفاعلية (أحداث ← حالات) | متوسط | التطبيقات الكبيرة والتقنية المالية وسجلات التدقيق الصارمة |
| Cubit | تدفقات مبسّطة (استدعاء دوال) | منخفض | معظم تطبيقات الإنتاج — قابلية اختبار BLoC بكود أقل |
| Riverpod | مزوّدات تفاعلية وظيفية | متوسط | حالة آمنة وقت الترجمة دون BuildContext |
| Provider | غلاف حول InheritedWidget | منخفض | الأساس في توثيق Flutter؛ ومشاريع MVVM |
| GetX | متحكمات تفاعلية | منخفض | النماذج الأولية والفرق الصغيرة التي تريد أقل كود متكرر |
| بدون | StatefulWidget وInheritedNotifier | منخفض جدًا | أدوات الشاشة الواحدة والتطبيقات دون اعتماديات |
شجرة المجلدات المولَّدة
الهيكل الذي يكتبه Flutter Forge لمشروع Clean Architecture تمامًا. توضع الجوانب المشتركة في core/، وتحصل كل قدرة عمل على مجلد مستقل داخل features/.
- core/ — عميل Dio وفاحص الشبكة والأخطاء والامتدادات والواجهات المشتركة ومحدّد خدمات GetIt.
- features/ — طبقات العرض والمجال والبيانات لكل ميزة.
- test/ — شجرة مطابقة جاهزة لـ Mockito أو Mocktail.
lib/ ├── core/ │ ├── api/ # Dio client, interceptors, BaseOptions │ ├── network/ # connection checker & contracts │ ├── error/ # ServerFailure, CacheFailure, exceptions │ ├── extensions/ # context & string helpers │ ├── widgets/ # AppButton, AppTextField, LoadingOverlay │ ├── theme/ # light / dark ColorSchemes & TextThemes │ ├── constants/ # endpoints, asset paths, storage keys │ └── di/ # GetIt service locator ├── features/ │ └── [feature_name]/ │ ├── presentation/ │ │ ├── screens/ # login_screen.dart │ │ ├── widgets/ # login_form.dart │ │ └── bloc/ # BLoC / Cubit / ViewModel │ ├── domain/ │ │ ├── entities/ # UserEntity │ │ ├── repositories/# AuthRepository (contract) │ │ └── usecases/ # LoginUseCase │ └── data/ │ ├── models/ # UserModel (fromJson / toJson) │ ├── datasources/ # AuthRemoteDataSource │ └── repositories/# AuthRepositoryImpl ├── routes/ # GoRouter / AutoRoute └── main.dart # entry point, DI & ScreenUtil init
الأوامر
افتح لوحة الأوامر بـ Ctrl+Shift+P في VS Code أو Shift Shift في بيئات JetBrains.
| الأمر | الاختصار | ماذا يفعل |
|---|---|---|
| Flutter Forge: Generate New Project | Ctrl+Alt+N | يفتح المعالج لإنشاء هيكل مشروع جديد. |
| Flutter Forge: Generate Feature | Ctrl+Alt+F | يضيف مجلد ميزة بطبقات العرض والمجال والبيانات. |
| Flutter Forge: Add Dependency | لوحة الأوامر | يبحث في pub.dev ويضيف الحزمة إلى pubspec.yaml ثم يشغّل flutter pub get. |
| Flutter Forge: Firebase Quick Setup | لوحة الأوامر | يُهيّئ مشروع Firebase عبر FlutterFire CLI. |
| Flutter Forge: API Integration Generator | لوحة الأوامر | يبني DTOs وخدمات Dio من مواصفات Swagger / OpenAPI. |
| Flutter Forge: Generate Custom Widgets | لوحة الأوامر | يولّد واجهات متجاوبة قابلة لإعادة الاستخدام — أزرار وحقول إدخال ونوافذ حوار. |
| Flutter Forge: Change Package ID | لوحة الأوامر | يحدّث معرّف الحزمة على Android وiOS في خطوة واحدة. |
| Flutter Forge: Error Detection | لوحة الأوامر | يفحص مخالفات طبقات المعمارية ويقترح الإصلاحات. |
التثبيت
-
1 · VS Code
افتح الإضافات (Ctrl+Shift+X)، وابحث عن Flutter Forge واضغط تثبيت — أو شغّل:
code --install-extension AbdalluhEssamElsayed.flutter-forge
افتحه في متجر VS Code ← -
2 · بيئات JetBrains
في Android Studio أو IntelliJ IDEA افتح
افتحه في متجر JetBrains ←Settings → Plugins → Marketplace، وابحث عن Flutter Forge، ثم ثبّته وأعد التشغيل. -
3 · من الكود المصدري
انسخ المستودع وأنشئ ملف
.vsixباستخدام npm:git clone https://github.com/AbdalluhEssam/flutter-forge.git cd flutter-forge && npm install && npm run compile
اعرضه على GitHub ←
تحتاج نظامًا بـ Flutter أو أدوات مخصّصة؟
تبني XYCODE تطبيقات جوال للإنتاج وأنظمة تعمل دون اتصال وأدوات مطورين مثل هذه.