كيفية تثبيت وإعداد فلاتر على أوبونتو 16.04 فأحدث لتطوير تطبيقات أندرويد

دقائق القراءة: 7

مقدمة: لماذا يُعد Flutter خيارًا قويًا لتطوير التطبيقات؟

يُعد Flutter إطار عمل مبنيًا على لغة Dart، ويُستخدم لتطوير الواجهات الأمامية للتطبيقات بكفاءة عالية. وقد برز بشكل خاص في تطوير تطبيقات الهواتف متعددة المنصات، كما يواصل التوسع ليكون خيارًا عمليًا لتطبيقات الويب وسطح المكتب أيضًا.

تكمن قوة Flutter في أنه يوفّر طبقة غنية من مكونات واجهة المستخدم، ما يسمح ببناء تطبيقات تبدو قريبة جدًا من التطبيقات الأصلية. وعند الحاجة إلى وظائف أعمق مرتبطة بالنظام، يمكن دمج منطق إضافي باستخدام Kotlin أو Swift أو غيرها من اللغات الرسمية الخاصة بكل منصة.

وعلى الرغم من أن مفهوم التطوير متعدد المنصات ليس جديدًا، فإن كثيرًا من الحلول السابقة كانت تعتمد على WebView، وهو ما كان يفرض قيودًا على الأداء والتكامل مع النظام. أما Flutter فيقدّم توازنًا ممتازًا بين سهولة التطوير والأداء العالي، مع مرونة كبيرة عند التعامل المباشر مع قدرات نظام التشغيل.

في هذا الدليل العملي، ستتعرف على كيفية إعداد جهاز يعمل بنظام Ubuntu 16.04+ لتطوير تطبيقات Android باستخدام Flutter، بدءًا من تثبيت الإطار نفسه، ومرورًا بإعداد Java وAndroid Studio، وانتهاءً بتشغيل المحاكي أو تجربة التطبيق على جهاز فعلي.

شعار فلاتر المستخدم في شرح تثبيت وإعداد Flutter على نظام أوبونتو

كيفية تثبيت Flutter على أوبونتو

أسهل طريقة لتثبيت Flutter على توزيعات أوبونتو الحديثة هي عبر متجر Snap. وإذا كنت تستخدم Ubuntu 16.04 أو إصدارًا أحدث، فمن المرجح أن أمر snap متوفر لديك مسبقًا.

واجهة توضح استخدام snap لتثبيت Flutter على أوبونتو

ثبّت Flutter بالأمر التالي:

sudo snap install flutter --classic

بعد انتهاء التثبيت، نفّذ فحصًا شاملًا للتأكد من سلامة الإعدادات:

flutter doctor -v

نتيجة أمر flutter doctor بعد تثبيت Flutter على أوبونتو

يعرض لك الأمر flutter doctor حالة بيئة العمل، ويكشف العناصر الناقصة مثل Android Studio أو التراخيص أو أدوات التطوير الضرورية.

تثبيت Java وإعداد المتغير JAVA_HOME

يعتمد Android Studio على وجود بيئة Java عاملة. ولضمان أعلى قدر من التوافق مع Flutter، يُفضّل استخدام OpenJDK 8 في هذا النوع من الإعدادات، خصوصًا على الأنظمة الأقدم.

ابدأ بتحديث الحزم وتثبيت OpenJDK 8:

sudo apt-get update && sudo apt-get install openjdk-8-jdk

بعد التثبيت، ستحتاج إلى معرفة مسار إصدار JDK المثبت على جهازك:

sudo update-alternatives --config java

اختر الإصدار المناسب من القائمة، ثم اضبط المتغير JAVA_HOME بحيث يشير إلى مجلد التثبيت الأساسي من دون الجزء /bin.

# JAVA_HOME=<your_java_installation_path>, same as below if you followed instructions
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
# my local path after installing openjdk-8

echo "JAVA_HOME=\"$JAVA_HOME\"" >> ~/.bashrc
# sets JAVA_HOME env var for current user

echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.zshrc
# adds java's binaries to your path

source ~/.bashrc && echo $JAVA_HOME
# verifies that the variable was perenially set

من المهم هنا الانتباه إلى الصدفة التي تستخدمها. فإذا كنت تعتمد على bash، فالأفضل أن تضيف إعدادات المسار إلى ملف ~/.bashrc. وإذا كنت تستخدم zsh، فملف ~/.zshrc هو المكان الأنسب.

لماذا يُعد JAVA_HOME مهمًا؟

تبحث أدوات كثيرة عن Java من خلال المتغير JAVA_HOME بدلًا من الاكتفاء بالمسار العام للنظام. لذا فإن ضبطه بشكل صحيح يقلل الأعطال المستقبلية أثناء بناء المشاريع أو تشغيل المحاكي أو تثبيت الحزم.

تثبيت Android Studio وربطه مع Flutter

الخطوة التالية هي تثبيت Android Studio، لأنه البيئة الأكثر شيوعًا لتطوير تطبيقات Android باستخدام Flutter. بعد تنزيل الحزمة، فكّ ضغطها داخل المسار /usr/local/:

sudo tar -C /usr/local -zxvf ~/Downloads/<android_studio_package>.tar.gz

بعد ذلك، شغّل برنامج التثبيت:

bash /usr/local/android-studio/bin/studio.sh

اتبع خطوات المعالج حتى تصل إلى الشاشة الرئيسية. من الزاوية السفلية اليمنى، افتح قسم الإعدادات ثم انتقل إلى Plugins.

نافذة الإضافات في Android Studio لتثبيت إضافة Flutter

ثبّت الإضافة الرسمية Flutter المنشورة من flutter.dev:

إضافة Flutter الرسمية داخل Android Studio

سيطلب منك البرنامج تثبيت إضافة Dart أيضًا، وهي مطلوبة لأن Flutter يعتمد عليها. وافق على ذلك، ثم أعد تشغيل Android Studio.

بعد إعادة التشغيل، ستظهر لك إمكانية إنشاء مشروع Flutter جديد. اختر Flutter Application ثم انتقل إلى الشاشة التالية لتحديد اسم المشروع ومكانه ووصفه، مع ضبط مسار Flutter SDK.

في كثير من الحالات، سيكون مسار الحزمة المثبتة عبر snap على النحو التالي:

/home/<your_user_name>/snap/flutter/common/flutter

شاشة إعداد مشروع Flutter وتحديد مسار Flutter SDK في Android Studio

إذا لم تتأكد من المسار الصحيح، شغّل الأمر التالي:

flutter doctor -v

عند نجاح الإعدادات، ستصل إلى واجهة المشروع الابتدائية:

واجهة مشروع Flutter الجديد داخل Android Studio

قبول تراخيص أندرويد وتجنب مشاكل الصلاحيات

قبل البدء الفعلي في تشغيل التطبيقات، يُنصح بقبول تراخيص Android والتأكد من أن ملفات Flutter المحلية مملوكة للمستخدم الحالي، حتى لا تظهر لاحقًا أخطاء مرتبطة بالصلاحيات.

flutter doctor --android-licenses
# accept Google's licenses, necessary to build the app

sudo chown -R $USER:$USER /home/$USER/snap/flutter
# confirm you are the owner of local flutter

بهذا تصبح بيئة Android Studio جاهزة تقريبًا للعمل مع مشاريع Flutter.

إنشاء اختصار للتطبيق في سطح المكتب

لتحسين سهولة الوصول إلى البيئة، يمكنك تفعيل اختصار Desktop Entry من داخل Android Studio عبر المسار Tools > Create Desktop Entry.

خيار إنشاء اختصار Android Studio على سطح المكتب في أوبونتو

تفعيل التسريع العتادي للمحاكي عبر KVM

إذا كنت تريد تشغيل محاكي Android بسلاسة على أوبونتو، فمن الضروري الاستفادة من التسريع العتادي باستخدام KVM. هذا الخيار يقلّل استهلاك الموارد ويُحسّن سرعة الإقلاع والأداء داخل الجهاز الافتراضي.

ابدأ بالتحقق من دعم جهازك للأمر kvm-ok. إذا كان المعالج من Intel أو AMD، فغالبًا ستجد أن الميزة مدعومة.

بعد التأكد من إمكانية استخدام KVM، نفّذ الأوامر التالية لإعداد الحزم والمجموعات اللازمة:

sudo apt update
# update repositories

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
# base packages

sudo addgroup kvm && sudo addgroup libvirtd
# create user authorization groups

sudo adduser $USER kvm && sudo adduser $USER libvirtd
# add current user to auth groups

sudo virsh -c qemu:///system list
# checks if virtualization is ok
# if everything went fine, your output will be something like:
#
# Id   Name   State
#----------------------------------------------------

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

إنشاء محاكي Android Emulator لتجربة تطبيقات Flutter

افتح مشروعك داخل Android Studio، ثم اضغط على AVD Manager من أعلى الواجهة:

زر AVD Manager في Android Studio لإنشاء جهاز أندرويد افتراضي

اختر Create Virtual Device، ثم حدّد هاتفًا مناسبًا من قائمة الأجهزة. من الأفضل اختيار جهاز يدعم Play Store إذا كنت تتوقع الحاجة لذلك لاحقًا.

بعدها انتقل إلى قائمة صور النظام System Images، ثم نزّل الإصدار المطلوب من أندرويد وحدّده بعد اكتمال التنزيل.

قائمة صور نظام أندرويد لاختيار نسخة المحاكي في Android Studio

يمكنك تعديل خصائص الجهاز الافتراضي مثل:

  • اتجاه الشاشة عند التشغيل.
  • حجم الذاكرة RAM.
  • الدقة وبعض الإعدادات المتقدمة.

إذا لم تكن بحاجة لتخصيص إضافي، يكفي الضغط على Finish.

عند النجاح، سيظهر الجهاز في نافذة مدير الأجهزة الافتراضية:

الجهاز الافتراضي بعد إنشائه داخل Android Virtual Device Manager

للعودة إلى المشروع، اختر الجهاز من القائمة المنسدلة المجاورة للملف main.dart، ثم اضغط زر التشغيل الأخضر لتشغيل التطبيق عليه.

إذا لم يظهر المحاكي في القائمة مباشرة، افتح نافذة AVD Manager وشغّله أولًا من زر التشغيل الموجود ضمن عمود actions.

تشغيل تطبيق Flutter على محاكي أندرويد داخل Android Studio

إزالة شارة debug من التطبيق

إذا ظهرت لك شارة debug في الزاوية العليا من التطبيق أثناء التطوير، فيمكنك إخفاؤها بإضافة الخاصية التالية داخل MaterialApp:

debugShowCheckedModeBanner: false

استخدام هاتف أندرويد فعلي لاختبار التطبيق

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

لذلك تحتاج إلى استخدام ADB، وهو اختصار لـ Android Debug Bridge. وتوفّر Android Studio هذه الأداة ضمن حزمة التطوير، لذا لا حاجة غالبًا لتثبيتها من مصدر آخر.

لإضافة مسار ADB إلى بيئة المستخدم وتشغيل الخدمة، استخدم:

echo 'export PATH=$PATH:$HOME/Android/Sdk/platform-tools' >> ~/.bashrc
# adds adb to path

adb start-server
# launches adb server

adb devices
# lists connected devices

قد تظهر لك أخطاء تتعلق بالصلاحيات أو بقواعد udev. لحل ذلك، أضف المستخدم الحالي إلى مجموعة plugdev، ثم نزّل ملف القواعد المناسبة:

# add user to plugdev group
sudo usermod -aG plugdev $LOGNAME

# downloads a very thorough UDEV rules file into the appropriate directory
sudo wget -O /etc/udev/rules.d/51-android.rules https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/android/51-android.rules

# gives reading permission to the UDEV android file
sudo chmod a+r /etc/udev/rules.d/51-android.rules

بعدها أعد تشغيل جلسة المستخدم، ثم نفّذ الأمر adb devices مجددًا. إذا استمرت مشكلة مرتبطة بـ udev، فقد تحتاج إلى إضافة معرّف الشركة المصنّعة لهاتفك يدويًا داخل الملف /etc/udev/rules.d/51-android.rules، وتحديدًا في قيمة ATTR{idVendor}.

تفعيل وضع المطور وميزة USB Debugging على الهاتف

إذا ظهر جهازك في ناتج adb devices على أنه unauthorized، فهذا يعني أنك لم تمنح الحاسوب إذن تصحيح الاتصال عبر USB بعد.

لفتح وضع المطور على هاتف أندرويد:

  1. افتح Settings.
  2. انتقل إلى About Phone.
  3. اضغط على Build number خمس أو ست مرات حتى تظهر رسالة تفيد بأنه تم تفعيل وضع المطور.

تفعيل وضع المطور في هاتف أندرويد عبر Build number

بعد ذلك، عد إلى الإعدادات وافتح قسم System، وستجد خيار Developer Options ظاهرًا:

ظهور خيار Developer Options بعد تفعيل وضع المطور في أندرويد

ادخل إليه وفعّل خيار USB debugging:

تفعيل USB debugging من إعدادات المطور على هاتف أندرويد

الآن صِل الهاتف بالحاسوب باستخدام كابل USB، ثم شغّل:

adb devices

إذا سار كل شيء كما ينبغي، سيظهر الجهاز ضمن القائمة، وستتمكن من اختياره داخل Android Studio من قائمة الأجهزة نفسها التي تُستخدم لاختيار المحاكي. بعد ذلك اضغط زر التشغيل، وسيعمل التطبيق مباشرة على الهاتف.

نصائح مهمة لتجنب الأخطاء أثناء إعداد Flutter على أوبونتو

  • احرص على تشغيل flutter doctor -v بعد كل خطوة رئيسية لمراجعة حالة البيئة.
  • لا تخلط بين نسخ متعددة من ADB أو Java ما لم تكن لديك حاجة واضحة لذلك.
  • تأكد من صحة المسارات داخل ملفات الإعداد مثل .bashrc و.zshrc.
  • بعد تعديل الصلاحيات أو المجموعات، أعد تسجيل الدخول حتى تُفعّل التغييرات.
  • إذا كان المحاكي بطيئًا جدًا، فغالبًا المشكلة مرتبطة بعدم تفعيل KVM.

الخلاصة التقنية

إعداد بيئة Flutter على Ubuntu 16.04+ ليس معقدًا، لكنه يتطلب تنفيذ الخطوات بالترتيب الصحيح: تثبيت Flutter، ثم تجهيز Java، وبعدها إعداد Android Studio والمُحاكي أو الهاتف الفعلي. من الناحية التقنية، أكثر أسباب التعطّل شيوعًا ترتبط بالمسارات والصلاحيات والتراخيص، لذلك فإن التحقق المتكرر باستخدام flutter doctor يمنحك بيئة مستقرة وجاهزة للتطوير الفعلي. إذا أُنجزت هذه الخطوات بدقة، فستمتلك أساسًا قويًا للبدء في بناء تطبيقات حديثة وعالية الأداء باستخدام Flutter.

اترك تعليقاً

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