’’ أريد أن أتعلم تصميم تطبيقات الأندرويد .. لكنني لا أعرف أي لغة برمجة، من أين أبدأ؟ ،،
إذا كنت قد طرحت هذا السؤال على نفسك فأهلاً وسهلاً بك .. فهذا المقال مخصص للإجابة عن تساؤلك، سوف يأخذ بيدك من الصفر خطوة بخطوة لتصبح مطور تطبيقات أندرويد.
كنّا قد تحدثنا في مقال سابق عن تصميم تطبيقات الأندرويد بدون لغة برمجة باستخدام برنامج App Inventor
وقبل البدء، قد يخطر لنا عدة تساؤلات:
• مافرق البرمجة باستخدام برنامج App Inventor عن البرمجة باستخدام لغة الـ Java عبر برنامج Eclipse أو Android Studio ؟
إن برنامج App Inventor تقليد للغة البرمجة Scratch المخصصة للأطفال، أي محدود الإمكانيات بشدة مقارنة بـ Eclipse أو Android Studio، فهو جيد كبداية، لكنه سيء اذا ما قررت الاستمرار في هذا المجال، ومهما حاولنا تصميم أي تطبيق عليه سيكون أداؤه في النهاية ضعيفاً وسيئاً مقارنة بـ Eclipse أو Android Studio.
• هل أستطيع أن أتعلم لغة برمجة Java واستخدمها في الأندرويد بمفردي؟
نعم بكل تأكيد ! في هذا المقال أكتب تجربتي عن تعلم برمجة تطبيقات الأندرويد من الصفر بمفردي عبر الإنترنت، حيث لم أكن أعرف أي شيء عن لغة Java، كل ماتحتاجه هو اتخاذ القرار ثم المثابرة.
• لماذا أتعلم برمجة الأندرويد؟ مالذي سأستفيده بعد قضاء الكثير من الساعات في التعلم ؟
إن إنشاء تطبيق أندرويد لايتطلب خبرة طويلة كما باقي التطبيقات المكتبية، إضافة إلى ذلك فالأندرويد عالم واسع، لا أقصد بذلك نظام الأندرويد فقط، وإنما الجمهور والسوق والانتشار، فبعد احترافك لهذا المجال يمكنك أن تعمل بشكل حرّ على الانترنت، وهناك عدة طرق لذلك منها:
– أسهل هذه الطرق هي بيع تطبيقك عبر مجتمع خمسات (khamsat.com).
– كذلك يمكن بيع التطبيقات عبر سوق Google Play.
– وضع إعلانات Adsense (من شركة Google) في تطبيقك أو لعبتك، لتربح من كل نقرة على الإعلان.
هناك أشخاصاً ربحوا مئات وآلاف الدولارات من بيع تطبيقات وألعاب الأندرويد، نذكر مثلاً مطور لعبة 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 هي الأكثر استخداماً واستقراراً ستكون هي اللغة التي نبدأ فيها رحلتنا.
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 Java 102 Java 103
أو تحميلهم لمشاهدتهم لاحقا (دقة عالية):
Java 101 (الحجم 1.5 غيغا بايت)
Java 102 (الحجم 1.7 غيغا بايت)
Java 103 (الحجم 1.2 غيغا بايت)
المشاهدة وحدها لاتكفي، لكن التفاعل مع الأفكار الجديدة وتطبيقها عملياً هو مايجعلك مبرمجاً.
بعد مشاهدة وتطبيق الدورات الثلاث السابقة، يمكنك الانتقال مباشرة إلى برمجة الأندرويد بدون مشاهدة دورات اللغة الانكليزية، لكن إذا أردت الاحتراف عليك مشاهدتها لاحقاً.
1- مشاهدة دورات مصورة:
الدورات المصورة هي الخيار الأفضل دائماً للبدء في أي لغة برمجة.
أمامك خياران، إما دورات باللغة العربية أو الإنكليزية:
◄دورات باللغة العربية:
عند ذكر اللغة العربية لا أجد أفضل من الأستاذ عبدالله عيد، تتكون الدورة من 3 مستويات، يمكن متابعتهم مباشرة على YouTube :
Java 101 Java 102 Java 103
أو تحميلهم لمشاهدتهم لاحقا (دقة عالية):
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
يمكن الاعتماد على الدورات المجانية المتوفرة على موقع 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.
ثانياً : البدء في برمجة الأندرويد:
بعد مشاهدة دورة مصورة بأحد اللغتين (أو كلاهما كما أنا فعلت)، يمكنك زيادة خبرتك عبر الاستعانة بالكتب الرقمية.
يجب أن يكون بجانبك دائماً كتاباً تتخذه مرجعاً لك أثناء عملك بلغة Java ، وخصوصاً إذا كانت مرتك الأولى في البرمجة بهذه اللغة.
لديك الكثير من الخيارات، بإمكانك اختيار ماتشاء من هذه المكتبة المجانية :
GitHub – Free programming books
◄باللغة العربية :
يوجد في المكتبة السابقة على سبيل المثال هذا الكتاب المجاني باللغة العربية،
وأيضاً هذا كتاب مميز يُدرّس في المملكة العربية السعودية أنصح به.
◄باللغة الإنكليزية:
أفضل كتاب حسب وجهة نظري هو كتاب Java How to Program من شركة Deitel المعروفة، يمكنك شراؤه عبر الرابط:
Deitel – Java How to Program 9th
أو تحميله بشكل غير شرعي بمفردك من موقع 4shared.
ثانياً : البدء في برمجة الأندرويد:
أصبح الآن برنامج Android Studio هو البرنامج الرسمي والأفضل لتصميم تطبيقات الأندرويد، يمكنكم تحميله من الرابط:
Android SDK
Android SDK
وبعد أن حصلت على برنامج Eclipse يجب أن نبدأ بتعلم بناء التطبيقات:
1- مشاهدة دورات مصورة:
◄دورات باللغة العربية:
أيضاً من أفضل الدورات العربية دورة الأستاذ عبدالله عيد، يمكن مشاهدتها من Android 101 – YouTube
أو يمكن تحميلها لمشاهدتها لاحقاً:
Android 101 (الحجم 2.9 غيغابايت)
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
أيضاً هنا لدينا خياران، إما دورات مجانية أو مدفوعة، من أفضل الدورات المجانية وأشهرها على 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
يتميز الكتاب الأخير بضخامته وشموله لكثير من المواضيع.
◄باللغة العربية :
للأسف فإن الكتب العربية المتخصصة ببرمجة الأندررويد قليلة ونادرة، وإن وجدت فإنها لاتغطي الاحتياجات كما تفعل الكتب الإنكليزية، نذكر على سبيل المثال كتاب أندرويد ببساطة ، لكنه أصبح قديماً ولايقارن بمستوى الكتب الإنكليزية.
◄باللغة الإنكليزية:
من أفضل الكتب حسب تجربتي :
Beginning Android 4 Application Development
The Busy Coder’s Guide to Android Development
يتميز الكتاب الأخير بضخامته وشموله لكثير من المواضيع.
3- ملاحظات ومصادر أخرى:
ملاحظة (1):
إن مجرد مشاهدة دورة لايعني أنك أصبحت مطور تطبيقات أندرويد، وإنما عليك وضع هدف من إبداعك والوصول إليه، على سبيل المثال ضع هدفاً لتصميم تطبيق يقوم بتسجيل الملاحظات، أو تطبيق آلة حاسبة، أو تطبيق مسابقة معلومات، وبمجرد وصولك لهذا الهدف تكون قد دخلت في برمجة الأندرويد بقوة، بالتأكيد سوف تواجهك بعض الصعوبات، حاول الاعتماد على المصادر التالية لتجد حلاً لمشكلتك.
ملاحظة (2):
ليس من الصواب تماماً أن تبدأ برمجة تطبيقك من الصفر، يمكنك الاعتماد على عمل الآخرين والاستفادة منه بمشروعك – جزئياً على الأقل – ، على سبيل المثال التعامل مع السيرفرات وإرسال البيانات إليها، أو عرض الصور وتكبيرها بإصبعيتن، ليس عليك كتابة كود لذلك، وإنما استعمال كود جاهز وبذلك توفر الوقت والجهد، هذه هي فكرة المصدر المفتوح، يمكن الاعتماد على المصادر التالية أيضاً للحصول على أكواد جاهزة.
ملاحظة (3):
حاول أن تستفيد من الشبكات الاجتماعية، على سبيل المثال هنا بعض المجموعات على الفيسبوك تحوي عدداً كبيراً من الشباب العرب المميزين، وستجدهم مستعدين لمساعدتك وإرشادك لحل مشاكلك المستعصية:
Ask Syrian Programmers
عبدالله عيد
ملاحظة (1):
إن مجرد مشاهدة دورة لايعني أنك أصبحت مطور تطبيقات أندرويد، وإنما عليك وضع هدف من إبداعك والوصول إليه، على سبيل المثال ضع هدفاً لتصميم تطبيق يقوم بتسجيل الملاحظات، أو تطبيق آلة حاسبة، أو تطبيق مسابقة معلومات، وبمجرد وصولك لهذا الهدف تكون قد دخلت في برمجة الأندرويد بقوة، بالتأكيد سوف تواجهك بعض الصعوبات، حاول الاعتماد على المصادر التالية لتجد حلاً لمشكلتك.
ملاحظة (2):
ليس من الصواب تماماً أن تبدأ برمجة تطبيقك من الصفر، يمكنك الاعتماد على عمل الآخرين والاستفادة منه بمشروعك – جزئياً على الأقل – ، على سبيل المثال التعامل مع السيرفرات وإرسال البيانات إليها، أو عرض الصور وتكبيرها بإصبعيتن، ليس عليك كتابة كود لذلك، وإنما استعمال كود جاهز وبذلك توفر الوقت والجهد، هذه هي فكرة المصدر المفتوح، يمكن الاعتماد على المصادر التالية أيضاً للحصول على أكواد جاهزة.
ملاحظة (3):
حاول أن تستفيد من الشبكات الاجتماعية، على سبيل المثال هنا بعض المجموعات على الفيسبوك تحوي عدداً كبيراً من الشباب العرب المميزين، وستجدهم مستعدين لمساعدتك وإرشادك لحل مشاكلك المستعصية:
Ask Syrian Programmers
عبدالله عيد
المصادر:
◄موقع Vogella.com يقدم شروحات متقدمة واحترافية.
◄الموقع الرسمي لتطوير الأندرويد، أنصح بالاعتماد عليه بعد الإلمام جيداً بمفايهم برمجة الأندرويد:
Android Developers – Android.com
يحتوي الموقع على الكثير من الأقسام، أهمها قسم Reference والذي يحتوي الشرح التفصيلي لكل صنف وطريقة موجودة في نظام الأندرويد، يمكنك تحميله للعمل عليه دون اتصال بالإنترنت من خلال SDK Manager الذي قمنا بتحميله سابقاً.
◄موقع Stackoverflow.com، الموقع الأفضل في حل المشاكل التي تواجهك، مهما كانت مشكلتك ابحث عنها في Stackoverflow وستجد الحل.
◄موقع Androidhive.info موقع يحوي أكواد جاهزة لاستخدامها ضمن تطبيقك.
◄موقع Android Arsenal موقع شامل للمكاتب مفتوحة المصدر الخاصة بالأندرويد.
◄تطبيق DevAppsDirect – Demo Market : تطبيق مميز جداً، يحوي مجموعة واسعة من المكاتب مفتوحة المصدر مع إمكانية تجريبها مباشرة على هاتفك المحمول.
◄متجر F-Droid: متجر مشهور و خاص بالتطبيقات المجانية مفتوحة المصدر.
◄محاكي Genymotion الرائع، أنصح باستخدامه بشدة بدلاً عن المحاكي الذي يأتي مع حزمة ADT.
ثالثاً : برمجة ألعاب الأندرويد:
◄موقع Vogella.com يقدم شروحات متقدمة واحترافية.
◄الموقع الرسمي لتطوير الأندرويد، أنصح بالاعتماد عليه بعد الإلمام جيداً بمفايهم برمجة الأندرويد:
Android Developers – Android.com
يحتوي الموقع على الكثير من الأقسام، أهمها قسم Reference والذي يحتوي الشرح التفصيلي لكل صنف وطريقة موجودة في نظام الأندرويد، يمكنك تحميله للعمل عليه دون اتصال بالإنترنت من خلال SDK Manager الذي قمنا بتحميله سابقاً.
◄موقع Stackoverflow.com، الموقع الأفضل في حل المشاكل التي تواجهك، مهما كانت مشكلتك ابحث عنها في Stackoverflow وستجد الحل.
◄موقع Androidhive.info موقع يحوي أكواد جاهزة لاستخدامها ضمن تطبيقك.
◄موقع Android Arsenal موقع شامل للمكاتب مفتوحة المصدر الخاصة بالأندرويد.
◄تطبيق DevAppsDirect – Demo Market : تطبيق مميز جداً، يحوي مجموعة واسعة من المكاتب مفتوحة المصدر مع إمكانية تجريبها مباشرة على هاتفك المحمول.
◄متجر F-Droid: متجر مشهور و خاص بالتطبيقات المجانية مفتوحة المصدر.
◄محاكي Genymotion الرائع، أنصح باستخدامه بشدة بدلاً عن المحاكي الذي يأتي مع حزمة ADT.
ثالثاً : برمجة ألعاب الأندرويد:
سنتحدث عن تصميم ألعاب الأندرويد بشكل مختصر،وقلت بشكل مختصر لأنك اذا وصلت
إلى هذه المرحلة فهذا يعني أنك أصبحت محترفاً و لم تعد تحتاج الرجوع إلى هذا المقال، فتصميم الألعاب يتطلب خبرة واحترافية.
يختلف تصميم الألعاب عن البرامج من ناحية الجهد ولغات البرمجة المستخدمة وكذلك البرامج المستخدمة، أظن أن العناء سوف يُنسى حين تشاهد أرباحك الأولى من تصميم الألعاب !
يمكن تصميم الألعاب باستخدام لغة 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
◄Linderdaum
3- باستخدام مكتبات مفتوحة المصدر تعتمد على بيئة Java:
◄AndEngine : المفضل عندي لسهولة استخدمه وأداءه العالي بالرغم من اعتماده على بيئة Java.
◄Cocos2D : دورة مصورة من موقع Lynda :
Building and Monetizing Game Apps for Android
أتمنى أن أكون قد وفقت في طرحي لهذا الموضوع بأبسط صورة، وأتمنى أن يكون هذا المقال محفزاً على البداية.
إلى هذه المرحلة فهذا يعني أنك أصبحت محترفاً و لم تعد تحتاج الرجوع إلى هذا المقال، فتصميم الألعاب يتطلب خبرة واحترافية.
يختلف تصميم الألعاب عن البرامج من ناحية الجهد ولغات البرمجة المستخدمة وكذلك البرامج المستخدمة، أظن أن العناء سوف يُنسى حين تشاهد أرباحك الأولى من تصميم الألعاب !
يمكن تصميم الألعاب باستخدام لغة 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
◄Linderdaum
3- باستخدام مكتبات مفتوحة المصدر تعتمد على بيئة Java:
◄AndEngine : المفضل عندي لسهولة استخدمه وأداءه العالي بالرغم من اعتماده على بيئة Java.
◄Cocos2D : دورة مصورة من موقع Lynda :
Building and Monetizing Game Apps for Android
أتمنى أن أكون قد وفقت في طرحي لهذا الموضوع بأبسط صورة، وأتمنى أن يكون هذا المقال محفزاً على البداية.
0 التعليقات:
إرسال تعليق