[ العودة ]
TECH_MODULE_ID: FLUTTER

[ > ] فلاتر (Flutter) / Cross-Platform Framework

تعريف_النظام
CORE_DEFINITION

وصف عام

إطار عمل (Framework) متكامل مقدم من جوجل لبناء تطبيقات مجمعة محلياً (Native) تعمل على الهواتف المحمولة (Android & iOS)، الويب، وسطح المكتب من قاعدة كود واحدة. يستخدم لغة Dart ويتميز بمحرك رسوم خاص (Impeller) يسمح برسم كل بيكسل على الشاشة بدقة عالية وسرعة تصل إلى 120 إطاراً في الثانية.

البيانات_الأساسية
CORE_DATA
Flutter
تطوير تطبيقات
STATUS: ACTIVE
نبذة_تاريخية
HISTORY

ظهرت فلاتر لأول مرة في عام 2015 تحت اسم 'Sky' ولكن تم إعلانها رسمياً كفلاتر في عام 2017. أحدثت ثورة لأنها لا تعتمد على مكونات النظام الأصلية بل ترسم مكوناتها الخاصة، مما يضمن ظهور التطبيق بنفس الشكل على جميع الأجهزة. في عام 2021، أصبحت فلاتر تدعم تطبيقات الويب وسطح المكتب بشكل مستقر تماماً.

VERIFIED_DATA
أفضل_الممارسات
BEST_PRACTICES
  • استخدم الـ Const Constructors لتقليل استهلاك الذاكرة وتسهيل التحديث.
  • افصل منطق العمل عن الواجهة باستخدام أدوات إدارة الحالة (Provider / Riverpod).
  • اجعل شجرة الـ Widgets مسطحة قدر الإمكان ولا تبالغ في التداخل.
  • استخدم الـ Keys عند التعامل مع القوائم الديناميكية للحفاظ على الحالة.
  • قم بتحسين الصور واستخدام كاش (Cache) للبيانات القادمة من الإنترنت.
GUIDE_V1

طريقة الكتابة والبنية

SYNTAX_ARCH

01.بنية الـ Widget الأساسية

FLUTTER_SRC_01
class MyHome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: Text("أهلاً فلاتر")),
    );
  }
}

في فلاتر، كل شيء هو Widget. الواجهات تتكون من تداخل مجموعة من هذه الـ Widgets.

02.إدارة الحالة (Riverpod)

FLUTTER_SRC_02
final counterProvider = StateProvider((ref) => 0);

// داخل الـ build
final count = ref.watch(counterProvider);
ref.read(counterProvider.notifier).state++;

تعتبر Riverpod من أحدث وأفضل الطرق لإدارة الحالة في فلاتر لسهولتها وقوة اختبارها.

المنظومة التقنية

ECOSYSTEM_MODULES

إطارات العمل (Frameworks)

Flutter Mobile
بناء تطبيقات للهواتف بأنظمة أندرويد وآيفون بأداء يقارب الـ Native تماماً.
Flutter Web
تحويل كود الموبايل إلى تطبيق ويب يعمل بكفاءة على المتصفحات الحديثة.
Flutter Desktop
دعم بناء برمجيات لنظام ويندوز، ماك، ولينكس من نفس المشروع.

المكتبات المشهورة (Libraries)

Riverpod
الاستخدام: الحل الأكثر استقراراً وقوة لإدارة الحالة وفصل المنطق البرمجي.
Dio
الاستخدام: مكتبة متقدمة جداً للتعامل مع طلبات الـ HTTP والشبكة والتحويلات.
Freezed
الاستخدام: تستخدم لتوليد كود الـ Data Classes والتعامل مع الـ JSON بشكل آمن.
Go Router
الاستخدام: المكتبة الرسمية لإدارة المسارات (Routing) والتنقل بين الشاشات بطريقة سهلة.

هيكلية الملفات الشائعة

FILE_SYSTEM_TREE

شجرة_المفات
DIRECTORY_SCAN
Project Root/
├── lib/ (ملفات الكود المصدري)
│ ├── views/ (الشاشات والواجهات)
│ ├── providers/ (إدارة الحالة)
│ ├── models/ (هياكل البيانات)
│ └── main.dart (نقطة البداية)
├── assets/ (الصور والخطوط)
├── test/ (اختبارات الوحدة)
├── android/ (إعدادات أندرويد)
├── ios/ (إعدادات آيفون)
└── pubspec.yaml (إدارة المكتبات والملفات)