- بواسطة x32x01 ||
لو بتشتغل في تطوير التطبيقات باستخدام Flutter فغالبًا قابلتك المشكلة المشهورة: كتابة نفس الكود المتكرر في كل مشروع 😅
حاجات زي Models / Entities / DataSources / Repositories / Cubits / Dependency Injection بتاخد وقت كبير جدًا، رغم إنها في الآخر مجرد Boilerplate Code بيتكرر في كل Feature.
علشان كده ظهرت فكرة أداة بسيطة لكنها ذكية جدًا بتعمل توليد تلقائي للكود في Flutter باستخدام Clean Architecture وتوفر وقت ضخم للمطورين. خلينا نشرح الفكرة بالتفصيل 👇
بدل ما تقعد تكتب نفس الملفات كل مرة، الأداة بتقوم بإنشاء كل الطبقات المطلوبة بشكل تلقائي ومنظم.
يعني ببساطة:
لكن المشكلة إن تنفيذ Clean Architecture يدويًا بياخد وقت طويل خصوصًا في المشاريع الكبيرة.
هنا بقى دور الأداة دي 💡
ويكون فيه بيانات الـ Feature اللي انت عايزها.
مثال بسيط:
بعد كده تشغل الأمر التالي:
وخلال ثواني هتلاقي:
وكمان Cubit جاهز للاستخدام:
وده بيختصر وقت كبير جدًا في كتابة الكود المتكرر.
الموضوع كله بقى ثواني بس ⏱️
https://github.com/782001/clean_arch_gen_for_bti
ممكن يكون:
إيه أكتر حاجة بتضيع وقتك في تطوير التطبيقات وبتتمنى تعمل لها Automation؟ 🤔
حاجات زي Models / Entities / DataSources / Repositories / Cubits / Dependency Injection بتاخد وقت كبير جدًا، رغم إنها في الآخر مجرد Boilerplate Code بيتكرر في كل Feature.
علشان كده ظهرت فكرة أداة بسيطة لكنها ذكية جدًا بتعمل توليد تلقائي للكود في Flutter باستخدام Clean Architecture وتوفر وقت ضخم للمطورين. خلينا نشرح الفكرة بالتفصيل 👇
ما هي أداة Flutter Clean Architecture Generator؟
الأداة دي عبارة عن Generator مكتوب بلغة Dart وظيفته إنه يولد لك Feature كاملة في Flutter تلقائيًا وفقًا لمبدأ Clean Architecture.بدل ما تقعد تكتب نفس الملفات كل مرة، الأداة بتقوم بإنشاء كل الطبقات المطلوبة بشكل تلقائي ومنظم.
يعني ببساطة:
- تكتب ملف إعدادات بسيط
- تشغل أمر واحد
- تلاقي Feature كاملة اتعملت تلقائيًا 🚀
لماذا Clean Architecture مهم في Flutter؟
كتير من المطورين بيستخدموا Clean Architecture في Flutter لأنه بيخلي المشروع:✔ منظم وسهل التوسع
✔ سهل الاختبار (Testing)
✔ يفصل بين طبقات التطبيق
✔ يقلل المشاكل عند تطوير Features جديدة
✔ سهل الاختبار (Testing)
✔ يفصل بين طبقات التطبيق
✔ يقلل المشاكل عند تطوير Features جديدة
لكن المشكلة إن تنفيذ Clean Architecture يدويًا بياخد وقت طويل خصوصًا في المشاريع الكبيرة.
هنا بقى دور الأداة دي 💡
ماذا تفعل الأداة بالتحديد؟
الأداة دي بتعمل مجموعة من العمليات المهمة بشكل أوتوماتيكي:⚡ تحويل API Response (JSON) مباشرة إلى Entities و Models
⚡ إنشاء Feature كاملة بجميع Layers الخاصة بها
⚡ إضافة Dependency Injection تلقائيًا
⚡ إنشاء Cubit + UseCases + Repository تلقائي
⚡ تجهيز Cubit Method لاستدعاء الـ API مباشرة
يعني بمجرد تشغيل الأداة، هتلاقي كل الملفات الأساسية اتعملت وجاهزة للاستخدام 👌⚡ إنشاء 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 دقيقة في كتابة نفس الملفات…🔥 تخلي المشروع منظم تلقائيًا
🔥 تسرع عملية تطوير Features جديدة
🔥 تقلل الأخطاء البشرية
الموضوع كله بقى ثواني بس ⏱️
فيديو شرح الأداة
لو حابب تشوف الأداة وهي شغالة بشكل عملي تقدر تشوف الفيديو ده:
👆 أضغط على الصورة لمشاهدة الفيديو 👆
تحميل الأداة من GitHub
تقدر كمان تحميل المشروع بالكامل من GitHub وتجربه بنفسك:https://github.com/782001/clean_arch_gen_for_bti
فكرة مهمة لكل المبرمجين
لو في حاجة بتتكرر يوميًا في شغلك كمبرمج… أفضل حل هو إنك تعمل لها Automation.ممكن يكون:
- Script بسيط
- Tool صغير
- Code Generator
سؤال للمطورين
لو بتشتغل في Flutter Development 👨💻إيه أكتر حاجة بتضيع وقتك في تطوير التطبيقات وبتتمنى تعمل لها Automation؟ 🤔