أداة توليد كود Flutter تلقائياً بـ Clean Architecture

x32x01
  • بواسطة x32x01 ||
لو بتشتغل في تطوير التطبيقات باستخدام Flutter فغالبًا قابلتك المشكلة المشهورة: كتابة نفس الكود المتكرر في كل مشروع 😅
حاجات زي Models / Entities / DataSources / Repositories / Cubits / Dependency Injection بتاخد وقت كبير جدًا، رغم إنها في الآخر مجرد Boilerplate Code بيتكرر في كل Feature.

علشان كده ظهرت فكرة أداة بسيطة لكنها ذكية جدًا بتعمل توليد تلقائي للكود في Flutter باستخدام Clean Architecture وتوفر وقت ضخم للمطورين. خلينا نشرح الفكرة بالتفصيل 👇

ما هي أداة Flutter Clean Architecture Generator؟​

الأداة دي عبارة عن Generator مكتوب بلغة Dart وظيفته إنه يولد لك Feature كاملة في Flutter تلقائيًا وفقًا لمبدأ Clean Architecture.

بدل ما تقعد تكتب نفس الملفات كل مرة، الأداة بتقوم بإنشاء كل الطبقات المطلوبة بشكل تلقائي ومنظم.

يعني ببساطة:
  • تكتب ملف إعدادات بسيط
  • تشغل أمر واحد
  • تلاقي Feature كاملة اتعملت تلقائيًا 🚀
وده بيوفر وقت ضخم في مشاريع Flutter الكبيرة.



لماذا Clean Architecture مهم في Flutter؟​

كتير من المطورين بيستخدموا Clean Architecture في Flutter لأنه بيخلي المشروع:
✔ منظم وسهل التوسع
✔ سهل الاختبار (Testing)
✔ يفصل بين طبقات التطبيق
✔ يقلل المشاكل عند تطوير Features جديدة​

لكن المشكلة إن تنفيذ Clean Architecture يدويًا بياخد وقت طويل خصوصًا في المشاريع الكبيرة.
هنا بقى دور الأداة دي 💡



ماذا تفعل الأداة بالتحديد؟​

الأداة دي بتعمل مجموعة من العمليات المهمة بشكل أوتوماتيكي:
⚡ تحويل API Response (JSON) مباشرة إلى Entities و Models
⚡ إنشاء Feature كاملة بجميع Layers الخاصة بها
⚡ إضافة Dependency Injection تلقائيًا
⚡ إنشاء Cubit + UseCases + Repository تلقائي
⚡ تجهيز Cubit Method لاستدعاء الـ API مباشرة​
يعني بمجرد تشغيل الأداة، هتلاقي كل الملفات الأساسية اتعملت وجاهزة للاستخدام 👌



كيف تعمل الأداة؟​

كل اللي عليك تعمله هو إنشاء ملف إعدادات بسيط باسم: feature.json
ويكون فيه بيانات الـ Feature اللي انت عايزها.

مثال بسيط:
Code:
{
  "feature_name": "users",
  "endpoint": "/api/users",
  "request_params": {
    "page": "int"
  },
  "response": {
    "id": "int",
    "name": "string",
    "email": "string"
  }
}

بعد كده تشغل الأمر التالي:
Code:
dart run clean_arch_gen.dart generate feature.json

وخلال ثواني هتلاقي:
  • Models
  • Entities
  • Repository
  • UseCases
  • Cubit
  • DataSources
  • Dependency Injection
كلهم اتولدوا تلقائيًا 🎉



مثال على الكود الذي يتم توليده​

مثلًا الأداة ممكن تولد لك Entity بالشكل ده:
Code:
class User {
  final int id;
  final String name;
  final String email;

  User({
    required this.id,
    required this.name,
    required this.email,
  });
}

وكمان Cubit جاهز للاستخدام:
Code:
class UsersCubit extends Cubit<UsersState> {
  final GetUsersUseCase getUsers;

  UsersCubit(this.getUsers) : super(UsersInitial());

  Future<void> fetchUsers() async {
    emit(UsersLoading());

    final result = await getUsers();

    result.fold(
      (failure) => emit(UsersError()),
      (users) => emit(UsersLoaded(users)),
    );
  }
}
وده بيختصر وقت كبير جدًا في كتابة الكود المتكرر.



لماذا هذه الأداة مفيدة لمطوري Flutter؟​

الميزة الحقيقية للأداة دي إنها:
🔥 تقلل الوقت الضايع في كتابة Boilerplate
🔥 تخلي المشروع منظم تلقائيًا
🔥 تسرع عملية تطوير Features جديدة
🔥 تقلل الأخطاء البشرية​
بدل ما تقضي 20 إلى 30 دقيقة في كتابة نفس الملفات…
الموضوع كله بقى ثواني بس ⏱️



فيديو شرح الأداة​

لو حابب تشوف الأداة وهي شغالة بشكل عملي تقدر تشوف الفيديو ده:
Video thumbnail
👆 أضغط على الصورة لمشاهدة الفيديو 👆

تحميل الأداة من GitHub​

تقدر كمان تحميل المشروع بالكامل من GitHub وتجربه بنفسك:
https://github.com/782001/clean_arch_gen_for_bti



فكرة مهمة لكل المبرمجين​

لو في حاجة بتتكرر يوميًا في شغلك كمبرمج… أفضل حل هو إنك تعمل لها Automation.
ممكن يكون:
  • Script بسيط
  • Tool صغير
  • Code Generator
ومع الوقت هتكتشف إن توفير الوقت ده هو أفضل استثمار للمطور 💪

سؤال للمطورين​

لو بتشتغل في Flutter Development 👨‍💻
إيه أكتر حاجة بتضيع وقتك في تطوير التطبيقات وبتتمنى تعمل لها Automation؟ 🤔
 

المواضيع ذات الصلة

x32x01
الردود
0
المشاهدات
671
x32x01
x32x01
x32x01
الردود
0
المشاهدات
917
x32x01
x32x01
x32x01
الردود
0
المشاهدات
682
x32x01
x32x01
x32x01
الردود
0
المشاهدات
299
x32x01
x32x01
x32x01
الردود
0
المشاهدات
705
x32x01
x32x01
الوسوم : الوسوم
api clean architecture cubit dart dependency injection flutter github تطوير التطبيقات توليد الكود فلاتر
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟

آخر المشاركات

إحصائيات المنتدى
المواضيع
2,393
المشاركات
2,606
أعضاء أكتب كود
574
أخر عضو
الياس
عودة
أعلى