برمجة تطبيقات الاندرويد
تريد تعلم برمجة تطبيقات الاندرويد؟ رائع! ولكن من المؤسف أن رغبتك هذه ليست كافية، لأنه قد يكون تعلم الرمجة معقدًا، ففي بعض الأحيان قد لا تعرف حتى من أين نبدأ! وبالتالي، فربما يكون لديك عدد كبير من الأسئلة التي يتعين عليك الإجابة عليها قبل أن تبدأ .
ما هي اللغة البرمجية التي يجب أن تتعلمها؟
أين يمكنك التعرف على اللغة التي اخترتها؟
في هذا المنشور، سنحاول الإجابة على هذه الاسئلة، ولتحقيق هذه الغاية، فسوف يكون لزاماً عليك أن تقوم ببعض البحث عن الذات، حيث أن تحديد لغة البرمجة التي تبدأ بها سوف يعتمد بالكامل على ما تأمل في إنجازه.
برمجة تطبيقات الاندرويد
إذا كنت تريد برمجة تطبيقات الاندرويد، فالخطوة الأولى هي اختيار لغة مناسبة، قد تكون الاختلافات بين لغات برمجة تطبيقات الاندرويد المختلفة معقدة بعض الشيء ومختلفة بعض الشيء، ولكن الأمر الأكثر أهمية من اللغة ذاتها هو الأداة التي ترتبط بها، فضلاً عن خصائصها وأهدافها الرئيسية.
اللغات التي يجب تعلمها لتطوير تطبيقات الاندرويد:
Java هي لغة تطوير رسمية لـ Android وهي مدعومة من Android Studio، وقد كانت لغة رسمية لفترة أطول من لغة كوتلين، وهي أيضاً أكثر شعبية من كوتلين لأسباب أخرى عديدة. ومع ذلك، يتمتع Java وAndroid Studio بمنحنى تعلم شديد الانحدار.
كوتلين آخر لغة رسميّة للاندرويد. وهو يشبه Java من نواح عديدة، ولكن فهمه أسهل بعض الشيء. وهي أيضاً اللغة المفضلة لدى جوجل، ولو أنها لا تستخدم على نطاق واسع خارج Android Studio. وهذا من شأنه أن يجعل الأمر أقل جاذبية بالنسبة لهؤلاء الذين يأملون في العمل كمطورين في العديد من المشاريع.
C++ – يدعم Android Studio أيضًا C++ مع استخدام Java NDK. وهذا يجعل من الممكن استخدام تطبيقات الترميز الأصلية، والتي يمكن أن تكون ملائمة لأشياء مثل الألعاب. ومع ذلك، فإن C++ أكثر تعقيداً وهذا الخيار يكون عموماً للفرق المهنية الكبيرة فقط. يتم دعم C++ أيضًا بواسطة محرك غير حقيقي.
C# هو بديل سهل الاستخدام للمبتدئين أكثر من C أو C++ مما يؤدي إلى حجب الكود. كما أنه أقل صعوبة من جافا، على الرغم من أن اللغتين متشابهتين للغاية. وهو مدعوم بأدوات عملية للغاية مثل Unity وXamarin، وهما ممتازين لتطوير الألعاب وتطوير منصات متعددة. سي شارب مع يونيتي هو أفضل خيار للعديد من مطوري ألعاب المحمول.
Corona آخر أداة متعددة المنصات استنادا إلى lua. وهو يعمل على تبسيط عملية إنشاء التطبيقات بشكل كبير مع السماح في الوقت نفسه باستدعائها في المكتبات الأصلية.
JavaScript – إذا كنت تعرف بالفعل كيفية إنشاء صفحات ويب تفاعلية، يمكنك استخدام هذه المعرفة مع PhoneGap لإنشاء تطبيق أبسط عبر النظام الأساسي.
جافا لبرمجة تطبيقات الاندرويد
عندما حين الوقت لبرمجة تطبيقات الاندرويد، تظل الجافا أحد الخيارين الرسميين. وهذا يعني أنهاتحظى بالكثير من الدعم من طرف جوجل. من المحتمل أن تكون معظم التطبيقات غير المتعلقة بالألعاب قد تم إنشاؤها إما باستخدام Java أو Kotlin.
إن الطريقة الأولى لتطوير تطبيقات Android هي المضي قدمًا وتنزيل Android Studio. هذا برنامج يسمى IDE أو بيئة التطوير المتكاملة. وسوف يأتي مع مجموعة أدوات Android SDK (مجموعة من الأدوات لتسهيل تطوير Android على وجه التحديد)، وسوف يمنحك هذا كل ما تحتاج إليه في مكان واحد لبدء التشغيل.
تم إصدار Java نفسها من قبل Sun Microsystems في عام 1995، وهي تستخدم لمجموعة كبيرة من تطبيقات البرمجة. وحتى مع أن جوجل قد أوضحت تفضيلها لكوتلين، فإن جاوة راسخة ومألوفة إلى الحد الذي جعل العديد من فرق التطوير تختار الالتزام بها.
ولكن من المؤسف أن جافا أيضاً معقدة، وهي ليست “لغة أولى” عظيمة. تزداد الأمور تعقيداً بعد إضافة SDK إلى مجموعة أدوات تطوير البرامج (SDK) الخاصة بنظام Android إلى المزيج؛ فبإمكان أداة إنشاء البرامج لأول مرة أن تجد صعوبة في معرفة ما هو Java وما هو Android! Java عبارة عن لغة برمجة موجّهة للكائنات مع مواضيع مربكة مثل البنيات واستثناءات المؤشر الخالية والاستثناءات المحددة والمزيد. فهي غير قابلة للقراءة بدرجة كبيرة وسوف تستخدم الكثير من رموز “اللوحة البويلية” التي تقوم بأشياء بسيطة. يتطلب التطوير باستخدام هذا المسار أيضاً فهماً أساسياً لمفاهيم مثل Gradle و Android Manifest وXML .
وهذا لا يعني أن لغة الجافا سيئة . لن يكون من الخطأ أن نطلق على أي لغة وصف “السيئ” فحسب، بل إنه من الصحيح أيضاً أن أغلب مضايقات Java موجودة بالفعل من أجل صالحنا الخاص ونشجع على الحصول على كود نظيف. إن الكثير من الناس يحبون Java لهذا السبب، كما أنه واحد من أكثر اللغات تنوعًا واستخدامًا على نطاق واسع. ووفقاً لجدول PYPL (شعبية لغات البرمجة)، فإن Java هي الأكثر طلبا.
Android Studio أيضًا له بداية قوية على مدار السنوات القليلة الماضية. فالميزات مثل المصمم المرئي والاقتراحات تجعل العملية أكثر سلاسة، في حين تتم إضافة ميزات متقدمة وقوية طوال الوقت لمنح المطورين إمكانية الوصول إلى أشياء مثل التخزين السحابي مع سهولة التنفيذ. ومن الجدير بنا أن نواكب هذا التطور ، حتى ولو كان هذا التقدم السريع سبباً في صعوبة الاستمرار في العمل في بعض الأحيان .
كوتلين
كانت كوتلين لغة رسمية لتطوير تطبيقات الاندرويد لبعض الوقت، بل إن جوجل ذهبت إلى الحد الذي جعل كوتلين الخيار المفضل لتطوير نظام Android. ولكن مع استثمار العديد من فرق التطوير في جافا بالفعل، فهناك العديد من الذين اختاروا عدم التحول.
مثل جافا، كوتلين يعمل على جهاز جافا الظاهري. كما أنه قابل للتشغيل البيني تمامًا مع Java ولا يسبب أي تباطؤ أو زيادة في أحجام الملفات. والفارق هنا هو أن كوتلين تحتاج إلى عدد أقل من شفرة “اللوحة الأساسية”، وهذا يعني أنها نظام أكثر تنظيماً وسهولة في القراءة. كما أنه لا يحتوي على أخطاء مثل استثناءات النقاط الخالية حتى أنه يعذرك من إنهاء كل سطر باستخدام الفواصل المنقوطة. باختصار، من الرائع أن تتعلم للتو برمجة تطبيقات الاندرويد للمرة الأولى.
لذا، فإن Kotlin هو بالتأكيد نقطة انطلاق أسهل للمبتدئين، وحقيقة أنه لا يزال بإمكانك استخدام Android Studio هو ميزة إضافية كبيرة. ورغم هذا فإن الأمر لا يزال يشكل لغة معقدة في حد ذاته، وسوف تظل في احتياج إلى التعرف على الكثير من “الأشياء” الإضافية التي تحتاج إليها لبناء تطبيق Android بهذه الطريقة. وهناك أيضاً عيب إضافي طفيف في استخدام كوتلين على نطاق أقل خارج تطوير نظام Android.
C/C++
من المنصف أن نقول إن أغلب الناس الذين يقرؤون هذا لا ينبغي لهم أن يختاروا هذا الطريق لتطوير تطبيقات Android. يقدم Android Studio الدعم للغة C/C++ باستخدام Android NDK (مجموعة التطوير الأصلي). وهذا يعني أنك ستكتب تعليمة برمجية لا تعمل على Java Virtual Machine، ولكنها تعمل بشكل أساسي على الجهاز وتمنحك المزيد من التحكم في أمور مثل تخصيص الذاكرة. بالنسبة إلى التطبيقات المكثفة مثل الألعاب ثلاثية الأبعاد، يمكن أن يتيح لك ذلك الضغط على أداء إضافي من جهاز Android. ويعني ذلك أيضًا أنك ستتمكن من استخدام المكتبات المكتوبة في C أو C++ .
ومع ذلك، فإن البرمجة ب C/C++ يكون أكثر صعوبة في الإعداد، و يقدم المزيد من الأخطاء، وهما أقل مرونة. وإذا كنت تريد إنشاء لعبة كمبيوتر، فربما تكون في حال أفضل باستخدام محرك ألعاب جاهز مثل Unity.
C#
تم تطوير سي شارب من قبل مايكروسوفت بهدف الجمع بين قوة سي+ وسهولة فيجوال بيسك. فهو يقرأ الكثير مثل Java، وإذا كنت تعرف إحدى هذه اللغات، فسوف يكون من السهل نسبياً التبديل إلى الأخرى. مثل جافا، سي شارب عبارة عن قمامة يتم جمعها، مما يعني أنك لا تحتاج إلى القلق بشأن أشياء مثل تسرب الذاكرة وتحرير الذاكرة بنفسك. ولكن في نفس الوقت، سي شارب أكثر حداثة من جافا ببناء الجملة الأنظف – على الرغم من أن هذا قد يكون مجرد تحيزي الخاص الذي يأتي من خلال. إن أفضل لغة لبرمجة تطبيقات الاندرويد هي سي شارب!
إذا كنت تريد مقدمة سهلة وترحيبية بشكل خاص لتطوير تطبيق Android، فأنصح بمزيج من C# وUnity. إن Unity هي محرك ألعاب (بمعنى أنها توفر أمورًا مثل حسابات الفيزياء وعرض الرسومات ثلاثية الأبعاد) وIDE (مثل Android Studio).
هذه أداة مجانية تجعل من السهل بشكل لا يصدق إنشاء الألعاب الخاصة بك – مع بضعة أسطر فقط من التعليمات البرمجية يمكنك أن يكون لديك منصة اللعبة الأساسية التي تم إعدادها في أقل من ساعة. لا مبالغة! وهي أيضاً تتمتع بقوة تامة، فهي الأداة التي تستخدمها أغلب استوديوهات الألعاب في متجر Google Play.
كحل عبر الأنظمة الأساسية، ستتيح لك Unity أيضًا توصيل ألعابك بأنظمة تشغيل أخرى مثل iOS وWindows. يمكنك حتى إنشاء ألعاب وحدة تحكم! وفوق كل ذلك، فإن التطور بهذه الطريقة يوفر طريقة عملية للغاية لتعلم البرمجة القائم على الكائن (لأن الكائنات في هذه الحالة هي بالفعل كائنات في معظم الوقت!). وبالنسبة لأولئك الذين يأملون في بدء مهنة في تطوير الألعاب، فإن تعلم Unity يشكل خطوة أولى ممتازة.
التحديد؟ إن Unity مفيدة في إنشاء الألعاب ولكن دون المستوى المطلوب لإنشاء تطبيقات Android القياسية، وخاصة إذا كنت تريد التوافق مع لغة تصميم المواد من Google.
ألم تكن حريصة على الوحدة؟ بعد ذلك، يمكنك التفكير في Unreal بدلاً من ذلك (رسومات أفضل، أقل ملاءمة للجوال) أو صانعي الألعاب المبسّطة مثل GameMaker Studio.
يمكن أيضًا استخدام سي شارب مع أكسامارين Xamarin من خلال فيجوال ستوديو . وهذا يشبه إلى حد أكبر تطوير مع ميزة كونه منصة مشتركة (مصدر برنامج واحد لنظامي التشغيل Android وiOS). بالنسبة للمبتدئين بالكامل، يعد هذا الطريق مرة أخرى نقطة دخول غير مباشرة إلى تطوير Android. ولكن بالنسبة لشركة صغيرة ترغب في إنشاء تطبيق لنظامي التشغيل iOS وAndroid، فمن المنطقي أن يتوفر الكثير من الدعم والمعلومات لمساعدتك.
Corona
ويقدم كورونا خياراً آخر أبسط إلى حد كبير لبرمجة تطبيقات الاندرويد، في حين يمنحك قدراً كبيراً من القوة والتحكم. سوف تقوم بالبرمجة في lua وهو أسهل بكثير من Java. وسوف يجعل كورونا SDK (مجموعة تطوير البرامج) الأمور أكثر سهولة. وهو يدعم كافة المكتبات الأصلية ويسمح لك بالنشر على أنظمة أساسية متعددة.
وهو يستخدم إلى حد كبير في إنشاء الألعاب ولكن يمكن استخدامه بطرق مختلفة أيضاً. ستحتاج إلى استخدام محرر نصوص مثل Notepad+ لإدخال التعليمات البرمجية الخاصة بك، كما يمكنك تشغيل التعليمات البرمجية على المحاكي دون الحاجة حتى إلى التحويل البرمجي أولاً. عندما تكون مستعدًا لإنشاء APK ونشره، ستتمكن من القيام بذلك باستخدام أداة عبر الإنترنت.
وهذا يتطلب مهارات البرمجة الأساسية، ولكنه يقدم تعريفاً لطيفاً لعالم الشفرة. ولكن من ناحية أخرى، فإنه محدود بكل تأكيد في ما يمكن إنجازه، ولا يبعد سوى خطوات قليلة عن الوصول إلى منطقة “منشئ التطبيقات”. وهذا أكثر فائدة بالنسبة لشخص يرغب في إنشاء شيء بسيط نسبياً ولا يهتم بتطوير مهاراته في البرمجة أو التحول إلى محترف. إذا كنت تريد استخدام ميزات مثل الشراء داخل التطبيق، فستحتاج إلى دفع رسوم. وينطبق الأمر نفسه على استخدام واجهات برمجة تطبيقات Android الأصلية.
JavaScript
إن PhoneGap مزوّد بـ Apache Cordova، وهو يسمح لك بإنشاء تطبيقات باستخدام الرمز نفسه الذي تستخدمه عادةً لإنشاء موقع ويب: HTML وCSS وJavaScript. ثم يظهر ذلك من خلال “WebView” — عنصر واجهة مستخدم يعرض موقع ويب ضمن تطبيق. يعمل الهاتف المحمول مثل الجسر، مما يسمح للمطورين بالوصول إلى بعض الميزات الأساسية الأصلية للهاتف أو الكمبيوتر اللوحي مثل مقياس التسارع أو الكاميرا.
بيد أن هذا ليس حقاً تطوراً “حقيقياً” فيما يتصل بالندرويد، والبرمجة الحقيقية الوحيدة سوف تكون عبارة عن “برنامج جافا سكريبت”. وبالنسبة للعديد من المهام الأساسية، فإن هذا من شأنه أن يؤدي المهمة، ولكن إذا كنت تريد أن تتمكن من الزعم بأن “تطبيق Android developerhood” (وهذا شيء) حقا، فيتعين عليك أن تتحلى بالشجاعة في واحد من الخيارات الأخرى على هذه القائمة.
لذا اختر اللغة التي تفضلها! هناك الكثير من الخيارات لبرمجة تطبيقات الاندرويد: من Java وKotlin إلى C وC# وJavaScript!
وسوف يعتمد الاختيار الصحيح على مشاعرك وأهدافك، ولكن أياً كان ما تقرره فسوف تجد أن تعلم البرمجة يشكل تجربة رائعة وممتعة، فضلاً عن كونه فرصة تفتح لك أبواب كثيرة. كما أن تعلّم كيفية استخدام Android هو المكان المثالي للبدء. نأمل الآن أن تكون على الأقل أكثر حول كيفية تطوير تطبيقات Android، ولكن إذا كانت لديك أي أسئلة، فضعها في التعليقات، وسوف يبذل فريقنا – وقارئونا – قصارى جهدنهم للرد عليها. حظًا سعيدًا!