ماهو Android Studio؟

الاندرويد ستديو هو محرر او مجموعة  ادوات IDE لتطوير برمجيات الاندرويد مبني على بيئة IntelliJ IDEA, تم اطلاقه لاول مرة من قبل قوقل في منتصف 2013 كنسخة مبدئية للمطورين, وتم اطلاق النسخة النهائية منه في ديسمبر 2014 باصدار 1.1.

ما الفرق بين Android Studio vs Eclipse

دعم الـ Gradle

gradle

ماهو الـ Gradle ؟ دعني اشرح لك ماهو بالطريقة التالية:

في السابق كان كل شي تحتاج له اداة علشان تبرمج; فـ مثلاً: لبرمجة برنامج اندرويد بسيط يجب عليك اولاً ان تكتب ملفات الجافا وبعد ذلك تستخدم اداوات لتحويل الملفات هذه ودمجها مع ملفات ال resourses مثل الصور والنصوص وغيرها, فـ كل شيء كان يتم عن طريق سطر الاوامر, امر متعب صحيح؟

بعد كذا وجد Eclipse, هذا البرنامج ساعد المبرمجين, دمج لهم جميع الادوات التي يحتاجونها وسهل لهم الشغل, فمثلاً لا يحتاج منك ان تفصل شغلك وتستخدم ادوات خارجية, كل شي جاهز في برنامج واحد ومقسم في مجلدات, فقط برمج واستورد مكتباتك وملفاتك والبرنامج يتكفل بكل شي.

واخيرا الـ [Gradle](https://gradle.org) , الجردل هو نظام بناء متقدم, دمج جميع الخصائص التي يحتاجها المبرمج في نظام واحد, وماجاء به  الاندرويد ستديو هو انه  يستخدم Gradle والشيء الجميل في الجردل هو نظام الـ Plugins, بمعنى اذا احتجت اي مكتبه لايحتاج منك ان تحملها كملف jar وتضيفها لمشروعك, فقط تستوردها مباشره عن طريق سطر برمجي واحد, واخيراً ما يميز  الـ Gradle هو الـ Dependencies ساشرحه بالتفصيل بالاسفل.
#### Dependency

لنفرض مثلا اردت بناء تطبيق لساعات الاندرويد او نظام التلفاز, اذا اردت استخدام الـ Eclipse فانت مجبر على بناء مشروعين منفصلين عن بعض, الاول للجوال والاخر للساعة, وكل مشروع سينتج عنه Apk; وايضا لابد ان تربط المشروعين ببعض عن طريق العديد من الاوامر اذا اردتهم ان يعملوا بشكل متزامن, والسبب؟ ان الـ Eclipse لايدعم الـ Gradle.

ولكن اذا اردت استخدام الاندرويد ستديو الذي يدعم بالتاكيد الـ Gradle فتستطيع بناء اكثر من برنامج في نفس المشروع, بمعنى تستطيع بناء برنامج للجوال والساعة والتلفاز او اي جهاز اخر في مشروع واحد وبملف Apk واحد! هل تخيلت الفرق؟!

#### Live Preview

android-studio-4

المقصود بالـ Live preview هو امكانية عرض الواجهات التي قمت بتصميمها على مختلف احجام الشاشات( من 2.3 انش وحتى 10 انش), وايضا بامكانك كتابة الكود ومشاهدة التغيرات التي تحصل مباشرة على الواجهة امامك, هذا الامر كان متعب في الـ Eclipse او بالاصح اذا اردت مشاهدة التغيرات او التعديلات التي قمت بكتابتها, تنتقل من تبويب الى اخر, اما في الـ Android studi فالوضع جدا اسهل.

واجهة المستخدم

Screenshot-from-2014-04-24-210304

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

دعم الـ NDK

Android3

اذا كنت لاتعرف ماهو الـ Native development kit فهي مكتبات مبرمجة بلغة C/C++ يمكن عمل لها compile لـ  ARM, MIPS or x86 native code ومن ثم تنصبيها باستخدام الـ Android Native Development Kit, عادتا من يستخدم الـ NDK هم مطورين الـ ios اذا ارادوا استيراد اكواد جاهزة قاموا ببرمجتها دون الحاجة الى اعادة كتابتها من جديد بالجافا, او مطورين برامج real-time multimedia, فمعالجة النوع هذا من البيانات بالتحديد صعب باستخدام الجافا وبالتالي الحل استخدام C/C++. هذه المكتبات يمكن استدعائها باستخدام كود جافا واستخدامها ضمن مشاريع الاندرويد.

للاسف Android Studio لايدعم الـ NDK بخلاف Eclipse, فاذا كان مشروعك يتضمن هذا النوع من المكتبات فاستخدم الـ Eclipse افضل لك.

Google Cloud Platform

google-cloud-platform

الاندرويد ستديو يدعم بشكل مباشر Google Cloud Platform, هذه المنصة تسمح لك بتشغيل اكواد server-side باستخدام Google App Engine , بشكل متزامن مع المهام الاخرى, مثال تستطيع رفع نسخة احتياطية لبيانات المستخدم على السيرفر بشكل متزامن مع المهام الاخرى.

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

خلاصة المقارنة

[table id=1 /]

الخاتمة

هل يجب علي الانتقال من الـ Eclipse الى Android studio؟ جرب وشاهد بنفسك البرنامج ومن ثم حدد خيارك; اتوقع انه سيعجبك. اما اذا لم تستخدم الـ Eclipse من قبل فاستخدم مباشرة الـ Android studio.