---
title: "خطواتي الأولى في Flutter كمطوّر Android"
description: "يوميات قصيرة عن خطواتي الأولى في عالم تطوير Flutter."
canonical: https://oozou.com/ar/blog/an-android-developer-s-first-steps-in-flutter-development-73
locale: ar
date: 2020-07-24
author: "OOZOU Team"
---

# خطواتي الأولى في Flutter كمطوّر Android

> يوميات قصيرة عن خطواتي الأولى في عالم تطوير Flutter.

Published: 2020-07-24 · Author: OOZOU Team (Engineering) · 4 min read

أعمل مطوّرًا لتطبيقات Android منذ فترة لا بأس بها، وتتركز معرفتي أساسًا في تطوير Android. ومؤخرًا رأيت أن الوقت قد حان لإضافة مهارات جديدة إلى رصيدي. خلال السنوات القليلة الماضية، تنقلت بين محاولات لتعلّم تقنيات وأطر عمل (frameworks) مختلفة، ثم لفت Flutter انتباهي.

كنت أعرف طوال الوقت أن إطار العمل هذا متعدد المنصات (cross-platform) موجود، لكنني ظللت أجد الأعذار لعدم دراسته بجدية. أُتيحت لي فرصة تجربة Flutter حين كان في مرحلة alpha/beta، لكنها كانت مجرد تجربة في مشروع صغير. ثم في العام الماضي، انتشرت أخبار كثيرة عن Flutter. وبصفتي مطوّرًا لتطبيقات الجوال الأصلية (native)، رأيت كثيرًا من التعصب ضد التطوير متعدد المنصات. ليس لدي أي موقف سلبي منه، بل كنت أرغب دائمًا في دخول عالمه. لذلك قررت أن أدرس Flutter وأرى بنفسي إن كان سيعجبني أم لا.

**لماذا يثير Flutter الاهتمام**

- يعمل Flutter على منصات متعددة بالطبع! فهو إطار عمل متعدد المنصات لا يدعم Android وiOS فحسب، بل الويب وسطح المكتب أيضًا.
- أداؤه واستقراره قريبان من التطوير الأصلي. بصراحة، بالكاد أستطيع التمييز بين تطبيق مطوَّر بـ Flutter وتطبيق أصلي. انظروا إلى التطبيقات المطوَّرة بـ Flutter(https://flutter.dev/showcase)
- يدعم موقع Material Design الرسمي(https://material.io) إطار Flutter، ويسهّل تطوير تطبيق يتبع إرشادات Material Design. وكنت أرى دائمًا رابط Flutter أثناء تصفحي الموقع بحثًا عن توثيق Material Design الخاص بـ Android.
- مجتمع Flutter ينمو بسرعة. ووفقًا لتقرير [OCTOVERSE](https://octoverse.github.com/)، كان **Flutter** في عام 2019 من أسرع المشاريع مفتوحة المصدر نموًا. وفي تايلاند توجد مجموعة على Facebook لمطوّري Flutter تضم نحو ستة آلاف عضو.**البداية**

بدأت أولًا بالاطلاع على التوثيق الرسمي. فيه أدلة للمطوّرين القادمين من منصات مختلفة، ويقارن عناصر Flutter بما يقابلها في Android، وهو ما يسهّل الفهم.

ثم هناك فرقان رئيسيان: اللغة، وطريقة تعريف واجهة المستخدم. يستخدم Android لغتي Java/Kotlin لتطوير التطبيقات، بينما يستخدم Flutter لغة Dart. ويتعامل Flutter مع واجهة المستخدم بأسلوب تصريحي (declarative)، بينما أستخدم في Android ملفات XML لإنشاء الواجهة، وهو ما يُعرف بالأسلوب الأمري (imperative).
في الواقع، أصبح أسلوب الواجهة التصريحي توجهًا رائجًا مؤخرًا. ففي تطوير Android الأصلي، أطلقت Google مكتبة [**Jetpack Compose**](https://developer.android.com/jetpack/compose) لتتيح لمطوّري Android إنشاء الواجهات بأسلوب تصريحي، وما زالت المكتبة قيد التطوير. أما في تطوير iOS، فهناك Swift UI الذي يحقق هذا الأسلوب.

**الأسلوب الأمري مقابل التصريحي**

إليكم خلاصتي بعد القراءة عن هذين الأسلوبين. في الأسلوب الأمري لبرمجة الواجهات، نعرّف الواجهة كاملة أولًا، ثم نستخدم الدوال لاحقًا لتعديلها، مثل تعيين نص أو تغيير لون. أما في الأسلوب التصريحي، فإعدادات العرض (التي تُسمى Widgets في Flutter) غير قابلة للتعديل، وتعمل كمخططات خفيفة للواجهة. وحين تتغير حالة الواجهة، يُعاد بناء إعدادات العرض لتكوين إعدادات جديدة.

بعد قراءة التوثيق لفترة، قررت البحث عن دورة في تطوير Flutter. ولحسن الحظ، هناك دورة تمهيدية مجانية تقدمها App Brewery (https://www.appbrewery.co/p/intro-to-flutter). لم أنهِ منها سوى جزء التثبيت قبل كتابة هذا المقال، لكن الدورة حتى الآن منظمة جيدًا.

أظن أنني سأدرس المزيد عن Dart قبل متابعة الدروس. وأنوي كتابة سلسلة مقالات كيوميات لتقدمي في تعلّم Flutter، فهذا يساعدني على استيعاب المعرفة، وقد يفيد الآخرين أيضًا. وسيكون المقال القادم عن الانتقال من Java/Kotlin إلى Dart.

---

Contact OOZOU: hello@oozou.com · +66 2544 0000 · https://oozou.com/ar/contact

More for AI agents: https://oozou.com/llms.txt · every page has a markdown twin at its URL plus ".md"
