Flutter-structureFlutter-structure

بعد أن ثبّتنا 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 → وصف المشروع.

By احمد علي

مطور تطبيقات هواتف ذكية باستخدام Flutter، وصانع محتوى تقني يكتب عن الذكاء الاصطناعي والبرمجة وتطورات التكنولوجيا الحديثة. أسعى لتبسيط الأفكار المعقدة ومشاركة خبرتي مع المهتمين بالمجال.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *