تعلم برمجة الأندرويد من الصفر

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5eCTvmCyo4RVE22f8PPJ4_GSygKKPqp77U4iRKyjCZ8ngLmrA5U8aPwstn2Qcx7S2hTVIhiySnUAmx68hd4KUsxpt5DxW2WZgc2I-iFJlyCVSKiUI3exJ_MHEaN352tGjxfFCluEnzVhH/s1600/ANhDROID.png
إذا كنت قد طرحت هذا السؤال على نفسك فأهلاً وسهلاً بك .. فهذا المقال مخصص للإجابة عن تساؤلك، سوف يأخذ بيدك من الصفر خطوة بخطوة لتصبح مطور تطبيقات أندرويد.
كنّا قد تحدثنا في مقال سابق عن تصميم تطبيقات الأندرويد بدون لغة برمجة باستخدام برنامج App Inventor
و
قبل البدء، قد يخطر لنا عدة تساؤلات:
مافرق البرمجة باستخدام برنامج App Inventor عن البرمجة باستخدام لغة الـ Java عبر برنامج Eclipse أو Android Studio ؟
  إن برنامج App Inventor 
 تقليد للغة البرمجة Scratch المخصصة للأطفال، أي محدود الإمكانيات بشدة مقارنة بـ Eclipse أو Android Studio، فهو     جيد كبداية، لكنه سيء اذا ما قررت الاستمرار في هذا المجال، ومهما حاولنا تصميم أي تطبيق عليه سيكون أداؤه في النهاية ضعيفاً وسيئاً مقارنة بـ Eclipse أو       Android Studio. هل أستطيع أن أتعلم لغة برمجة Java واستخدمها في الأندرويد بمفردي؟
  نعم بكل تأكيد ! في هذا المقال أكتب تجربتي عن تعلم برمجة تطبيقات الأندرويد من الصفر بمفردي عبر الإنترنت، حيث لم أكن أعرف أي شيء عن لغة Java، كل         ماتحتاجه هو اتخاذ القرار ثم المثابرة.

لماذا أتعلم برمجة الأندرويد؟ مالذي سأستفيده بعد قضاء الكثير من الساعات في التعلم ؟
  إن إنشاء تطبيق أندرويد لايتطلب خبرة طويلة كما باقي التطبيقات المكتبية، إضافة إلى ذلك فالأندرويد عالم واسع، لا أقصد بذلك نظام الأندرويد فقط، وإنما الجمهور         والسوق والانتشار، فبعد احترافك لهذا المجال يمكنك أن تعمل بشكل حرّ على الانترنت، وهناك عدة طرق لذلك منها:
     - بيع تطبيقك عبر مجتمع خمسات، أو عبر سوق Google Play.
     - وضع إعلانات Adsense في تطبيقك أو لعبتك، لتربح من كل نقرة على الإعلان.
  هناك أشخاصاً ربحوا مئات وآلاف الدولارات من بيع تطبيقات وألعاب الأندرويد، نذكر مثلاً مطور لعبة Flappy Bird الذي بلغ معدل ربحه اليومي 50 ألف دولار.
  أنصحك بأن تبدأ الآن .. لعلّ الحظ يحالفك أيضاً :)

كنّا قد 
عددّنا سابقاً 6 لغات برمجة مستخدمة في برمجة تطبيقات الأندرويد، نذكرها مرة أخرى:  1- باستخدام لغة Java : عبر برنامج Eclipse أو برنامج Android Studio.
  2- 
باستخدام لغة #C : عبر برنامج Xamarin.
  3- باستخدام لغة ++C : عبر Android NDK.
  4- باستخدام لغة Java Script : عبر Titanium Mobile Accelerator أو                         Phone Gap.
  5- باستخدام لغة Python : عبر kivy.  6- باستخدام لغة Ruby : عبر RhoMobile.
ولأن لغة Java هي الأكثر استخداماً واستقراراً ستكون هي اللغة التي نبدأ فيها رحلتنا.

والآن، ماهي خطوات العمل ؟
أولاً : تعلم لغة برمجة Java :

عندما نقول تعلم لغة Java لانقصد بذلك تعلم كل أوامرها وتفاصيلها الكاملة، فهي لغة ضخمة، لكن أقصد تعلم المفاهيم الأساسية واكتساب بعض المرونة، والباقي سوف تتعلمه بنفسك أثناء إنشاءك لتطبيقات الأندرويد.
1- مشاهدة دورات مصورة:
الدورات المصورة هي الخيار الأفضل دائماً للبدء في أي لغة برمجة.
أمامك خياران، إما دورات باللغة العربية أو الإنكليزية:
دورات باللغة العربية:
    عند ذكر اللغة العربية لا أجد أفضل من الأستاذ عبدالله عيد، تتكون الدورة من 3 مستويات، يمكن         متابعتهم مباشرة على YouTube :
     أو تحميلهم لمشاهدتهم لاحقا (دقة عالية):     Java 101 (الحجم 1.5 غيغا بايت)     Java 102 (الحجم 1.7 غيغا بايت)     Java 103 (الحجم 1.2 غيغا بايت)     المشاهدة وحدها لاتكفي، لكن التفاعل مع الأفكار الجديدة وتطبيقها عملياً هو مايجعلك مبرمجاً.     بعد مشاهدة وتطبيق الدورات الثلاث السابقة، يمكنك الانتقال مباشرة إلى برمجة الأندرويد بدون          مشاهدة دورات اللغة الانكليزية، لكن إذا أردت الاحتراف عليك مشاهدتها لاحقاً.

دورات باللغة الإنكليزية:
     يمكن الاعتماد على الدورات المجانية المتوفرة على موقع YouTube، نذكر منها أشهر سلستين لتعليم لغة Java:     Java (Beginner) Programming Tutorials         Java (Intermediate) Tutorials
     ويمكن أيضاً الاعتماد على الدورات المدفوعة في الموقع الشهير Lynda :     Java Essential Training     Java Advanced Training     ولأن موقع Lynda ليس مجاني، أمامك خياران لمشاهدة هذه الدورات:     إما التسجيل بالموقع وعندها لديك 7 أيام مجانية بإمكانك خلالها مشاهد الدورات وتحميلها إلى حاسوبك.     أو الاعتماد على التورنت وتحميل الدورات بطريقة غير شرعية.
     إلى هنا هو الحد الأدنى من الخبرة المطلوبة في لغة Java
2- الكتب الرقمية:
بعد مشاهدة دورة مصورة بأحد اللغتين (أو كلاهما كما أنا فعلت)، يمكنك زيادة خبرتك عبر الاستعانة بالكتب الرقمية.
يجب أن يكون بجانبك دائماً كتاباً تتخذه مرجعاً لك أثناء عملك بلغة Java ، وخصوصاً إذا كانت مرتك الأولى في البرمجة بهذه اللغة.
لديك الكثير من الخيارات، بإمكانك اختيار ماتشاء من هذه المكتبة المجانية :

GitHub - Free programming books
باللغة العربية :     يوجد في المكتبة السابقة على سبيل المثال هذا الكتاب المجاني باللغة العربية،     وأيضاً هذا كتاب مميز يُدرّس في المملكة العربية السعودية أنصح به.باللغة الإنكليزية:    أفضل كتاب حسب وجهة نظري هو كتاب Java How to Program من شركة Deitel المعروفة، يمكنك شراؤه عبر الرابط:    Deitel - Java How to Program 9th    أو تحميله بشكل غير شرعي بمفردك من موقع 4shared.

ثانياً : البدء في برمجة الأندرويد:
أنصحك بالبدء بـ Eclipse لأن أغلب الدورات سوف تعتمد عليه كبرنامجها الافتراضي، لذلك عليك تحميل حزمة تطوير الأندرويد عبر موقع Google :
Android SDK
 
وبعد أن حصلت على برنامج Eclipse يجب أن نبدأ بتعلم بناء التطبيقات:
1- مشاهدة دورات مصورة:
دورات باللغة العربية:    أيضاً من أفضل الدورات العربية دورة الأستاذ عبدالله عيد، يمكن مشاهدتها من           Android 101 - YouTube
    أو يمكن تحميلها لمشاهدتها لاحقاً:    Android 101 (الحجم 2.9 غيغابايت)
دورات باللغة الإنكليزية:    أيضاً هنا لدينا خياران، إما دورات مجانية أو مدفوعة، من أفضل الدورات المجانية     وأشهرها على YouTube:    Android Application Development Tutorials    والدورات المدفوعة :    Lynda.com - Android SDK Essential Training    Lynda.com - Android App Development with Java Essential Training
2- الكتب الرقمية:باللغة العربية :    للأسف فإن الكتب العربية المتخصصة ببرمجة الأندررويد قليلة ونادرة، وإن وجدت فإنها لاتغطي الاحتياجات كما تفعل الكتب الإنكليزية، نذكر على سبيل المثال كتاب       أندرويد ببساطة ، لكنه أصبح قديماً ولايقارن بمستوى الكتب الإنكليزية.
باللغة الإنكليزية:    من أفضل الكتب حسب تجربتي :    Beginning Android 4 Application Development    The Busy Coder's Guide to Android Development    يتميز الكتاب الأخير بضخامته وشموله لكثير من المواضيع.
3- ملاحظات ومصادر أخرى:ملاحظة (1):إن مجرد مشاهدة دورة لايعني أنك أصبحت مطور تطبيقات أندرويد، وإنما عليك وضع هدف من إبداعك والوصول إليه، على سبيل المثال ضع هدفاً لتصميم تطبيق يقوم بتسجيل الملاحظات، أو تطبيق آلة حاسبة، أو تطبيق مسابقة معلومات، وبمجرد وصولك لهذا الهدف تكون قد دخلت في برمجة الأندرويد بقوة، بالتأكيد سوف تواجهك بعض الصعوبات، حاول الاعتماد على المصادر التالية لتجد حلاً لمشكلتك.
ملاحظة (2):ليس من الصواب تماماً أن تبدأ برمجة تطبيقك من الصفر، يمكنك الاعتماد على عمل الآخرين والاستفادة منه بمشروعك - جزئياً على الأقل - ، على سبيل المثال التعامل مع السيرفرات وإرسال البيانات إليها، أو عرض الصور وتكبيرها بإصبعيتن، ليس عليك كتابة كود لذلك، وإنما استعمال كود جاهز وبذلك توفر الوقت والجهد، هذه هي فكرة المصدر المفتوح، يمكن الاعتماد على المصادر التالية أيضاً للحصول على أكواد جاهزة.ملاحظة (3):حاول أن تستفيد من الشبكات الاجتماعية، على سبيل المثال هنا بعض المجموعات على الفيسبوك تحوي عدداً كبيراً من الشباب العرب المميزين، وستجدهم مستعدين لمساعدتك وإرشادك لحل مشاكلك المستعصية:Ask Syrian Programmers
عبدالله عيد

المصادر:
موقع Vogella.com يقدم شروحات متقدمة واحترافية.
الموقع الرسمي لتطوير الأندرويد، أنصح بالاعتماد عليه بعد الإلمام جيداً بمفايهم برمجة الأندرويد:
     Android Developers - Android.com
     يحتوي الموقع على الكثير من الأقسام، أهمها قسم Reference والذي يحتوي الشرح التفصيلي لكل صنف وطريقة موجودة في نظام الأندرويد، يمكنك تحميله            للعمل عليه دون اتصال بالإنترنت من خلال 
SDK Manager الذي قمنا بتحميله سابقاً.موقع Stackoverflow.com، الموقع الأفضل في حل المشاكل التي تواجهك، مهما كانت مشكلتك ابحث عنها في Stackoverflow وستجد الحل.موقع Androidhive.info موقع يحوي أكواد جاهزة لاستخدامها ضمن تطبيقك.
موقع Androidviews.net موقع شامل للمكاتب مفتوحة المصدر الخاصة بالأندرويد.
تطبيق DevAppsDirect - Demo Market : تطبيق مميز جداً، يحوي مجموعة واسعة من المكاتب مفتوحة المصدر مع إمكانية تجريبها مباشرة على             هاتفك المحمول.
متجر F-Droid: متجر مشهور و خاص بالتطبيقات المجانية مفتوحة المصدر.

ثالثاً : برمجة ألعاب الأندرويد:
سنتحدث عن تصميم ألعاب الأندرويد بشكل مختصر،وقلت بشكل مختصر لأنك اذا وصلت          
إلى هذه المرحلة فهذا يعني أنك أصبحت محترفاً و لم تعد تحتاج الرجوع إلى هذا المقال، فتصميم الألعاب يتطلب خبرة واحترافية.
يختلف تصميم الألعاب عن البرامج من ناحية الجهد ولغات البرمجة المستخدمة وكذلك البرامج المستخدمة، أظن أن العناء سوف يُنسى حين تشاهد أرباحك الأولى من تصميم الألعاب !
يمكن تصميم الألعاب باستخدام لغة Java وعلى برنامج Eclipse، لكن لن تكون بنفس أداء لغة C++ مثلاً، بشكل عام لألعاب 2D ليست بمشكلة، لكن لألعاب 3D يجب ترك لغة Java.
كمبتدأ أنصحك بالتوجه إما إلى Unity3D، أو إلى AndEngine.
ماهي خيارتنا إذاً؟
1- باستخدام برامج تجارية:
Unity3D : برنامج جيد بالنسبة للمبتدأ، يعتمد لغة #C و Java Script.
    هناك دورات مصورة على YouTube لهذا البرنامج، على سبيل المثال :
     Unity 3d - Android Game Development Tutorial
Unreal Engine : برنامج متقدم ومستواه احترافي، يعتمد لغة UnrealScript وهي لغة خاصة تشبه إلى حد ما لغة Java.2- باستخدام مكتبات مفتوحة المصدر تعتمد على بيئة ++C:
Ogre3D : المكتبة الأفضل والأكثر تقدماً وضخامة.Irrlicht Linderdaum3- باستخدام مكتبات مفتوحة المصدر تعتمد على بيئة Java:AndEngine : المفضل عندي لسهولة استخدمه وأداءه العالي بالرغم من اعتماده على بيئة Java.Cocos2D : دورة مصورة من موقع Lynda :    Building and Monetizing Game Apps for Android

تعليقات

إرسال تعليق