مسار تعلم برمجة تطبيقات الأندرويد

مسار تعلم برمجة تطبيقات الأندرويد

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

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

مسار تعلم برمجة تطبيقات الأندرويد

 حدد الأهداف، و اجمع المصادر

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

  •  ما الذي سأصنعه ؟
  •  كيف سيستفيد الآخر من هذه البرمجية ؟
  •  كيف سأستفيد أنا من هذه البرمجية ؟ 
  • هل يوجد برمجيات مشابهة ؟ هل يمكننا منافستها ؟ ما الذي ستتميز به برمجيتي على برمجيات الآخرين ؟ 
إجابات هذه الأسئلة و أكثر تحدد لك رؤية واضحة لبرمجيتك، و كيف ستستفيد أنت منها و كيف سيستفيد الأشخاص الذين سيحملون التطبيق منها أيضا، عليك أن تخلق الحاجة للتطبيق، فلا أحد سيقوم بتنصيب تطبيقك ان لم يكن بحاجة إليه، و لن يكون بحاجة إليه الا لحل مشكلة معينة او تسهيل بعض الأمور عليه. كل هذه يجب أخذها في الحسبان الى جانب دراسة شدة المنافسة، فقد تكون هناك تطبيقات أخرى شبيهة في المتجر و التي تنافس تطبيقك لهذا يجب ان توفر شيئاً جديدا او حلا للتطبيقات السابقة من أجل ان ينتقل مستخدمو التطبيق الأول الى تطبيقك أنت. 

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

 تخطيط الـ Back-End و هيكلته 

قد تحتاج برمجيتك الى Server Side و قد لا تحتاج إليها، في حالة كنت ستستخدم نظام قواعد بيانات او حتى API's مثلا فيجب عليك التخطيط لهيكلة الـ Back End ثانيا. يعتبر الـ Back End المحدد الأساسي لكل العناصر التي سيتضمنها التطبيق خاصتك و الواجهات أيضا التي سيتم صناعتها لاحقا. 
في حالة كان مشروعاً كبيرا ذو نظام قواعد بيانات لا بأس به فننصحك بإستخدام تقنيات هيكلة قواعد البيانات مثل UML، في حالة كان مجرد تطبيق بسيط ذو قواعد بيانات واضحة نسبيا فعلى الأقل قم برسمها و الربط بينها، نقترح عليك المنصة التالية للتخطيط لقواعد البيانات. 
ان كنت ستستخدم أي نوع من الـ API's أيضا، قد تحتاج الى إدارة هذا الـ API من أجل معرفة كل المعلومات التي ستجلبها من أجل توظيفها بشكل جيد، استخدم برمجيات مثل Postman من أجل تحديد و تصنيف و ترتيب البيانات و المعلومات التي ستجلبها في برمجيتك. 

 تطوير الواجهات و التفاعلات (UI/UX) 

تطوير نظام الـ BackEnd او الـ Server Side في التطبيق و هيكلة قواعد البيانات قد وفر لنا لمحة عن الواجهات التي يجب ان تكون في التطبيق، على سبيل المثال ان كان هناك جدول في قواعد البيانات الخاصة بالمستخدمين (Users) فهذا دليل على ان نظام التطبيق خاصتنا يجب ان يضم صفحة خاصة بالبروفايل، و على إثره سنقوم بتصميم واجهة خاصة بالبروفايل بإستخدام تقنيات الـ UI/UX. 
صناعة واجهات إحترافية يتطلب الكثير من الدراسة و الإستشهاد بنماذج واجهات سابقة مشابهة و إقتباسها، ستحتاج الى الكثير من المصادر التي يجب عليك ان تعمل بها جميعها لإنشاء واجهات إحترافية، إليك أهم هذه المصادر : 
بعد تعلم لصناعة الواجهات و إتقان استخدامها، و البدئ في صناعة الواجهات و تحقيق التناسق بينها في برمجيتك، بات لديك الآن كل شيئ نظري ممكن في تطبيقك، و حان الوقت للتوجه للنظام العملي. 

 تحديد التقنيات المستخدمة 

أنت لا تختار التقنية، بل التقنية من تختارك ! 

يحصل جدال كبير حول التقنيات المستخدمة في تطوير  تطبيق أندرويد، فهذا يخبرك ان الجافا أفضل و البعض يفضل إستخدام Kotlin و الآخرون يهمهم تقنيات Flutter و Dart و البقية يفضلون تقنيات الـ Hybrid ... لكن في الحقيقة لست أنت من تختار التقنية، بل التطبيق هو الذي يختارها. فربما لديك خواص في تطبيقك تريد إضافتها مدعومة من طرف الجافا و لا يمكن تحقيقها بإستخدام Flutter، فليس عليك هنا الإتجاه الى Flutter إطلاقا. 
يوجد بعض الأمور التي يجب أخذها بعين الإعتبار لإختيار التقنية التي ستستخدمها، مثل إمكانية تطوير التطبيق لاحقا، و المنصات التي سيشتغل عليها التطبيق، و هل التطبيق ذو خامات من الصفر ام مجرد تطبيق Webview سيستعرض بعض المعلومات، و أيضا عدد صفحات التطبيق و مدى تشعبه، كل هذا يجب أخذه في الحسبان. حسب خبراتنا المتوسطة، فإننا نقترح عليك إتباع التخطيط الآتي : 
  • إن كنت تسعى لصناعة تطبيق يشتغل على منصات مختلفة غير أندرويد مستقبلا، فنقترح عليك التوجه للتطوير بإستخدام Flutter او React Native او تقنيات الـ Hybrid الأخرى مثل Ionic. 
  • إن كان تطبيقك ذو ضخامة من حيث العمل و يتطلب الكثير من التقنيات المختلفة فنقترح عليك تطويره بإستخدام Kotlin او Java، تقنيا بعض التقنيات التي تريدها قد لا تكون متوافرة في Kotlin و يفضل إستخدام Java. 
  • إن كان تطبيقك ذو مستوى متوسط و تبحث عن الآداء و السرعة و كذا التوافق الكبير مع أكبر عدد من الإجهزة، فنقترح عليك Kotlin أولا ثم جافا ثانيا أيضا. 
  • إن كنت مبرمج ويب و تريد البدئ في مجال الأندرويد مباشرة، فإبدأ بتطوير  تطبيقات الموبايل بإستخدام Flutter، و إن كنت مطور React توجه الى الـ React Native.
  • إن كنت تريد فقط صناعة  تطبيق بسيط للغاية به صفحة او صفحتين و ربما تقتبسهما من الويب او ما شابه، فتوجه الى تقنيات مثل Cordova و Ionic او PhoneGap. 
لذلك، المرة القادمة حين تجد نفسك عالقا بين آراء الآخرين عن قوة كوتلين أمام جافا، او الـ React Native او حين ينصحك هذا و ذاك بإستخدام Flutter بدل الكل، تذكر ان الأهداف هي التي تحدد لك التقنيات بالمستخدمة بشكل أدق. 

 التعامل مع المكتبات و الموارد الخارجية 

إن ألقيت نظرة معمقة قليلا حول الـ UI/UX الخاص بتطبيقك الأندرويد ستجد ان الأدوات الرئيسية الموجودة في بيئة التطوير ( سواء جافا، كوتلين، React Native او Flutter و غيرها ). ستلاحظ انها غير قادرة على إعطائك نفس النتيجة حتما، و هنا ستضطر الى البحث عن مكتبات خاصة بتطوير الواجهات او موارد خارجية لمساعدتك تقريبا في إنجاز كامل المشروع ( مثلا و بعيدا عن الواجهة، إن كنت ستتعامل مع أندرويد جافا و تريد إرسال و إستقبال البيانات من قواعد بيانات، فلا تستخدم الـ Async Task الرئيسي، بل جرب مكتبات مثل Retrofit فهي أسرع و أسهل ). 
إذن في هذه المرحلة، عليك ان تأخذ بعض الوقت و تفكر في كل خطوة من خطوات إنجاز تطبيقك الأندرويد و ان تقوم بتجميع أبرز الموارد و المصادر الخارجية من مكتبات و Libraries من أجل إستخدامها، لا تقلق، لدينا لك بعض المصادر هنا أيضا : 
  • منصة Github قد يكون أفضل صديق لك في هذه الحالة، فهو يضم أبرز المكتبات و الموارد الخارجية الخاصة بكل التقنيات السابقة و التي يمكنك إستخدامها، و لأن منصة Github بحر شاسع و تحتاج الى ان تكون عواماً من أجل إيجاد ما تريده مباشرة، سنوفر لك كافة المستودعات اللازمة.
  • مستودع Awesome Android UI : و هو مستودع خاص بتقديم كل المكتبات التي تساعدك في صناعة أفضل الواجهات مثل أزرار احترافية، Tabs، وضع الـ Material في تصاميمك، تصميم الرسائل و الـ Listviews و كل شيئ له علاقة بالواجهة. 
  • مستودع Awesome Android : هو مستودع متخصص في تقديم كل المكتبات اللازمة لتطوير برمجياتك بـ Android، يركز بشكل كبير على مستودعات جافا لكن يوجد أيضا مستودعات تدعم Kotlin، المستودعات هنا متعلقة بكل شيئ عن الأندرويد و ليس فقط الواجهة مثل المستودع السابق. 
  • مستودع Awesome Android Libraries : مستودع يستعرض عليك تجميعة كبيرة و ضخمة جدا لكل المكتبات الخارجية للأندرويد، تقريبا أي شيئ تريد القيام به في أندرويد ستجد مكتبة خارجية تسهل عليك الوضع في هذه القائمة. 
  • مستودع Android Security Awesome : بالطبع ستحتاج الى بعض الحماية لتطبيقك الخاص مثل تشفير الكود سورس او البيانات و ما الى ذلك، هنا ستجد كل المكتبات الخارجية التي تساعدك في حماية تطبيقك و البيانات داخله.
  • مستودع Awesome React Native : ان كنت تطور تطبيقك بإستخدام React Native فهنا تجد كل العناصر (Components)، الأدوات و المكتبات اللازمة لتساعدك في الحصول على نتيجة مثالية. 
  • مستودع Awesome Flutter : و نختم معك بمستودع Awesome Flutter الذي يوفر لك كل المكتبات و الأدوات و كل المستلزمات لتطوير برمجيتك بإحترافية بإستخدام تقنيتي Dart و Flutter. 
كل ما عليك فعله الآن هو تقسيم الواجهة مع الكود، توجه الى نماذج الـ UI/UX الخاصة بتطبيقك، ثم توجه الى مكتبة الواجهات أعلاه، و قم بجرد أهم المكتبات التي ستساعدك على تحقيق تلك النتيجة و قم بإضافتها للمشروع الخاص بك، نفس الأمر سيان بالنسبة لباقي أجزاء التطبيق، قم بالبحث عن أهم المكتبات التي تساعدك على إنجاز المطلوب بكفاءة.

مراحل ما بعد التطوير 

بعد ان تنتهي من تطوير برمجيتك، ستبدأ الآن في مرحلة ما بعد التطوير و التي تضم العديد من الخطوات أيضا، أبرزها جعل تطبيقك متوافق مع سياسة جوجل من خلال إضافة صحفات الـ Privacy Policy التي تتضمن الموافقة  على قوانين الـ GDPR من أجل قبول تطبيقك، و كذلك صناعة Documentation لطريقة إستخدام التطبيق، ناهيك على أخذ Screenshots و تحسين أيقونة و شعار التطبيق. ستحتاج هنا الى بعض تقنيات التصميم او يمكنك تعيين مصمم للقيام بالأمر.
بعدها ستحين مرحلة النشر، و في هذه المرحلة سيتوجب عليك أيضا الأخذ بعين الإعتبار بعض مبادئ الـ ASO التي ستساعدك في جعل تطبيقك يحتل مراكز متقدمة في محركات البحث. لنساعدك في كل هذا نوفر لك القائمة الآتية :

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

Anonymous 3 مايو 2020 في 7:06 م

Thank you bro for this wonderful article