اندروید با داشتن نزدیک به 2 میلیارد کاربر، محبوبترین و پراستفادهترین سیستم عامل موبایل است. اما اپلیکیشن ها و نرم افزارهای اندرویدی با چه زبانی نوشته میشوند؟ در این مطلب با زبان های برنامه نویسی اندروید آشنا خواهیم شد.
تصمیمگیری برای توسعه یک برنامه اندرویدی، آسانترین قدم در این فرآیند است! برنامه نویسی کار دشواری بوده و یکی از مشکلات توسعه نرم افزار برای افراد ناآشنا این است که نمیدانند باید از کجا شروع کنند. به عنوان نمونه پیش از آغاز باید به چند سوال شامل موارد زیر پاسخ داد:
- کدام زبان برنامه نویسی را باید یاد بگیرم؟
- زبان برنامه نویسی انتخاب شده را چگونه یاد بگیرم؟
- بعد از یادگیری مقدمات برنامه نویسی در آن زبان، کجا کدهای خود نوشته و اجرا کنم؟
زبان های برنامه نویسی اندروید
در این مطلب بیشتر تلاش میکنیم به نخستین سوال پاسخ بدهیم. انتخاب یک زبان کاملا به هدفی که در نظر دارید بستگی دارد. بعد از انتخاب خواهید توانست با یک جستجوی ساده، IDE مناسب برای آن را بیابید (پاسخ سوال سوم).
اختلاف بین زبان های برنامه نویسی اندروید در برخی موارد جزیی بوده و در برخی موارد بسیار زیاد میشود. انتخاب یکی از آنها به منظور شروع کار، نیازمند آشنایی با تواناییها و نقاط ضعف هر کدام است. در ادامه با زبان های برنامه نویسی اندروید آشنا خواهیم شد. با انتخاب هر یک خواهید توانست یک اپلیکیشن اندرویدی ایجاد کنید.
- جاوا: جاوا، زبان برنامه نویسی رسمی اندروید بوده و توسط محیط توسعه اندروید استودیو پشتیبانی میشود. جاوا یکی از دشوارترین زبانهای برنامهنویسی به منظور یادگیری است.
- کاتلین: اگرچه کاتلین بعد از جاوا دومین زمان برنامه نویسی رسمی اندروید به شمار میآید، اما برخلاف آن قدیمی نبوده و به تازگی معرفی شده است. کاتلین از بسیاری جهات مشابه جاوا است، اما یادگیری و استفاده از آن کمی راحتتر به نظر میرسد.
- ++C / C: اندروید استودیو با استفاده از Android NDK، از زبان قدیمی و محبوب سی پلاس پلاس نیز پشتیبانی میکند. با استفاده از آن ایجاد برنامههای کاربردی همچون بازیهای اندرویدی امکانپذیر خواهد شد. نباید پیچیدگی یادگیری این زبان را فراموش کرد.
- #C: این زبان در مقایسه با ++C و C راحتتر بوده و توسط محیطهای توسعه بسیار قدرتمندی همچون زامارین و یونیتی پشتیبانی میشود. این ابزارها برای توسعه چند پلتفرمی و همچنین بازیهای موبایل فوقالعاده هستند.
- بیسیک: نخستین زمان ظهور بیسیک به 53 سال قبل برمیگردد، اما همچنان قدرتمند بوده و میتوان آن را جزو زبان های برنامه نویسی اندروید به شمار آورد!
- Corona: این مورد نیز برای توسعه ابزارهای چند پلتفرمی مناسب است. استفاده از کتابخانههای محلی و آسانسازی فرآیند تولید اپلیکیشن از مزایای کرونا است.
- فون گپ (اچ تی ام ال، سی اس اس، جاوااسکریپت): اگر یک طراح وب بوده و به این واسطه با HTML و CSS و احتمالا جاوااسکریپت آشنا هستید، میتوانید به لطف فون گپ، بدون نیاز به یادگیری سایر زبان های برنامه نویسی اندروید ، اپلیکیشن خود را ایجاد کنید.
آشنایی بیشتر با زبان های برنامه نویسی اندروید
در بالا، زبان های برنامه نویسی اندروید را معرفی کردیم. اکنون کارایی هر یک برای ایجاد نرم افزارهای این سیستم عامل را تشریح خواهیم کرد. یکی از این موارد را انتخاب کرده و سپس کار را آغاز کنید.
جاوا
در زمان مطرح شدن برنامه نویسی اندروید، محبوبترین و نخستین پیشنهاد جاوا است. در بین زبان های برنامه نویسی اندروید ، جاوا رسمیترین مورد بوده و به همین دلیل بیشترین پشتیبانی را از سمت گوگل دریافت میکند. بیشترین نرم افزارهای موجود در گوگل پلی استور با استفاده از جاوا توسعه پیدا کردهاند.
سرراستترین کار برای ایجاد یک برنامه مناسب محبوبترین سیستم عامل موبایل دنیا، دریافت و نصب اندروید استودیو است. این محیط توسعه (IDE) رسمی اندروید بوده و چند سال پیش به صورت رسمی توسط گوگل برای آسودگی کار برنامهنویسان معرفی شد. این IDE همه چیز را برای یک توسعهدهنده اندروید به صورت یکجا فراهم میکند. آموزشهای زیادی درباره چگونگی استفاده از اندروید استودیو وجود داشته و کتابخانههای فراوانی برای به کار بردن درون آن یافت میشود.
جاوا در سال 1995 معرفی شد. اگرچه با استفاده از آن میتوان هر نوع نرم افزاری برای پلتفرمها و سیستم عاملهای مختلف نوشت، اما اصلیترین کاربرد جاوا، توسعه اپلیکیشنهای تحت وب است. دلیل امکان استفاده از برنامههای جاوا در پلتفرمهای مختلف، ماشین مجازی آن است که به راحتی بر روی هر سیستم عامل نصب میشود. دستگاههای اندرویدی نیز دارای این ماشین بوده و کدهای جاوا را تحلیل میکنند.
مشکل اینجاست که جاوا جزو سختترین زبانهای برنامه نویسی بوده و برای افرادی که با کدزنی آشنایی ندارند، نخستین تجربه را تبدیل به بدترین تجربه خواهد کرد! اندروید به نوبه خود به خاطر در بر داشتن مفاهیم شیگرایی بسیار پیچیده است و پیچیدگی جاوا نیز به این موضوع دامن خواهد زد.
فراموش نکنید هیچ زبان برنامه نویسی بد نبوده و همانند زبانهای گفتگوی رایج انسانها، با استفاده از هر کدام میتوان به هدف خود رسید. قدرت جاوا بیشتر از همین ساده نبودن آن ریشه میگیرد. بر اساس جدول محبوبترین زبانهای برنامه نویسی دنیا، جاوا اکنون با فاصله زیاد از پایتون (دومین زبان محبوب)، در صدر قرار دارد.
بعد از انتخاب جاوا از بین زبان های برنامه نویسی اندروید ، مطمئنا IDE مورد استفاده، اندروید استودیو خواهد بود. در این محیط توسعه به لطف وجود حالت بصری، میتوان برخی کارها را به صورت درگ اند دراپ و چند کلیک ساده انجام داد و مشاهده کرد کدهای مربوط به آنها، به صورت خودکار نوشته شدهاند.
کاتلین
کاتلین در سال 2011 ظاهر شد، اما به تازگی به فهرست زبان های برنامه نویسی اندروید اضاف شده و حتی توانسته مقام دومین زبان برنامه نویسی رسمی این پلتفرم را نیز به دست بیاورد. به عقیده برخی، کاتلین پتانسیل بسیار زیادی برای پیشرفت دارد.
همانند جاوا، کاتلین نیز بر روی ماشین مجازی جاوا اجرا میشود. این زبان با جاوا سازگار بوده و سبب کاهش بازدهی نرم افزار و یا افزایش حجم فایل نهایی نخواهد شد. اصلیترین تفاوت آن، نیاز به کدنویسی کمتر است که کار را برای یادگیری و در ادامه کدزنی راحتتر میکند. به عنوان نمونه دیگر نیازی به استفاده مداوم از سمیکالن (;) در پایان هر خط نبوده و دیگر ارورهایی نظیر “Null Point Exceptions” مشاهده نخواهد شد. در نتیجه برای افراد ناآشنا به کدنویسی، به مراتب انتخاب بهتری است.
امکان استفاده از اندروید استودیو حین کدزنی با کاتلین یکی دیگر از مزایای این انتخاب به شمار میآید. به خاطر تازگی این زبان، هنوز جامعه قدرتمندی برای آن وجود ندارد، به همین دلیل در زمان برخورد با مشکل، احتمالا پاسخی دریافت نخواهید کرد. این در حالی است که جامعه برنامه نویسان جاوا مملو از توسعهدهندگان باتجربه است.
++C / C
در اندروید استودیو به لطف امکان استفاده از Android NDK، از زبانهای سی و سی پلاس پلاس نیز پشتیبانی میشود. یعنی میتوان برنامههایی نوشت که بر روی ماشین مجازی جاوا اجرا نشده و در عوض، به صورت مستقیم توسط خود دستگاه تفسیر میشوند. به این ترتیب میتوان کنترل بیشتری بر روی برخی قسمتها همچون حافظه داشت. برای اپلیکیشنهای سنگین همچون بازیهای 3 بعدی، میتوان به این وسیله بیشترین بازدهی را از هر دستگاه اندرویدی دریافت کرد.
سی و سی پلاس پلاس به عنوان ورژن دارای ویژگیهای شیگرایی آن، مملو از کتابخانههای آماده هستند و همین موضوع آنها را برای برخی توسعهدهندگان تبدیل به بهترین زبان های برنامه نویسی اندروید میکند.
انعطافپذیری پایین در مقایسه با جاوا و وجود باگهای بیشتر، مشکلاتی هستند که حین برنامه نویسی اندروید با استفاده از سی پلاس پلاس در برابرتان قرار خواهند گرفت.
#C
سی شارپ، نسخهای تر و تمیز و کاربردی از سی پلاس پلاس بوده و توسط مایکروسافت توسعه پیدا کرده است. هدف مایکروسافت از ارائه آن، در دسترس بودن قدرت بالای ++C و ترکیب آن با سادگی استفاده از ویژوآل بیسیک بود. میتوان آن را به نوعی نسخه ساده شده جاوا دانست.
یکی از مزایای سی شارپ همچون جاوا، وجود ویژگی زبالهروبی خودکار است، به این معنی که نیاز نیست به صورت دستی خانههای حافظه بدون استفاده را حذف کنید تا از مصرف بیهوده حافظه اصلی جلوگیری شود.
در مقایسه با جاوا، سی شارپ مدرنتر بوده و سینتکس مرتبتری دارد. برنامهنویسانی که به جای دنیای متن باز، بیشتر در پلتفرمها و زبانهای مایکروسافت فعالیت کردهاند، بدون شک از بین زبان های برنامه نویسی اندروید سی شارپ را انتخاب خواهند کرد.
ترکیب استفاده از سی شارپ و یونیتی، قدرت زیادی به توسعهدهنده خواهد بخشید. Unity، یک موتور بازی بوده و مواردی همچون محاسبات فیزیکی و رندر گرافیکهای سه بعدی را انجام میدهد. در واقع با یک IDE شبیه به اندروید استودیو رو به رو هستیم. این ابزار رایگان، توسعه بازیهای اندرویدی دارای گرافیک بالا را راحت میکند.
تنها با نوشتن چند خط کد طی یک ساعت میتوانید یک بازی ساده ایجاد کنید! بیشتر استودیوهای بازیسازی که محصولاتشان را در گوگل پلی استور قرار میدهند، از این ترفند برای توسعه استفاده میکنند.
اگر دوست دارید به یک توسعهدهنده اندرویدی، که قادر به ساخت بازی و اپلیکیشن به صورت همزمان است تبدیل شوید، بهتر است یونیتی را فراموش کنید، چرا که محدودیتهای بسیار زیادی به منظور توسعه اپلیکیشنهای کاربردی (غیر از بازی) دارد.
بیسیک
بیسیک برخلاف نام آن چندان ساده نبوده و این اسم نامگذاری مخفف عبارت «دستورالعمل کلی نمادین همه منظوره برای مبتدیها» (BASIC -> Beginners All-Purpose Symbolic Instruction Code) است.
متاسفانه امکان استفاده از آن در محبوبترین محیطهای توسعه نرم افزارهای اندروید یعنی اندروید استودیو، یونیتی و یا زامارین وجود ندارد. با این حال به لطف B4A (مخفف بیسیک برای اندروید) میتوان از بابت وجود یک محیط توسعه اختصاصی در زمان استفاده از این زبان مطمئن بود.
مطمئنا در دورهای که اپلیکیشنهای اندرویدی روز به روز پیچیدهتر و حرفهایتر میشوند، کمتر کاربری به یکباره از بین زبان های برنامه نویسی اندروید به سراغ بیسیک خواهد رفت، اما در اختیار داشتن گزینههای بیشتر همواره یک امتیاز محسوب میشود. یکی از اصلیترین سد راههای استفاده از بیسیک در مقایسه با تمامی زبان های برنامه نویسی اندروید و محیطهای توسعه معرفی شده در این مطلب، رایگان نبودن آن است!
Corona
این زبان از جمله مواردی است که در عین ارائه قدرت بالا و کنترلهای کافی برای ساخت ابزارهای اندرویدی دلخواه، ساده و قابل فهم است. حین استفاده از آن در LUA کدزنی خواهید کرد که در مقایسه با جاوا سادهتر است. وجود کیت توسعه نرم افزار (SDK) کرونا نیز به سادگی آن میافزاید.
کرونا از تمامی کتابخانههای محلی پشتیبانی کرده و امکان ارائه ابزار برای پلتفرمهای مختلف را فراهم میکند. اگرچه بیشتر به منظور توسعه بازی از کرونا استفاده میکنند، اما کاربردهای بسیار بیشتری برای آن تعریف شده است. میتوان بدون نیاز به کامپایل کردن کدها، نتیجه کار را بر روی یک شبیهساز مشاهده کرد. نیازی به استفاده از یک IDE خاص نبوده و کدنویسی در نوت پد نیز کفایت میکند.
کرونا هم برای تازه واردها و هم برای افراد حرفهای گزینه مناسبی محسوب میشود، اما محدودیتهای آن سبب خواهد شد در زمان توسعه برنامههای پیشرفتهتر، با مشکلاتی مواجه شوید.
فون گپ (HTML و CSS)
یکی دیگر از سادهترین موارد در بین زبان های برنامه نویسی اندروید ، بهره بردن از فون گپ است که توسعه اپلیکیشن با استفاده از اچ تی ام ال و سی اس اس را امکانپذیر میکند. برای افرادی که دستی در طراحی سایت دارند، هیچ راهکاری بهتر از این یافت نخواهد شد!
فون گپ از Apache Cordova قدرت گرفته و به واسطه آن، به همان شیوهای که با استفاده از HTML و همچنین CSS و جاوااسکریپت اقدام به طراحی صفحات وب میکنید، ایجاد اپلیکیشنهای موبایلی نیز امکانپذیر میشود. نتیجه کدهای نوشته را در یک حالت WebView مشاهده خواهید کرد.
فون گپ در اینجا همانند یک پل عمل کرده و به توسعهدهندگان اجازه میدهد به چند مورد از ویژگیهای ساده دستگاه همچون شتابسنج و یا دوربین دسترسی پیدا کنند.
همانطور که احتمالا میدانید، اچ تی ام ال و سی اس اس برای ساخت صفحات وب کاربرد داشته و به هیج عنوان زبان برنامه نویسی محسوب نمیشوند، به همین دلیل برای ایجاد یک اپلیکیشن کاربردی حین بهره بردن از فون گپ، باید دست به دامن جاوااسکریپت (کاملا متفاوت از جاوا) شوید. به لطف فون گپ، برنامه نویسی اندروید با استفاده از اچ تی ام ال و سی اس اس امکانپذیر میشود، اما هیچگاه نخواهید توانست یک نرم افزار حرفهای تولید کنید.