الجمعة، 26 فبراير 2016

[دوره برمجه تطبيقات الاندرويد] الدرس الثانى - اندرويد استوديو | Android studio







بسم الله الرحمن الرحيم 

كما ذكرت سابقا سنستحدم برنامج Android studio فى انشاء تطبيقاتنا ,وهو ال IDE الوحيد الذى نستطيع العمل عليه 
بعد ان ازالت شركه جوجل الدعم عن Eclipse 

نبدأ , قم بتشغيل البرنامج , ستظهر هذه النافذة في حاله عدم وجود مشاريع مفتوحة, وفى حالة وجود مشاريع مفتوحه مسبقا يجب إغلاقها لتظهر هذه النافذة



الارقام توضح الاتى : 

1- البدأ بإنشاء مشروع جديد.
2 - فتح مشروع موجود مسبقا , مبنى على الاندرويد ستوديو.
3 - جلب مشاريع من عدة مواقع مباشره للبرنامج سيتم شرح هذه الطريقه فى موضوع مستقل .
4 - استيراد مشاريع اندرويد مبنية على eclipse .
5 - استيراد نماذج مشاريع اندرويد بسيطة أو قصيرة جاهزة.
6 - الاعدادات, الـ SDK والاضافات وغيرها .
7 - تعليمات لكيفية استخدام بيئة IntelliJ وهي التي يعمل عليها البرنامج .
8 - الاصدار الحالي لديك, و للتحقق من وجود اي تحديثات للبرنامج.
9 - المشاريع التي تم فتحها مؤخرا .

نقوم باختيار ( انشاء مشروع جديد ) ونقوم باتباع خطوات انشاء مشروع جديد , التى ذكرتها فى الدرس السابق .
بعد الانتهاء ستظهر لنا الشاشه الرئيسيه للبرنامج 




1 - القائمة الرئيسية :
القائمة الرئيسية للبرنامج, وتحتوي على عدة أوامر مختلفة, منها فتح وحفظ وإنشاء المشاريع, والاعدادات, وتنظيف المشروع وإعادة بنائه, وتصديره لملف .apk والادوات وتحديث البرنامج وغيرها الكثير..

2 - شريط الادوات :
شريط الادوات الرئيسي, ويحتوي على الازرار الاكثر استخداما , وهي مهمة جدا . منها حفظ المشروع, مع العلم إن الاندرويد ستوديو يحفظ الملفات بشكل تلقائي, و امر النسخ واللصق وتشغيل المشروع وبناء التطبيق وفتح الـ SDK إلخ .

3 - شريط التصفح :
شريط التصفح أو التنقل للوصول السريع لملفات المشروع والتنقل بينها لتحريرها.



أمور مهمه قبل البدأ بالبرمجه الفعليه :

1 - الاكواد البرمجية بلغة الجافا تكتب في ملفات .java ونطلق عليها كلاس, الكلاسات لها أنواع مختلفة, ومنها الاكتفتي | Activity الذي يرتبط بشاشة او واجهة يراها المستخدم ويتفاعل معها. إذا سوف نطلق على الملف البرمجي الذى يحتوى على اكواد الجافا ومرتبط باللياوت اسم – Activity .

2 - اللياوت Layout هي الواجهة التي تظهر للمستخدم, ومبنية بلغة xml إذا سوف نستخدم xml للتصميم والتنسيق و الجافا java للبرمجة إي اعطاء الوامر.

3 - كل عنصر أو كائن مثل الزر او الصورة او النص إلخ, له خصائص منها الطول والعرض والحجم إلخ.

4 - كل عنصر نريد استخدامه برمجيا واعطائه أوامر يجب إن نضع داخله خاصية id لنقوم بربطه بملف الجافا من خلل هذا المعرف.

5 -لا تضع معرف id متكرر لاكثر من عنصر فى نفس اللياوت.

6 - كل لياوت او واجهة تريد اظهارها للمستخدم يجب أن يكون لها اكتفتي مرتبط بها.

7 - كل اكتفتي في مشروعك يجب إضافته في ملف اسمه AndroidManifest سوف يتم شرح الملف ولماذا نضع فيه الاكتفتي في درس منفصل.

8 - الاسماء التي تضعها للعناصر او الملفات او الكتفتي او اللياوت إلخ, تجنب استخدام غير الحروف الانجليزية, كذلك لا تبدأ الاسماء بالارقام, ولا تستخدم الفراغات.

9 - تستطيع إثناء كتابة الكواد استخدام الاكمال التلقائي Auto complete ليظهر لك خيارات إكمال للكود الذي تحاول كتابته ولو كان كلمة واحدة , استخدم Space + Ctrl.

10 -لغة xml تتبع النظام الشجري آباء وأبناء, وتستخدم هنا مصطلح Parent للاشارة إلى الاب أو العنصر الكبير الذي يحتوي على العنصر المقصود او ال Child الابن.

11 - يوجد الكثير من المكتبات الجاهزة Libraries التي تضيفها لمشروعك لتستفيد منها في بعض المزايا.

12 - يوجد شركات او مواقع تقدم API أو SDK لتستفيد من خدمات الموقع في تطبيقاتك كالفيس بوك - جوجل الخ 




بعد إنشاء أول مشروع تطبيق اندرويد تظهر هذه النوافذ : 



نلاحظ إنه لدينا ملفات جاهزة مفتوحة وهي الاكتيفتي التي يتم تشغيلها في بداية تشغيل التطبيق والتي هي كذلك مرتبطة باللياوت أو الواجهة التي سوف تظهر للمستخدم

1 - MainActivity / الاكتفتي الرئيسيه 
كما ذكرنا سابقا يحتوي على أكواد بلغة الجافا, يتم تنفيذها في بداية تشغيل التطبيق.



الكود الافتراضي للاكتقتي :

كود:
package com.ganna.helloandroid;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu; import android.view.MenuItem;
// دالة الون كريت وهي الدالة التي يتم تنفيذها في بداية تشغيل هذه الاكتفتي
public class MainActivity extends AppCompatActivity { @Override
// يتم ربط الاكتيفيتى باللياوت عن طريق هذه الداله
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
}
setContentView(R.layout.activity_main);
}
2 - xml.main_activity / اللياوت

هو ملف التصميم او التنسيق للواجهة, وهذا اللياوت هو الواجهة الرئيسية التي سوف يتم استدعائها من قبل الاكتفتي اي ان هذه
الواجهة هي التي سوف تظهر للمستخدم عند بداية تشغيل التطبيق

الكود الموجود داخل الواجهة :

كود:
<RelativeLayout xmlns: android="http://schemas.android.com/apk/res/android-
xmlns: tools="http://schemas.android.com/tools-
android:paddingBottom="@dimen/activity_vertical_margin-
android:layout_width="match_parent- android:layout_height="match_parent-
android:paddingRight="@dimen/activity_horizontal_margin-
android:paddingLeft="@dimen/activity_horizontal_margin- android:paddingTop="@dimen/activity_vertical_margin-
android:text="Hello Android!" />
tools:context=".MainActivity"> <TextView android:layout_width="wrap_content- android:layout_height="wrap_content-
</RelativeLayout>
لغة XML تستخدم النمط الشجري في التنسيق, بمعنى عناصر تحتوي اسفلها او داخلها عناصر اخرى, بمعنى اب وابناء .. وكما هو ظاهر لنا في الكود وسم البداية ووسم النهاية للاب وهو اللياوت الرئيسي من نوع RelativeLayout ويوجد انواع اخرى وهذا النوع تستطيع وضع العناصر داخله بشكل حر في إي مكان على الشاشة. وبداخله عنصر من نوع TextView اى نص ومكتوب داخله عبارة Android Hello كما شاهدنا في صورة النتيجة السابقة لانشاء اول مشروع, وأما بالنسبة للخصائص الاخرى لكل العناصر سوف يتم شرحها بشكل مستقل





بعد إنشاء المشروع الاول على الاندرويد ستوديو ظهرت لنا الملفات والمجلدات التالية لمشروعنا كما في الصورة



بالنسبة لـ مجلد Values + ملف AndroidManifest سوف يتم شرح كل منها بشكل مستقل 

مجلد java :
يحتوي على ملفات الجافا, والكلاسات التى سنحتاجها فى التطبيق .
اهم كلاس لدينا هو الاكتفتي , هي التي سوف نتصل من خلالها باللياوت او بالواجهات والعناصر لنبدأ بإعطاء الاوامر البرمجية لها.

مجلد res :
بمعنى resources الموارد او المصادر التي تستخدمها في تطبيق, بمعنى آخر كل ما يراه المستخدم أمامه أثناء تصفح التطبيق, الواجهات, قائمة الخيارات, ايقونة التطبيق, الصور المستخدمة في التطبيق, الصوتيات, الحركات او التأثيرات, اللوان, النصوص, الثيم أو الستايل إلخ
وهو يحتوي على عدة مجلدات لتوزيع هذه الموارد, بالشكل التالي :

drawable :
المجلد الذي تضع فيه الصور التي تريد استخدامها في التطبيق + ملفات xml
للتنسيق, مثل تأثير الزر بعد الضغط عليه, أو خلفية للتطبيق متعددة الالوان إلخ.

layout :
المجلد الذي يحتوي على ملفات اللياوت أو الواجهات التي تظهر للمستخدم وهو
من أكثر المجلدات التي سوف تستخدمها . 

mipmap :
يتم تلقائيا وضع أيقونة التطبيق في هذا المجلد, كما تستطيع استخدامه لوضع
الايقونات التي تستخدمها مثل زر قائمة الخيارات زر البحث إلخ



Gradle scripts : 
ما يهمنا هو module app : والذي بداخله نضع قيم أساسية للمشروع يوضع داخله المعرف الخاص بالتطبيق + أقل وأعلى إصدار أندرويد يعمل عليه التطبيق و يجب الاشارة داخله لجميع المكتبات التي نستخدمها فى المشروع



هو مجلد يحتوي على القيم والمتغيرات .. يتم كتابه القيم على هذا الشكل النوع:الاسم:القيمة مثلا نضع داخله قيمة من نوع لون واسمها أحمر والقيمة هي كود اللون الحمر #ff0000 وهكذا .. 
يحتوي المجلد على ملفات xml لكل منها استخدام معين 

من أهم الملفات التي يحتويها مجلد ال values :
strings : ملف القيم أو النصوص , والفائدة منه مثلا لدينا قيمة داخله بإسم Ahmed والقيمة لها احمد , إذا تستطيع في المشروع استخدام نص سترنج Ahmed وسوف يتم طباعته على إنه احمد وهكذا.

styles : ملف الستايل او الثيم المستخدم للتطبيق, في الغالب نضع استايل معرف في ملفات الاندرويد وهو يعطي القيم الخاصة به لمشروعنا, وتستطيع الاستفادة منه في أمور كثيرة منها التحكم بحجم النص بمشروعك والاسلوان إلخ. وسوف نتعرف عليه بموضوع مستقل.

colors : ملف لوضع قيم للالوان واستخدامها في مشروعك, مثلا نضع مجموعة الوان ونضع لها اسماء, من ثم نستخدم فقط الاسم في المشروع ويتم التعرف على القيمة التي وضعناها 

أهم ما يميز مجلد ال values, إنك عندما تضع فيه جميع ما تستخدم في مشروعك, تستطيع تكرار مجلد الفايلوس للغة اخرى, وتغيير القيم داخله وهكذا تستطيع برمجة تطبيق متعدداللغات, وسوف نشرح كيفية بناء تطبيق متعدد اللغات في موضوع مستقل



هذا الملف مهم جدا تستطيع إعتباره إنه ملف وثيقة المشروع او بطاقة تعريفية للتطبيق . لا يصلح المشروع من دونه. وتستطيع استخدام داخله وسوم كثيرة, لكن سوف نذكر أهم ما يوجد داخله, وهي إننا نقوم بوضع اي اكتفتي لدينا بالمشروع, لو لم نضعها كلها, لن يتم التعرف على غير الموجودة, طريقة إضافة الاكتفتي سهلة جدا , أبسطها :

كود:
<activity android:name=".Activity" />
و كذلك في هذا الملف نضع الصلاحيات التي نريدها من مستحدم التطبيق, مثل الوصول للملفات, الوصول والاتصال بالانترنت, استخدام الكاميرا إلخ من الصلاحيات المختلفة.

مثال صلاحية الوصول لحالة الشبكة : 

كود:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
من هذا الملف نستطيع أن نحدد ايضا ما هي الاكتفتي التي سوف تعمل في بداية تشغيل التطبيق , باختصار هذا الملف مهم جدا, نضع فيه كل ما لدينا من اكتفتيس وصلاحيات, ومعرف التطبيق كذلك, والسبب مثلا لو كان تطبيقك حجمه يتجاوز 50 ميغا, فقرائته بالمتجر سوف تصبح صعبة جدا, لذلك يتم قراءة هذا الملف فقط لنتعرف من داخله على ايقونة التطبيق وما اسمه وما هو المعرف الخاص به وما يوجد لديك من الاكتفتي وما هي الصلاحيات التي يحتاجها وهكذا بسهولة يتم التحقق من تطبيقك والموافقة على نشره بالمتجر



الان انتهينا من التعرف على الاندرويد ستوديو و المجلدات الاساسيه للمشروع واصبح لدينا فكره عامه عن الـ Activity وعلاقتها بالـ Layout 

فى الدرس القادم ان شاء الله سنتعرف على الـ AVD - Android virtual machine , محاكى جهاز الاندرويد 
لنستطيع تشغيل عليه تطبيقاتنا

هناك تعليق واحد:

  1. كيف يمكن حفظ نسخة من المشروع في اندرويد استديو (تصدير نسخة من البرنامج )؟

    ردحذف