اکلیپس یا اندروید استودیو: مسئله این است!

اکلیپس یا اندروید استودیو: مسئله این است!

در حالی که روز به روز به 6 ساله شدن سیستم عامل محبوب شرکت گوگل، یعنی اندروید، نزدیک می شویم تقریبا هر ساله شاهد یک نسخه جدید از سیستم عامل اندروید هستیم که با انتشار هر نسخه، تغییرات و نوآوری هایی در آن شاهد هستیم. این تغییرات شامل محیط برنامه نویسی و برنامه نویسان اندرویدی نیز هست و هر از چندگاهی یکی از این محیط های برنامه نویسی بروز رسانی می شوند.

تا کنون از بین محیط های برنامه نویسی معرفی شده اندروید دو محیط Eclipse و Android Studio به موفقیت های بیشتری دست پیدا کرده و بین کاربران از محبوبیت بیشتری برخوردار هستند. اما از بین این دو محیط برنامه نویسی کدامیک بهتر است و امکانات بیشتری در اختیار توسعه دهندگان قرار می دهد؟ در ابتدا به معرفی کامل این دو محیط می پردازیم و از پیشرفتهای آن ها در چند وقت اخیر برایتان می گوییم:

Android Studio:
محیط برنامه نویسی Android Studio در شانزدهم ماه می سال 2013 در کنفرانس Google I/O معرفی شد و نسخه پیش نمایش آن از ماه جوئن همان سال در دسترس توسعه دهندگان قرار گرفت. محیط برنامه نویسی Android Studio بر پایه IntelliJ IDEA برنامه نویسی شده است که اجرای سریعتر با مصرف منابع کمتر نسبت به محیط Eclipse ADT دارد و امکانات به مراتب بیشتری نسبت به محیط Eclipse ADT ارائه می دهد و زمانی که بطور کامل آماده شود به عنوان محیط برنامه نویسی اصلی اندروید معرفی خواهد شد. این به این معنی هست که اگر تا بحال برای برنامه نویسی اپلیکیشن های اندروید از Eclipse استفاده می کردید، بهتر است هرچه سریعتر با محیط این نرم افزار آشنا شوید چون این احتمال وجود دارد که پس از آنکه محیط برنامه نویسی Android Studio بصورت کامل معرفی شود آپدیت های جدید برای محیط Eclipse معرفی نشود! امکاناتی که این محیط توسعه در اختیار شما قرار می دهد:

- سیستم انعطاف پذیر بر پایه Gradle
- ساخت انواع گونه های متفاوت نسل های APK
- پشتیبانی از الگوهای گسترده برای خدمات گوگل و انواع مختلف دستگاه
- ویرایشگر غنی Layout ها همراه با پشتیبانی از ویرایش قالب ها
- ابزارهایی برای گرفتن عملکرد، قابلیت استفاده، نسخه های سازگار و مشکلات دیگر
- و …

با این حال هنوز این محیط برنامه نویسی در نسخه بتا قرار دارد و تعدادی از امکانات هنوز برای این محیط فعال نشده است و بسیاری از برنامه نویسان هنوز در انتظار نسخه پایدار این نرم افزار هستند. اما با همه این ها، همه مشکلات برنامه نویسی این محیط برطرف شده و در چند آپدیت اخیر فقط به اضافه کردن امکانات جدید پرداخته شده است.

Eclipse ADT: 
یک محیط برنامه نویسی متن باز بر اساس زبان برنامه نویسی Java است که Google با ارائه افزونه ای بنام ADT این محیط را برای برنامه نویسی اندروید آماده می سازد. همچنین برای ساده تر کردن کارهای نصب پلاگین و … گوگل اقدام به تهیه Eclipse ADT Bundle کرده است. در ادامه نیز به بررسی ویژگی های مشترک بین این دو محیط توسعه می پردازیم اما قبل از آنکه به نصیحت کردن بپردازیم ابتدا باید نکات مختلفی را مد نظر قرار داد. از جمله:

- شما در یک استدیو کوچک (با حداکثر یک یا دو توسعه دهنده) یا در یک شرکت بزرگ تشکیل شده از ده ها یا حتی صدها توسعه دهنده کار می کنید؟
- آیا پروژه شما یک پروژه جدید است؟
- اگر پروژه شما پروژه جدیدی نیست، آیا هم اکنون شما از Eclipse استفاده می کنید و به این فکر می کنید که به Android Studio مهاجرت کنید؟

طراحی رابط گرافیکی با قابلیت Drag and Drop:
ظاهرا یکی از ویژگی های جذاب Android Studio طراحی Layout آن با رابط Drag and Drop هست. اما واقعیت این است که مقدار زمانی که صرف طراحی با Drag and Drop برای شما زیاد خواهد بود مگر اینکه شما یک هواخواه محیط های دیداری باشید کسی که سالها به طراحی یک طرح 3D پیچیده با دکمه های مخروطی پرداخته باشید و به سادگی نتوانید عادت هایتان را از بین ببرید! قطعا شما یک رابط خوب و کار آمد نیاز دارید اما اگر شما واقعا می خواهید یک اپلیکیشن کارآمد طراحی کنید اکثر زمان شما به پرداختن روی کدهایتان صرف خواهد شد! نه به کلنجار رفتن با محیط دیداری!

نتیجه مقایسه: برابر قابلیت تکمیل کد (Code Completion): بیشتر زمان یک برنامه نویس به کلنجار رفتن با کدهای پروژه خود می گذرد، پس باید قدر دان وجود این قابلیت باشید. شخصا، مهمترین بخش برای من زمانی بود که IDE اعضای یک شیئ را برای من بیان می کرد. در کل، من فهمیدم این قابلیت خیلی در Android Studio در مقایسه با Eclipse کاملتر و بهتر است، در حالی که در Eclipse در اکثر اوقات کمی گیج کننده بود و همیشه نتایج دقیقی نمی دهد!

نتیجه مقایسه: Android Studio (با اقتدار!) یکپارچگی Gradle: Android Studio از مجموعه ابزارهای Gradle استفاده می کند؛ در واقع، آن واقعا یکپارچه است، و امکان ندارد از ابزار دیگری استفاده کند! به عبارت دیگر، شما گیر افتاده اید: اگر شما درحال تغییر از Eclipse به Android Studio هستید و از Gradle در Eclipse استفاده نکردید (که از طریق یک افزونه پشتیبانی برای آن ارائه می دهد)، شما در حال انجام یک تغییر بزرگ هستید. این نشان می دهد Gradle یک ابزار فوق العاده هست و اگر تصمیم گرفته اید از Eclipse استفاده کنید، با این حال پیشنهاد می کنم حتما به قابلیت های Gradle نگاهی بیاندازید و آن را امتحان کنید تا ببنید با پروژه شما هماهنگ هست، و اگر قصد مهاجرت به Android Studio را دارید از این نا امید نشوید که در Eclipse گیر کنید!

نتیجه مقایسه: Android Studio پلتفرم ابری گوگل: Android Studio دارای یک پشتیبانی محلی از پلتفرم ابری گوگل هست که به شما این امکان را می دهد تا با استفاده Google App Engine از کدهای سمت سرور استفاده کنید همراه با کارهای دیگر (مانند پشتیبانی از داده های کاربران خود). این یک قابلیت زیبا هست که شما احتمالا نمی خواهید اپلیکیشن شما از آن جدا باشد. (شما می توانید با دیگر فضا های ابری نیز یکپارچه شوید اما Android Studio آن را راحت تر کرده است). گوگل به شما این امکان را می دهد تا در کنسول فضای ابری آن پروژه هایتان را بسازید، که این امکان تنها برای اپلیکیشن های اندرویدی نیست! شما می توانید از آن برای ساخت اپلیکیشن های تحت وب استفاده کنید که در تعامل با نقشه های گوگل باشند. به عنوان مثال، نرم افزار روی سرور های ما که با Google Docs یکپارچه شده است. همچنین Android Studio این امکان را می دهد تا اپلیکیشنهای خود را یکپارچه کنید، تست کنید و کدهای سمت سرور خود را بصورت محلی اجرا کنید و بر روی یکی از سرورهای گوگل استقرار پیدا کنید؛ به زبان دیگر هر چیزی که نیاز دارید (حداقل برای شروع) آنجاست! اما همه این قابلیت ها برای Eclipse، با افزونه Google بر Eclipse وجود دارد. بله، شما می توانید یک اپلیکیشن سمت سرور با Eclipse بسازید و آن رو روی یکی از سرورهای گوگل استقرار دهید. ابزارهای اضافی به شما این امکان را می دهد تا با سرور یکپارچه شوید مانند پایگاه داده ها ابری.

نتیجه مقایسه: برابر رابط کاربری: Eclipse بزرگ است و احتمالا یک مقدار دست و پا گیر! من از آن از وقتی استفاده می کنم که از یک دهه پیش محبوب شد، بنابرین من از تمامی راه ها خصلتهای آن در رابط کاربری با خبر هستم. من به یاد می آورم در ابتدا ضعف داشت، اما بگذارید آن را توضیح بدهم: همه محیط ها در ابتدای زمانی که از آن استفاده می کنید دچار ضعف هستند. با در نظر گرفتن آن، من گزینه های منو و ابزار ها را در Android Studio به من آن چیزهایی را نشان می دادند که واقعا نیاز داشتم سریعتر و راحت تر در مقایسه با همتایان خود در Eclipse ، حتی با وجود افزونه اندروید. آن می خواهد یاد آوری کند که یک جنبه دیگر در رابط کاربری نیز وجود دارد: Android Studio مخصوص طراحی برای اندروید طراحی شده است، در حالی که Eclipse ساخته شده تا یک محیط کاربری برای اهداف مختلف باشد با هر پلتفرم و هر زبانی (اگر چه جاوا به وضوح هدف اصلی بوده است).

نتیجه مقایسه: Android Studio محیطهای کاری و پروژه ها: یک چیزی که همیشه متوجه آن شدم رابطه غیر طبیعی Eclipse برای برقراری رابطه با فضای کاری است. زمانی که میخواهید روی چند پروژه بصورت همزمان کار کنید، شما آنها را در یک محیط با هم ترکیب می کنید. برای آنکه به یک فضای کار دیگر وارد شوید باید یک مسیر دیگر را انتخاب کنید و آنوقت Eclipse دوباره راه اندازی می شود که بنظر من همیشه دشوار به نظر می رسد. وقتی بخواهید پروژه ها را بین فضا های کار جابجا کنید همه چیز به سرعت به یک افتضاح تبدیل می شود. یک راه مناسب برای آن وجود دارد، اما این خیلی آسان هست که آنها را به هم متصل کنید. من علاقه زیادی به Microsoft Visual Studio ندارم اما بیشتر از هر محیط توسعه دیگری با آن کار کردم (به دلیل اینکه پرداخت مشتریان نیازمند کار در آن هست)، و من می گویم مدیریت پروژه ها و فضا های کاری (که solutions نامیده می شوند) در Visual Studio به نظر من خیلی ساده تر از آنها در Eclipse هست. در مورد Android Studio نیز موضوع بالا در مورد Visual Studio و Eclipse تکرار می شود. با Android Studio همه چیز در یک پروژه محصور می شود (برای همین احساس یک پروژه در Android Studio خیلی جالب تر از Workspace در Eclipse هست). در پروژه خود شما ماژولها (modules) را دارید، مجموعه اصلی خود از کدها، از جمله اپلیکیشنتان که در حال ساختش هستید یکی از ماژولهای شماست. اگر یک کتابخانه (library) برای اپلیکیشن خود داشته باشید آن نیز یک ماژول دیگر است. اما چیزهای دیگر نیز بعنوان یک ماژول واجد شرایط هستند، مانند اسکریپتهای ساخت. این برای من حس بهتری را به من می دهد و بسیار طبیعی تر به نظر می رسد. این مفهوم از IntelliJ IDEA به Android Studio به ارث رسیده است.

نتیجه مقایسه: Android Studio فرجام: با همه این وجود Android Studio هنوز هم در حالت بتا قرار دارد و از طرفی Eclipse نیز یک محیط توسعه کهنه است. اما تا الان تقریبا تمام مشکلات Android Studio برطرف شده اما برخی قابلیتها را ندارد! از طرفی احتمال اینکه پس از انتشار نسخه پایدار Android Studio دیگر از Eclipse پشتیبانی نشود خیلی زیاد است. در نهایت آیا نیاز هست تا از Eclipse به Android Studio مهاجرت کرد؟ جواب من این است: امتحانش کنید! از آن استفاده کنید، ببنید چه نظری در مورد آن دارید و آن زمان در موردش تصمیم بگیرید؛ مطمئن هستم که از آن خوشتان می آید. اگر هم اکنون از Eclipse استفاده می کنید، Android Studio را امتحان کنید، و اگر آن را دوست دارید، تصمیم بگیرید که چگونه به راحتی می توانید موقعیت خود را به سمت آن تغییر دهید.

از بهترین نوشته‌های کاربران سکان آکادمی در سکان پلاس


online-support-icon