0Pricing
Flutter Mobile Development · درس

بناء أول تطبيق Flutter لك

تعرّف خطوة بخطوة على إنشاء تطبيق Flutter بسيط من نوع 'Hello World'، مع فهم بنية المشروع وميزة إعادة التحميل السريع

بناء أول تطبيق Flutter لك درس مجاني في Flutter Mobile Development على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flutter Mobile Development، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flutter Mobile Development 4 دروس في المجموع.

Your First Flutter App!

حان الوقت لبناء تطبيقك الأول باستخدام Flutter — وهو تطبيق "Hello World" بسيط لتعلم سير العمل. أنت على وشك أن ترى لماذا يبدو Flutter سريعاً جداً.

Create a New Project

قم بتشغيل flutter create لإنشاء هيكل مشروع جديد، ثم انتقل إلى المجلد باستخدام cd. أمر واحد وستكون جاهزاً للبرمجة.

flutter create my_first_app
cd my_first_app

Understand Project Structure

ينشئ فلاتر عدة مجلدات. المجلدات المهمة هي: lib/main.dart (كود الخاص بك)، pubspec.yaml (ال تبعيات)، ومجلدات المنصات android/ و ios/.

The App Entry Point: main.dart

يبدأ كل تطبيق عند الدالة main(). بداخلها، تأخذ runApp() عنصر واجهة المستخدم (widget) الرئيسي الخاص بك وتربطه بالشاشة.

import 'package:flutter/material.dart';

void main() {
  runApp(
    const Center(
      child: Text(
        'Launching App...', // Text displayed directly
        textDirection: TextDirection.ltr, // Required for root Text widget
        style: TextStyle(color: Colors.blue, fontSize: 20),
      ),
    ),
  );
}

Building Your MyApp Widget

أحط تطبيقك بعنصر واجهة مستخدم (widget) جذري، وغالباً ما يكون MyApp. بالنسبة لواجهة المستخدم التي لا تتغير، استخدم StatelessWidget — فهو يحتاج فقط إلى طريقة build تصف واجهة المستخدم.

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    // This widget will define the app's look and feel
    return const Placeholder(); // A temporary visual marker
  }
}

MaterialApp & Scaffold Basics

يضيف MaterialApp تصميم المواد (Material Design)؛ وبداخله يمنحك Scaffold التخطيط الأساسي — شريط تطبيق AppBar في الأعلى وجسم body للمحتوى.

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hello Flutter App',
      theme: ThemeData(primarySwatch: Colors.blue), // Sets primary color
      home: Scaffold(
        appBar: AppBar(
          title: const Text('My First App'), // Text in the app bar
        ),
        body: const Center(
          child: Text(
            'Hello, CoddyKit!', // Our main content text
            style: TextStyle(fontSize: 24),
          ),
        ),
      ),
    );
  }
}

Running Your New App

التطبيق جاهز؟ شغله. ابدأ تشغيل محاكي أو جهاز افتراضي، أو قم بتوصيل جهاز، ثم قم بتشغيل flutter run من المجلد الرئيسي للمشروع.

flutter run

Meet Hot Reload!

يؤدي التحديث السريع (Hot Reload) إلى حقن تغييرات الكود في التطبيق قيد التشغيل فوراً تقريباً — بدون إعادة تشغيل كاملة، وبدون فقدان للحالة. فقط قم بحفظ ملف .dart الخاص بك لتشغيله.

Hot Reload in Action

جرب بنفسك: قم بتعديل نص شريط التطبيق (AppBar)، أو المحتوى (body)، أو لون السمة أدناه، ثم احفظ وشاهد التحديث السريع (Hot Reload) وهو يقوم بتحديث التطبيق قيد التشغيل مباشرةً.

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hello Flutter App',
      theme: ThemeData(primarySwatch: Colors.green), // Changed color!
      home: Scaffold(
        appBar: AppBar(
          title: const Text('My Updated App'), // Changed text!
        ),
        body: const Center(
          child: Text(
            'Hot Reloaded!', // Changed text and size!
            style: TextStyle(fontSize: 28, color: Colors.red),
          ),
        ),
      ),
    );
  }
}

Hot Reload vs. Hot Restart

يؤدي التحديث السريع (Hot Reload) إلى حقن الكود مع الحفاظ على حالة تطبيقك، وهو ممتاز لتعديلات واجهة المستخدم. أما إعادة التشغيل السريع (Hot Restart) فيعيد البناء من الصفر ويمسح الحالة، وذلك للتغييرات الأكبر.

Quick Check: Hot Reload

لقد رأيت ميزة إعادة التحميل السريع (Hot Reload) في Flutter قيد العمل. دعنا نختبر فهمك!

Recap: First Flutter App

تهانينا! لقد أنشأت وشغلت تطبيق Flutter الأول الخاص بك — flutter create، وهيكل main.dart، و MaterialApp + Scaffold، وقوة التحديث السريع (Hot Reload).

الأسئلة الشائعة

هل درس «بناء أول تطبيق Flutter لك» مجاني؟

نعم — نص درس «بناء أول تطبيق Flutter لك» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flutter Mobile Development، انتقل إلى CoddyKit PRO. تتضمن دورة Flutter Mobile Development 4 دروس في المجموع.

ماذا ستتعلم في «بناء أول تطبيق Flutter لك»؟

تعرّف خطوة بخطوة على إنشاء تطبيق Flutter بسيط من نوع 'Hello World'، مع فهم بنية المشروع وميزة إعادة التحميل السريع تتمرن على Flutter Mobile Development مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Flutter Mobile Development؟

لا تُشترط خبرة سابقة. Flutter Mobile Development على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «بناء أول تطبيق Flutter لك»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Flutter Mobile Development هذا؟

نعم. كل درس في Flutter Mobile Development يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. منظومة Flutter والإعداد
  2. أساسيات Dart لتطوير Flutter
  3. بناء أول تطبيق Flutter لك
  4. البرمجة غير المتزامنة باستخدام Futures وasync/await
← العودة إلى Flutter Mobile Development