منشور

تطوير تطبيقات أندرويد

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

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

أهلاً بك في سلسلة دروس “تطوير تطبيقات أندرويد”!

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

تجهيز بيئة العمل

قبل البدء، عليك بتنصيب البرمجيّات التي سنعمل عليها سويةً، حيث ستحتاج إلى:

  1. تنصيب استديو أندرويد (Android studio)

  2. تنصيب آخر برمجيّات وأدوات SDK باستخدام مدير SDK

ملاحظة: على الرغم من أن معظم هذه الدروس تشرح التعليمات باستخدام استديو أندرويد، إلا أن جزء منها يعتمد على استخدام أدوات SDK عبر موجّه الأوامر.

قم بتنصيب المتطلّبات أعلاه ثم عد إلى هنا كي نبدأ سويةً.

إنشاء مشروع أندرويد

يحتوي مشروع أندرويد على جميع الملفّات التي تُشكّل الكود المصدريّ لتطبيق أندرويد.

سيوضِّح لك هذا الدرس عمليّة إنشاء مشروع جديد وذلك إمّا باستخدام استديو أندرويد أو باستخدام أدوات SDk من خلال موجِّه الأوامر. هيّا نبدأ

معلومة إضافيّة: SDK هي اختصار لـ Software Development Kit أو ما معناه “عِدّة تطوير البرمجيّات” وهي فعليّاً مجموعة من أدوات التطوير التي تتيح إنشاء تطبيقات لبرمجيّات أو أنظمة مُحدّدة.

إنشاء مشروع باستخدام استديو أندرويد

  1. قم بإنشاء مشروع جديد على استديو أندرويد:

    • إذا لم يكن لديك مشروع مفتوح مسبقاً، فاضغط على New Project في شاشة الترحيب (الشاشة الرئيسيّة للبرنامج).

    • إذا كان هناك مشروع مفتوح مسبقاً، فاختر New project من القائمة File في الأعلى.

    الآن يجب أن تكون ظهرت لديك نافذة Create New Project

  2. املأ الحقول الظاهرة على الشاشة ثم اضغط Next

    يُستحسن لسهولة استخدام هذه الدروس إدخال القيم التالية:

    • في حقل Application Name وهو اسم التطبيق الذي تريد بناؤه، أدخل حالياً My First APP

    • Company domain: تُزوّد القيمة المُدخلة في هذا الحقل مُعرّفاً يتم إرفاقه باسم الحزمة، سيتذكّر استديو أندرويد هذا المعرّف لكل مشروع جديد ستُنشئه.

    • Package name: هنا يُدخَل الاسم الكامل المُؤهِّل للمشروع (باتباع نفس قواعد تسمية الحِزَم في لغة برمجة جافا). يجب أن يكون اسم حزمتك فريد بين جميع الحزم المُنصَّبة على نظام أندرويد. يمكنك تعديل هذه القيمة (Edit) بشكل مستقل عن قِيَم الحقلين السابقين.

    قواعد التسمية: طبعاً أن تكون أحرف إنجليزيّة، وصغيرة، يُسمح بالأرقام والشرطة العلويّة - والسفليّة _ ولكن يجب ألّا يبدأ الاسم برقم. يجب على الشركات عكس اسم موقعهم المُستضيف للحزمة، فيجب مثلاً كتابة: com.example.mypackage لحزمة اسمها mypackge مُنشأة على موقع example.com وفي حال بدء اسم الحزمة برقم فيوضع شرطة سفليّة قبله، مثلاً موقع الحزمة على الإنترنت سيكون: 123name.example.com وبالتالي نُسمّي الحزمة: com.example._123name

    • Project location: هنا يُوضع مسار المجلّد الذي يحوي ملفات المشروع في حاسوبك.
  3. قم بالتأشير على المربع بجانب Phone and Tablets أسفل حقل Select the form factors your app will run on (أين أنك تريد لتطبيقك أن يعمل على الجوّالات والأجهزة اللوحيّة).

  4. بالنسبة لـ Minimum SDK، اختر API 8: Android 2.2 (Froyo)

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

    مستوى API: (بالإنجليزيّة API Level) وهو عدد صحيح يُعرّف تغييرات بنية API المُقدَّمة بواسطة إصدار أندرويد (بدأَ أولاً بـ 1 وازداد مع كل إصدار جديد لأندرويد). يمكنك الاطلّاع على جدول أسفل هذه الفقرة والموضِّح لإصدارات أندرويد ومستوى API الموافق لكل منها.

  5. أبقِِ على جميع الخيارات الأخرى (TV,Wear, and Glass) بدون تأشير، واضغط Next

  6. أسفل حقل Add an activity to <template>**, اختر **Blank Activity واضغط Next

  7. أسفل حقل Customize th Activity، قم بتغيير Activity Name إلى MyActivity. وسترى أن حقل Layout Name قد تغيّر إلى activity_my وحقل Title إلى MyActivity، كذلك Menu Resourcr Name يجب أن يصبح menu_my.

  8. اضغط على زر Finish لإنشاء المشروع.

    النشاط (Activity) هو أحد الملامح المُميِّزة لنظام أندرويد. تتيح الأنشطة للمستخدم الوصول لتطبيقك، وقد يكون هناك العديد من الأنشطة. سيحوي التطبيق غالباً على نشاط رئيسي وهو عند تشغيله من قبل المستخدم، ونشاط آخر وهو على سبيل المثال عندما يختار المستخدم محتوى ما لعرضه. ونشاطات أخرى تتضمن قيام المستخدم بالتنقل بين نوافذ وخيارات التطبيق أو إعطائه مهام لتنفيذها وما إلى ذلك.

    إنّ مشروع أندرويد الخاص بك الآن هو عبارة عن تطبيق بِدائيّ بسيط يحوي بعض الملفات الافتراضيّة. دعنا نُخصّص دقيقتين من وقتنا لإلقاء نظرة على أهم هذه الملفات (سأضع المسار الكامل للملف وذلك انطلاقاً من المجلد الأساسيّ للمشروع)

    app/src/main/res/layout/activity_my.xml

    هذا الملف التنسيقيّ بلاحقة xml هو للنشاط الذي أضفتَه عند إنشاءك للمشروع على استديو أندرويد. وباتّباع مراحل إنشاء المشروع الجديد، فإنّ استديو أندرويد يعرض هذا الملف مع كلٍّ من العرض النصّي وعرض واجهة المستخدم على الشاشة. يحوي هذا الملف بعض عناصر الواجهة الافتراضيّة المأخوذة من مكتبة التصميم في استديو أندرويد، من هذه العناصر الشريط الرئيسيّ للتطبيق وزر تفاعليّ، كما تتضمّن ملف تنسيقيّ منفصل يحوي المحتوى الأساسيّ.

    app/src/main/res/layout/content_my.xml

    ملف التنسيق هذا بلاحقة xml يكمن في الملف السابق (يتم استدعاؤه منه)، ويحوي بعض الإعدادات وعنصر للعرض النصّي والذي يعرض رسالة “Hello world!” أي بما معناه “أهلاً بكم” (وهي الرسالة الافتراضية بالإنجليزيّة لأي مشروع أو موقع وب جديد).

    app/src/main/java/com.mycompany.myfirstapp/MyActivity.java

    يَظهر في استديو أندرويد شريط لهذا الملف عندما تنتهي عمليّة إنشاء المشروع الجديد. عند تحديدك للملف سترى تعريف الصِنف للنشاط الذي أنشأتَه. عند بناءك وتشغيلك للتطبيق، فإن صنف Activity يبدأ النشاط ويُحمِّل ملف التنسيق الذي يعرض رسالة “Hello World!”.

    app/src/main/AndroidManifest.xml

    يُحدّد هذا الملف الملامح الأساسيّة للتطبيق ويُعرّف كلّ مكّوناتها. ستقوم بالرجوع لهذا الملف عند استكمالك لهذه الدروس لإضافة مكوّنات إضافيّة لتطبيقك.

    app/build.gradle

    يستخدم استديو أندرويد هذا الملف (Gradle) لتفسير وبناء تطبيقك (حيث تحتاج تطبيقات الحاسوب لتفسيرها (compile) للغة الآلة قبل تصديرها لتكون جاهزة للتشغيل). هناك ملف بنفس الاسم build.gradle لكل منظومة من مشروعك، بالإضافة إلى ملف build.gradle للمشروع بأكمله. ستكون _أنت_ عادةً مهتم بملف build.gradle الخاص بالمنظومة، وفي هذه الحالة نتكلّم عن الملف الخاص بمنظومة التطبيق. فيما يلي الإعدادات التي توضع بها اعتماديّات بناء تطبيقك، بما في ذلك إعدادات التكوين الإفتراضيّة defaultConfig:

    • compiledSdkVersion وهو إصدار المنصّة التي ستبني تطبيقك لها بحيث يدعم العمل عليها. تكون هذه محدّدة افتراضيّاً على آخر إصدار أندرويد متاح بالنسبة لأدوات SDK التي تستخدمها. (يجب أن يكون أندرويد 4.1 أو أحدث، إذا لم تكن هذه الإصدارات متاحة فعليك تنصيب أحدهم باستخدام مديرSDK “SDK Manager”) ما زال بإمكانك بناء تطبيقك بحيث يدعم إصدارات أقدم، ولكن ضبط هذا الخيار على الإصدار الأخير يتيح لك تفعيل المزايا الجديدة وتحسين تطبيقك لأفضل تجربة ممكنة للمستخدم على الأجهزة الأحدث.

    • applicationId وهو اسم الحزمة الكامل لتطبيقك والذي حدّدتَه خلال إنشاء المشروع الجديد.

    • minSdkVersion وهو أدنى إصدار SDK قمتَ بتحديده خلال إنشاءك للمشروع الجديد، وهو أقدم إصدار من أندرويد يدعمه تطبيقك.

    • targetSdkVersion يحدد أحدث إصدار أندرويد والذي قمتَ بتجربة تطبيقك عليه. يتوجّب عليك تجربة تطبيقك على الإصدارات الجديدة لأندرويد التي يتم إطلاقها، وتحديث هذه القيمة لتلائم آخر مستوى API وبالتالي الاستفادة من مزايا الإصدارات الجديدة.

    لاحظ أيضاً الملفات الفرعية ضمن /res والتي تحوي موارد تطبيقك:

    drawable-<density>/

    يحوي هذا المسار المجلدات لموارد الرسوميات (drawable resources) _عدا أيقونات التشغيل_ والمصممة لأبعاد (densities) مختلفة.

    layout/

    يحوي هذا المجلّد الملفّات التي تُعرّف واجهة المستخدم لتطبيقك، مثل ملف activity_my.xml والمذكور أعلاه، والذي يصف التنسيق الأساسيّ لصنف MyActivity

    menu/

    مجلد الملفّات التي تُعرّف عناصر قائمة التطبيق.

    mipmap/

    توجد أيقونات المُشغّل في هذا المجلد بدلأ من المجلد drawable/ . حيث يحوي هذا المجلد صورة ic_launcher.png والتي تظهر عند تشغيل التطبيق الإفتراضيّ (الغير مُخصَّص)

    vlaues/

    مجلد لملفات xml الأخرى والتي تحوي مجموعة من الموارد، مثل تعريفات الألوان والعبارات.

تم إيقاف ترجمة باقي الدروس نظراً لوجود بدائل في المواقع العربية.

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.