بجد ربنا يباركلك يابشمهندس أسامة انت راجل عندك ضمير وخلتني أحس بسهولة الخطوة مع أني أول مرة ليا في عالم البرمجة بشكل عام أبدعت وتستحق الدعاء ربنا يوفقك في الدنيا وفي الأخرة وانا متشرف أني مع حضرتك في المسار ده
★★★★★
انا قبل كده مخلصة دارت مرتين لكن كان في حجات مش مفهومة بالنسبالي ولكن مع البشمهندس فهمت كله بسبب طريقة شرحة المميزه اللي تبدا من الصفر وتعلي بيك لاعلي مستوي وكمان اكتسبت معلومات اول مرة اشوفها حقيقي كورس متعوب عليه ربنا يبارك في حضرتك يابشمهندس ويجازيك كل خير
ترتيب واضح تمشي عليه من أول سطر Dart لحد تطبيق Flutter كامل بالباك إند — مرحلة بمرحلة، وكل مرحلة ليها هدف وعلامة إنك جاهز للي بعدها.
بقلم أسامة الجندي، Tech Lead ومدرب Flutter و Dart ·
آخر تحديث
المسار باختصار
ترتيب تعلم Flutter في 11 مرحلة
ابدأ بأساسيات البرمجة بلغة Dart، وبعدها البرمجة الكائنية OOP، وبعدين Flutter نفسه: الـ Widgets والـ Layouts والتنقل بين الشاشات — ومن أول مشروع استخدم Git وارفع شغلك على GitHub. لما تبني أول تطبيقات كاملة، ادخل على الـ APIs والـ State Management، وبعدها Backend جاهز زي Firebase أو Supabase، وبعدين تنظيم الكود بـ Clean Architecture، وشغل الفريق بـ Git، ومهارات الـ Production. الـ AI بيساعدك في كل مرحلة — بس مش بديل إنك تفهم.
كل مرحلة ليها هدف واضح، وفي آخرها علامة بتقولك إنك جاهز تنتقل للي بعدها. امشي بالترتيب، ومش لازم تخلص كل المراحل عشان تبدأ تبني.
لو بتبرمج بلغة تانية وعايز تدخل مجال تطبيقات الموبايل: ابدأ من المرحلة 1 بسرعة.
لو بتشتغل Flutter بالفعل: ركّز على المراحل من 5 لـ 9 عشان تنظّم الكود وتربط تطبيقاتك بـ Backend حقيقي.
محتاج إيه؟
كمبيوتر عادي (Windows أو macOS أو Linux) يشغّل Flutter SDK. لتشغيل التطبيق على iPhone هتحتاج Mac.
مش محتاج خبرة برمجة سابقة لو هتبدأ من أول مرحلة.
وقت ثابت كل أسبوع تكتب فيه كود بإيدك — ده أهم من عدد الساعات.
إمتى تتعلم إيه؟ إجابات سريعة
السؤال
الإجابة المختصرة
أبدأ Flutter منين؟
من أساسيات البرمجة بلغة Dart (المرحلة 1)، حتى لو هدفك Flutter بس. لو بتبرمج بلغة تانية، راجع أساسيات Dart بسرعة وادخل على Flutter.
إمتى أبدأ State Management؟
لما شاشتين أو أكتر يحتاجوا نفس البيانات — يعني بعد ما تبني تطبيق كامل بـ setState وتحس بحدوده (المرحلة 5).
إمتى أتعلم الـ APIs؟
بعد ما تقدر تبني واجهات وتتنقّل بين الشاشات وتفهم async و await (المرحلة 4).
إمتى أتعلم Firebase أو Supabase؟
بعد الـ APIs والـ State Management، لما تطبيقك يحتاج تسجيل دخول وبيانات أونلاين (المرحلة 6).
إمتى أبدأ أستخدم Git؟
من أول مشروع Flutter (المرحلة 3): Repository و commit و push على GitHub. الـ Branches والـ Pull Requests وشغل الفريق في المرحلة 8.
إمتى أتعلم Clean Architecture؟
بعد ما تبني تطبيقات حقيقية وتحس إن الكود بقى صعب يتعدّل — مش في البداية (المرحلة 7).
إمتى أبدأ أعمل مشاريع؟
من المرحلة 3. خلّي كل مرحلة تخلص بمشروع صغير كامل، وماتستناش لحد ما تخلص المسار كله.
أستخدم الـ AI في أنهي مرحلة؟
كمدرّس يشرحلك الأخطاء من أول يوم، وكمساعد في كتابة الكود بعد ما تقدر تبني تطبيق لوحدك (المرحلة 10).
المرحلة 0 قبل Flutter: أساسيات البرمجة وتجهيز بيئة الشغل
لو عمرك ما برمجت قبل كده، ماتبدأش بـ Flutter على طول. محتاج الأول تفهم يعني إيه برنامج بيتنفّذ سطر بسطر، ويعني إيه متغير وشرط وتكرار — وده هتتعلمه في المرحلة الجاية بلغة Dart نفسها. المرحلة دي هدفها إنك تجهّز أدواتك وتتعود على طريقة تفكير المبرمج.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
تسطيب Flutter SDK ومحرر زي VS Code أو Android Studio، وتشغيل أول مشروع على Emulator أو على موبايلك.
أوامر أساسية في الـ Terminal زي flutter doctor و flutter run، وتفهم هي بتعمل إيه.
إزاي تقرأ رسالة الخطأ لحد آخرها وتدوّر على سببها بدل ما تتجاهلها.
تشغيل التطبيق على Android ممكن من Windows أو macOS أو Linux، لكن تشغيله على iPhone محتاج Mac.
المفروض تقدر تبني
مشروع Flutter الافتراضي شغّال على جهازك، وتعدّل فيه نص وتشوف التغيير فوراً بالـ Hot Reload.
إمتى تنتقل للمرحلة اللي بعدها
لما flutter doctor يطلّعلك بيئة سليمة، وتقدر تفتح أي مشروع وتشغّله من غير مساعدة.
غلطة شائعة
إنك تقضي أسابيع في تجهيز الأدوات أو المقارنة بين المحررات. أي محرر مناسب في البداية — المهم تبدأ تكتب كود.
Dart هي اللغة اللي Flutter مكتوب بيها، وكل سطر في تطبيقك هيبقى Dart. عشان كده بتيجي الأول: لما تفهم اللغة، تركّز في Flutter على بناء التطبيق نفسه بدل ما تتلخبط بين مشكلة في اللغة ومشكلة في الـ Widget.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
المتغيرات وأنواع البيانات: String و int و double و bool.
الشروط (if و switch) والتكرار (for و while).
الدوال (Functions): الـ Parameters والقيمة اللي بترجع.
الـ Collections: List و Map و Set وإمتى تستخدم كل واحدة.
Null Safety: يعني إيه قيمة ممكن تكون null، وإزاي اللغة بتحميك منها قبل ما التطبيق يقع.
التعامل مع الأخطاء بـ try و catch.
المفروض تقدر تبني
برامج صغيرة في الـ Console: حاسبة، برنامج بيحسب متوسط درجات من List، أو قائمة مهام بسيطة بـ Map.
إمتى تنتقل للمرحلة اللي بعدها
لما تكتب دالة بتاخد List وترجّع نتيجة محسوبة من غير ما تبص على مثال، وتفهم ليه اللغة بتعترض لما تستخدم متغير ممكن يكون null.
غلطة شائعة
إنك تحفظ الـ Syntax من غير ما تكتبه بإيدك. كل مفهوم محتاج تمرين صغير تكتبه وتغلط فيه وتصلّحه.
كورس Dart في المسار بيبدأ من "هنكتب الكود فين؟" ويمشي على أنواع البيانات والشروط والتكرار والـ Collections و Null Safety والـ Exceptions قبل ما يوصل للـ OOP.
الـ OOP طريقة لتنظيم الكود في Classes و Objects، كل واحد مسؤول عن حاجة محددة. في Flutter كل Widget هو Class، ولما المشروع يكبر وتبقى عندك شاشات وموديلات وخدمات كتير، التنظيم ده هو اللي بيخلّي الكود مفهوم وسهل تعدّله.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
Classes و Objects و Constructors.
Inheritance: إزاي Class يورث من Class تاني.
Abstraction: الـ abstract classes والـ interfaces، وإمتى تحتاجهم.
Encapsulation: تخبّي التفاصيل الداخلية وتظهر اللي محتاجه بس.
Polymorphism: نفس الـ method بتتصرف بشكل مختلف حسب الـ Object.
Enums و Sealed Classes و Extensions.
المفروض تقدر تبني
موديلات بيانات لتطبيق حقيقي — مثلاً User و Product و Order — بعلاقات بينهم و methods بتحسب حاجات زي إجمالي الطلب.
إمتى تنتقل للمرحلة اللي بعدها
لما تقدر تشرح لحد تاني الفرق بين abstract class و class عادي، وتقسّم مشكلة صغيرة لكذا Class كل واحد ليه مسؤولية واحدة.
غلطة شائعة
إنك تعدّي على OOP بسرعة عشان توصل لـ Flutter. هترجعلها غصب عنك أول ما تقرأ كود Flutter أو تستخدم أي Package.
ليه الـ OOP بتفرق لما المشروع يكبر؟ في المشاريع الحقيقية الكود بيتقسّم على أكتر من شخص وبيتعدّل على مدار شهور، والـ Class اللي مسؤوليته واضحة هو اللي بيخلّي تعديل جزء ما يكسرش جزء تاني.
لو عايز تمشي المرحلتين دول بتمارين عملية من الصفر، ده بالظبط محتوى Dart & OOP.
المرحلة 3 أساسيات Flutter: الـ Widgets والـ Layouts والتنقل
هنا بتبدأ تبني واجهات. كل حاجة في Flutter عبارة عن Widget: النص والزرار والصفحة نفسها. المهارة الأساسية في المرحلة دي إنك تبص على تصميم وتعرف تقسّمه لـ Widgets صغيرة وتركّبها.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
Stateless و Stateful Widgets والفرق بينهم.
الـ Layout: Row و Column و Stack و Expanded، وإزاي تحل مشكلة الـ overflow.
القوائم (ListView) والصور والـ Theme، ومنها Light و Dark.
التنقل بين الشاشات (Navigation) وتمرير بيانات بينها.
الفورمز والتحقق من المدخلات، والـ Dialogs.
Responsive UI: شاشة شكلها سليم على موبايلات بأحجام مختلفة.
Reusable Widgets: تحويل أي جزء متكرر لـ Widget تستخدمه في أكتر من مكان.
حفظ بيانات بسيطة على الجهاز (زي Shared Preferences).
Git من أول مشروع: تعمل Repository، و commit بعد كل خطوة شغّالة، وترفع المشروع على GitHub بملف .gitignore مناسب لـ Flutter.
المفروض تقدر تبني
تطبيق من كذا شاشة بتصميم نظيف — مثلاً Portfolio شخصي، أو تطبيق مهام (Todo) بيحفظ البيانات على الجهاز ويدعم Light و Dark — ومرفوع على GitHub بتاريخ commits.
إمتى تنتقل للمرحلة اللي بعدها
لما تبص على تصميم شاشة (من Figma أو حتى صورة) وتقدر تبنيها لوحدك قريبة منه، وتنقل بيانات بين شاشتين من غير مشاكل.
غلطة شائعة
إنك تكتب الشاشة كلها في Widget واحد ضخم. أول ما الملف يطوّل، ابدأ قسّمه لـ Widgets أصغر بأسماء واضحة.
ماتستناش المرحلة 8 عشان تبدأ Git. الأساسيات — Repository و commit و push على GitHub — مكانها هنا من أول مشروع، وكورس Flutter نفسه فيه قسم عن Git و GitHub. المرحلة 8 بعدين بتنقلك لطريقة شغل الفرق.
أغلب التطبيقات الحقيقية بتجيب بياناتها من سيرفر. في المرحلة دي بتتعلم تكلّم API، تستقبل JSON وتحوّله لموديلات، وتعرض للمستخدم حالة التحميل والخطأ والبيانات الفاضية بشكل محترم.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
يعني إيه REST API، والـ HTTP methods زي GET و POST.
البرمجة غير المتزامنة: Future و async و await.
تحويل JSON لموديلات Dart والعكس.
مكتبات الـ Networking زي http و Dio، والـ Interceptors.
تجربة الـ API الأول بأداة زي Postman قبل ما تكتب كود.
التعامل مع الأخطاء: النت فاصل، السيرفر رجّع خطأ، البيانات ناقصة.
حالات الشاشة الأربعة: Loading و Error و Empty و Success.
Repository Pattern: فصل مصدر البيانات عن الواجهة.
المفروض تقدر تبني
تطبيق بيعرض بيانات حقيقية من API — مثلاً تطبيق أخبار بقائمة وصفحة تفاصيل — وبيتعامل صح مع انقطاع النت والأخطاء، وكل خطوة فيه commit على GitHub.
إمتى تنتقل للمرحلة اللي بعدها
لما تاخد Documentation لأي API عام وتبني عليه شاشة كاملة بالموديلات والحالات الأربعة، من غير ما التطبيق يقع في أي حالة.
غلطة شائعة
إنك تعرض البيانات وتنسى حالتَي الخطأ والفراغ. التطبيق اللي بيقع أول ما النت يفصل هو أول حاجة المستخدم بيلاحظها.
في كورس Flutter الجزء ده بيمشي بالترتيب: API و Postman، بعدين http و Dio والـ Interceptors، والـ Repository Pattern، ولحد دورة تسجيل دخول كاملة بـ Access Token و Refresh Token.
الـ State Management هو إزاي تطبيقك بيعرف إن بيانات اتغيّرت وبيحدّث الشاشات اللي معتمدة عليها. في الأول setState كفاية، لكن أول ما شاشتين أو أكتر يحتاجوا نفس البيانات، محتاج طريقة منظّمة.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
الفرق بين State خاصة بشاشة واحدة و State مشتركة في التطبيق كله.
ليه setState لوحدها بتبقى صعبة لما التطبيق يكبر.
فكرة رفع الـ State لأعلى ومشاركتها، و InheritedWidget اللي أغلب الحلول مبنية عليه.
حل واحد تفهمه كويس — زي Provider أو Bloc و Cubit — بدل ما تجرّب كل الحلول مرة واحدة.
فصل الـ Business Logic عن الـ UI.
المفروض تقدر تبني
نفس تطبيق المرحلة اللي فاتت، بس فيه بيانات مشتركة بين أكتر من شاشة — زي مستخدم مسجّل دخول أو سلة مشتريات — والشاشات بتتحدّث لوحدها.
إمتى تنتقل للمرحلة اللي بعدها
لما تقدر تشرح إمتى setState كفاية وإمتى لأ، وتنقل منطق شاشة من جوه الـ Widget لـ Class منفصل.
غلطة شائعة
إنك تقضي وقتك في المقارنة بين الـ Packages بدل ما تفهم الفكرة. مفيش حل واحد هو "الأحسن" لكل مشروع؛ اتعلم واحد كويس، والباقي هيبقى أسهل بكتير.
الترتيب المستخدم في كورسات المسار: InheritedWidget الأول عشان تفهم الفكرة من جوه، وبعدين Provider في مشروع كامل، وبعدين نقل نفس المشروع من Provider لـ Bloc و Cubit. وBloc بيرجع تاني في كورس Clean Architecture جوه طبقة الـ Presentation. ده ترتيب تعليمي، مش قاعدة لكل مشروع.
المراحل من 3 لـ 5 هي قلب Flutter: من أول Widget لحد تطبيقات كاملة بـ APIs و State Management.
المرحلة 6 Backend جاهز: Firebase و Supabase
لما تطبيقك يحتاج تسجيل دخول وقاعدة بيانات أونلاين وتخزين ملفات، مش لازم تكتب سيرفر من الصفر. Firebase و Supabase بيقدّموا Backend جاهز (Backend-as-a-Service) بتكلّمه من Flutter مباشرة.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
فكرة الـ BaaS: إمتى تكفيك، وإمتى تحتاج Backend خاص بيك.
Authentication: إيميل وباسورد، وتسجيل دخول بحسابات Social، وإدارة الـ Session.
قاعدة البيانات: قراءة وكتابة، وإن كل مستخدم يشوف بياناته هو بس.
Functions على السيرفر (Cloud Functions في Firebase أو Edge Functions في Supabase) للحاجات اللي مينفعش تتعمل جوه التطبيق.
الفروق بين Firebase و Supabase وإزاي تختار بينهم لمشروعك.
المفروض تقدر تبني
تطبيق بتسجيل دخول حقيقي وبيانات محفوظة أونلاين لكل مستخدم — زي تطبيق مدوّنة أو ملاحظات.
إمتى تنتقل للمرحلة اللي بعدها
لما تبني دورة Auth كاملة (تسجيل، دخول، خروج، واسترجاع الجلسة) وتضمن إن بيانات كل مستخدم محمية من الباقيين.
غلطة شائعة
إنك تبدأ Firebase أو Supabase قبل ما تفهم الـ APIs والـ async. هتلاقي نفسك بتنسخ كود من غير ما تفهم بيحصل إيه لما الشبكة تتأخر أو الطلب يفشل.
Firebase و Supabase الاتنين اختيارات شائعة لمطوري Flutter في المرحلة دي. اختار واحد وافهمه كويس: نفس الأفكار — الـ Auth وقاعدة البيانات وصلاحيات كل مستخدم — هتلاقيها في التاني.
المرحلة 7 تنظيم الكود: Clean Code و SOLID و Clean Architecture
Clean Architecture طريقة لتقسيم التطبيق لطبقات — Presentation و Domain و Data — كل طبقة ليها مسؤولية، بحيث تغيّر مصدر البيانات أو الواجهة من غير ما تكسر باقي التطبيق. لكنها مش نقطة البداية: المبادئ دي بتبقى منطقية لما تكون بنيت تطبيقات وحسّيت بمشكلة الكود اللي بيكبر ويبقى صعب يتعدّل.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
Clean Code: أسماء واضحة، ودوال صغيرة بتعمل حاجة واحدة.
مبادئ SOLID الخمسة بأمثلة عملية.
طبقات Clean Architecture: Domain و Data و Presentation.
Dependency Injection وفصل الاعتماديات بين الطبقات.
الـ Use Cases والـ Repositories.
عقلية الـ Testing: الكود المتقسّم صح هو كود سهل تختبره.
المفروض تقدر تبني
Feature كاملة — زي تسجيل دخول أو قائمة منتجات — مقسّمة على الطبقات، وتقدر تبدّل فيها مصدر البيانات من API لـ Local من غير ما تلمس الواجهة.
إمتى تنتقل للمرحلة اللي بعدها
لما تقدر تبرّر ليه كل ملف موجود في الطبقة اللي هو فيها، وتضيف Feature جديدة على نفس الهيكل من غير ما تنسخ مشروع جاهز.
غلطة شائعة
إنك تبدأ بـ Clean Architecture وانت لسه بتتعلم Flutter. هتقضي وقتك في فولدرات وطبقات لمشكلة لسه ما قابلتهاش، والمبادئ هتفضل نظرية.
قرارات الـ Architecture جزء من شغل أسامة الجندي كمهندس برمجيات. كورس Clean Architecture في المسار بيبدأ بمبادئ SOLID مبدأ مبدأ، وبعدين Clean Architecture على تطبيقين عمليين بطبقاتهم، مع Bloc في طبقة الـ Presentation.
أساسيات Git — Repository و commit و push — المفروض بدأتها من المرحلة 3 مع أول مشروع. المرحلة دي بتنقلك من الاستخدام الشخصي لطريقة شغل الفرق: كل Feature على Branch، والكود بيتراجع بـ Pull Requests، وتاريخ commits نضيف يقدر أي حد في الفريق يقراه.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
Branches: كل Feature أو Fix على Branch منفصل، والـ Merge لما يخلص.
Pull Requests والـ Code Review على GitHub.
حل الـ Merge Conflicts من غير ما تبوّظ شغلك أو شغل حد تاني.
تاريخ commits نضيف: commits صغيرة برسائل واضحة، و Rebase و Cherry-pick وإمتى تستخدم كل واحد.
الرجوع لنسخة قديمة من غير ما تخسر شغلك.
Workflows للشغل الجماعي على نفس المشروع.
المفروض تقدر تبني
مشروعك على GitHub بتاريخ commits واضح، و Feature اتعملت على Branch منفصل واتدمجت بـ Pull Request.
إمتى تنتقل للمرحلة اللي بعدها
لما تحل Merge Conflict من غير ما تخاف تبوّظ الشغل، وتفتح Pull Request نضيف يقدر حد تاني يراجعه.
غلطة شائعة
إنك تشتغل على Branch واحد وتعمل commit واحد كبير آخر اليوم اسمه "update". تاريخ الـ commits من أول الحاجات اللي بتوضّح طريقة شغلك لأي فريق.
كورس Git في المسار بيغطي الـ Branching والـ Merge والـ Conflicts والـ Rebase والـ Cherry-pick، وبعدين GitHub و Collaboration Workflows.
التطبيق اللي شغّال على جهازك غير التطبيق اللي بيستخدمه ناس كتير على أجهزة وشبكات مختلفة. المرحلة دي عن الفرق ده: الأداء، النشر على المتاجر، ومتابعة الأعطال بعد الإطلاق.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
الـ Debugging بأدوات Flutter DevTools.
الأداء: إعادة بناء الـ Widgets من غير داعي، والقوائم الطويلة، والصور التقيلة.
الفروق بين Android و iOS: الصلاحيات والإعدادات وسلوك كل منصة.
نسخة الـ Release وتوقيع التطبيق (Signing).
النشر على Google Play و App Store.
متابعة الأعطال (Crash Reporting) بعد الإطلاق، زي Firebase Crashlytics.
التحقيق في مشكلة ظهرت عند مستخدم ومش بتظهر عندك.
المفروض تقدر تبني
نسخة Release من تطبيقك متوقّعة ومنشورة — ولو على الاختبار الداخلي في Google Play — ومربوطة بأداة متابعة أعطال.
إمتى تنتقل للمرحلة اللي بعدها
لما توصل من كود على جهازك لتطبيق متاح لمستخدمين حقيقيين، وتقدر تحقق في Crash جالك من جهاز مش معاك.
غلطة شائعة
إنك تعتبر التطبيق خلص أول ما اشتغل على الـ Emulator. مشاكل كتير مش بتظهر غير في الـ Release build وعلى أجهزة وشبكات ضعيفة.
من خبرة أسامة الجندي في منتجات بيستخدمها ملايين المستخدمين: المشاكل اللي بتظهر لما المنتج يشتغل على Scale كبير مختلفة عن مشاكل مرحلة التطوير. المرحلة دي مالهاش كورس منفصل في المسار، والتوثيق الرسمي هو أحسن بداية ليها.
أدوات الـ AI بتسرّع الشغل فعلاً — في كتابة كود متكرر، وشرح أخطاء، ومراجعة كود — بس بتفترض إنك فاهم اللي بتعمله. لو الأساس مش موجود، مش هتعرف تميّز الإجابة الصح من الغلط.
تفاصيل المرحلة: هتتعلم إيه، تبني إيه، وإمتى تنتقل
هتتعلم إيه
كتابة Prompt واضح: السياق والهدف والقيود والمثال المطلوب.
ملفات قواعد المشروع (Project Rules) عشان الأداة تلتزم بأسلوب مشروعك.
استخدامه في الـ Debugging والـ Code Review وكتابة الـ Tests والتوثيق.
مناقشة قرارات الـ Architecture معاه كمساعد، مش كصاحب القرار.
Spec-Driven Development: تكتب المواصفات الأول، وبعدين الكود.
MCP: ربط أداة الـ AI بمصادر زي قاعدة بياناتك أو ملف التصميم.
المفروض تقدر تبني
Feature بتتبني بمساعدة الـ AI من مواصفات مكتوبة، ومعاها Tests، وانت فاهم وراجع كل سطر اتضاف.
إمتى تنتقل للمرحلة اللي بعدها
المرحلة دي مالهاش آخر، لكن العلامة الصح إنك تقدر ترفض اقتراح من الأداة وتشرح ليه غلط.
غلطة شائعة
إنك تستخدم الـ AI بدل ما تتعلم في المراحل الأولى. في البداية خليه يشرحلك الخطأ، مش يكتبلك الحل وخلاص.
الفكرة اللي كورس الـ AI مبني عليها: "الـ AI شريكك… مش بديلك". الكورس لأي مبرمج مهما كانت لغته، ومش خطوة إجبارية في مسار Flutter.
مفيش شهادة بتقولك إنك جاهز؛ اللي بيقول كده هو اللي تقدر تبنيه وتشرحه. قبل ما تقدّم على وظيفة Flutter Developer، اتأكد من الحاجات دي:
بنيت 2–3 تطبيقات كاملة بنفسك، مش نسخة من كورس — واحد منهم على الأقل بيكلّم API وفيه تسجيل دخول.
الكود على GitHub بتاريخ commits واضح وملف README بيشرح المشروع وإزاي يتشغّل.
تقدر تشرح قرارات مشروعك: ليه اخترت طريقة الـ State Management دي، وإزاي قسّمت الكود.
تطبيقاتك بتتعامل مع التحميل والخطأ والبيانات الفاضية، وتعرف تطلّع نسخة Release.
تقدر تقرأ كود حد تاني وتضيف عليه Feature — ده أقرب حاجة لشغلك اليومي في أي شركة.
المراحل من 7 لـ 10 بتفرق معاك في الشغل، لكن ماتستناش تخلصها عشان تبدأ تقدّم. وكورس Flutter فيه قسم كامل عن إزاي الشركات شغّالة ودور الـ Flutter Developer جوه الفريق.
أسئلة عن تعلم Flutter
ما هو Flutter؟
Flutter إطار عمل مفتوح المصدر من Google لبناء تطبيقات Android و iOS — وكمان الويب والديسكتوب — من كود واحد مكتوب بلغة Dart. يعني بدل ما تكتب تطبيقين منفصلين، بتكتب تطبيق واحد يشتغل على الاتنين.
هل Flutter مناسب للمبتدئين؟
أيوه، بشرط تبدأ بأساسيات البرمجة الأول. عشان كده الخارطة بتبدأ بـ Dart و OOP قبل Flutter: تدخل Flutter وانت فاهم اللغة اللي بتكتب بيها بدل ما تحفظ كود من غير ما تفهمه.
لازم أتعلم Dart قبل Flutter؟
لو دي أول لغة برمجة ليك: أيوه، ابدأ بـ Dart. لو عندك خبرة في لغة تانية، تقدر تبدأ Flutter على طول وترجع لتفاصيل Dart لما تحتاجها.
إمتى أبقى جاهز أقدّم على شغل Flutter؟
لما يبقى عندك 2–3 تطبيقات كاملة بنيتها بنفسك على GitHub، واحد منهم على الأقل بيكلّم API وفيه تسجيل دخول، وتقدر تشرح قرارات الكود فيها. التفاصيل في قسم "إمتى تبقى جاهز للشغل" فوق.
الشرح بالعربي ولا بالإنجليزي؟
الشرح بالعربي، والمصطلحات التقنية بالإنجليزي زي ما هتقابلها في الشغل وفي التوثيق الرسمي.
المسار بالكورسات بياخد وقت قد إيه؟
فيديوهات كورسات المسار مدتها 119 ساعة فيديو في 676 درس. ده وقت الفيديو بس، مش وقت التعلم: الوقت الفعلي بيعتمد على قد إيه بتطبّق بإيدك، والكورسات متاحة مدى الحياة فتقدر تمشي بالسرعة اللي تناسبك.