بعد أن ثبّتنا Flutter وشغّلنا أول تطبيق بسيط، قد تساءلت:
“ما معنى كل هذه الملفات والمجلدات التي أنشأها Flutter؟”
في هذا الفصل سنفكك مشروع Flutter إلى مكوناته خطوة بخطوة، ونفهم وظيفة كل ملف ومجلد. تخيّل أن مشروعك مثل بيت كبير: كل غرفة لها وظيفة، وكل باب يؤدي إلى مكان محدد.
1. إنشاء مشروع جديد
لنبدأ بإنشاء مشروع جديد لتجربة ذلك:
flutter create my_app
cd my_app
سيُنشئ هذا الأمر مجلدًا اسمه my_app يحتوي على هيكل مشروع كامل.
2. لمحة عن الهيكل
داخل المشروع ستجد شيئًا يشبه:
my_app/
├── android/
├── ios/
├── lib/
│ └── main.dart
├── test/
├── web/
├── pubspec.yaml
├── pubspec.lock
└── README.md
3. شرح المجلدات والملفات
مجلد lib/
هنا يعيش الكود الأساسي لتطبيقك.
- الملف الأهم:
main.dart→ نقطة البداية (entry point) للتطبيق. - يمكنك إنشاء ملفات إضافية لتنظيم الكود (مثل
home.dartأوwidgets/).
مجلد android/
- يحتوي على ملفات Android الأصلية.
- يستخدم عند تشغيل التطبيق على أجهزة Android.
- يتضمن ملفات Gradle (مثل
build.gradle) لإدارة البناء.
مجلد ios/
- يحتوي على ملفات iOS الأصلية.
- يستخدم عند تشغيل التطبيق على iPhone أو iPad.
- يتضمن إعدادات Xcode (مثل Info.plist).
مجلد web/
- يحتوي على ملفات تدعم تشغيل تطبيقك كـ Web App.
- ينشأ تلقائيًا إذا فعّلت دعم الويب.
مجلد test/
- هنا تضع اختبارات الكود (Unit Tests وWidget Tests).
- Flutter يأتي مع اختبار تجريبي جاهز لتتعلم منه.
ملف pubspec.yaml
هذا هو قلب المشروع لإدارة المكتبات والإعدادات.
- تحدد فيه اسم التطبيق، النسخة، والاعتماديات (Dependencies).
- مثال:
name: my_app
description: A new Flutter project.
version: 1.0.0+1
environment:
sdk: ">=3.0.0 <4.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
ملف pubspec.lock
- يُنشأ تلقائيًا عند تثبيت المكتبات.
- يضمن أن كل شخص يعمل على المشروع لديه نفس الإصدارات.
ملف README.md
- ملف نصي يحتوي على وصف المشروع.
- يُكتب عادةً بصيغة Markdown.
4. كيف يعمل هذا كله معًا؟
- عند تشغيل التطبيق (
flutter run):- يبدأ التنفيذ من
main.dartداخل مجلدlib/. - Flutter يتولى تشغيل الكود على المنصة المناسبة (Android/iOS/Web).
- الملفات في
android/وios/تعمل كـ “جسور” بين Flutter ونظام التشغيل.
- يبدأ التنفيذ من
ملخص الفصل
lib/→ كود التطبيق الرئيسي.android/وios/→ ملفات النظام الأصلية.test/→ الاختبارات.pubspec.yaml→ إدارة المكتبات والإعدادات.README.md→ وصف المشروع.

