هماکنون نزدیک به ده سال از رواج اندروید میگذرد؛ اما این بدین معنا نیست که شما فرصت یادگیری ساخت برنامههای اندروید را از دست دادهاید. در واقع زمان بهتری جز الان برای یادگیری اندروید نیست. هیچوقت مثل الان راههای مختلف برای نوشتن اپلیکیشن های اندروید وجود نداشته است. از آن جایی که تمام Chromebookهای جدید قادر به نصب و راهاندازی برنامههای اندروید هستند، بازار برنامههای اندروید رو به رشد است. نگران دیر شدن نباشید، تنها کاری که لازم است انجام بدهید این است که بنشینید، نفسی عمیق بکشید، زبان مناسب برنامهنویسی را انتخاب کنید و دست به کار شوید.
کدام زبان برنامهنویسی برای شما مناسب است؟ هیچ کس نمیتواند به شما بگوید از چه چیزی استفاده کنید؛ بلکه تجربه شما در برنامهنویسی (و یا نداشتن تجربه) مهم است و این که با چه زبانی بیشتر احساس راحتی میکنید. خوشبختانه شما حق انتخاب دارید. در این جا لیستی از بهترین زبانهای برنامه نویسی را معرفی میکنیم.
۱. زبان Java (جاوا)
انتخاب زبان Java انتخاب خوبی است. این زبان، زبان رسمی اندروید است. Java دومین زبان فعال در GitHub به حساب میآید و بیشتر از 20 سال سابقه دارد. تمام این حرفها به این معناست که آموزشهای فراوانی برای این زبان وجود دارد و به این زودی نگران از دور خارج شدن و منسوخ شدن این زبان نیستید. از آن جایی که Java در دهها صنعت به کار گرفته میشود، ما به شما توصیه میکنیم از کتابهای آموزشی Java برای اندروید شروع کنید.
مشخصاً زبان Java در هر حال به همان شکل است اما الگوها و اصطلاحهایی وجود دارند که میتوانند به داشتن درکی بهتر از برنامه نویسی در اندروید کمک کنند. این هدفی است که اکثر کتابهای اصولی اندروید در نظر دارند. به یاد داشته باشید از آنجایی که Java قدیمی است، برخی از خصوصیات و ظرافتهای زبانهای جدید را ندارد. اگر شما یک تازهکار هستید این موضوع بر شما تأثیر نمیگذارد اما اگر زبانهای دیگر مانند Swift را بلد باشید، ممکن است در Java کمی احساس محدودیت به شما دست بدهد.
۲. زبان Kotlin
Kotlin یک زبان برنامهنویسی است که برای اجرا در ماشین مجازی Java طراحی شده است. این یعنی برنامههای Kotlin بر روی Bytecodeهای Java سوار هستند و به برنامهها اجازه میدهد تا بر روی هر ماشینی که Java runtime Environment را پشتیبانی میکند، اجرا شوند. از آن جایی که اکثر ماشینها این محیط را پشتیبانی میکنند، Kotlin یک راه بهنسبت راحت برای خلق نرمافزارهای چندسکویی (Cross-platform) است. با Kotlin شما بهترین خصوصیات Java را بدون نقاط ضعف آن در اختیار دارید. هماهنگی قسمتهای مختلف و خصوصیات Kotlin امروزی، تمیز و سریع هستند و تجربه برنامهنویسی راحتی را ارائه میکنند. در حالی که Java به نظر سنگین و منسوخ به نظر میرسد، Kotlin حس تازگی و هوشمندی دارد. درواقع بهگونهای میتوانید به Kotlin به عنوان یک زبان طراحیشده برای نوشتن برنامههای اندروید فکر کنید.
نقطه ضعف Kotlin چیست؟ Kotlin بسیار جوان است. در سال 2011 ظهور پیدا کرد و تا سال 2016 به طور رسمی در اختیار همه نبود. خبر خوب این است که Kotlin رایگان و متنباز (Open Source) است، پس میتوانید انتظار داشته باشید به سرعت پیشرفت کند اما چند سال طول میکشد تا یک انتخاب قابل اعتماد و مستحکم باشد.
۳. زبان #C (سیشارپ)
#C یک زبان خارقالعاده است. به نظر من، #C شامل تمام بخشهای خوب Java است، بدون نکات بد آن که حتی با بهینهسازیها، بهتر هم شده است. شرکت مایکروسافت، پتانسیل Java را دید و تصمیم گرفت تا نسخه بهتری از زبان برنامهنویسی خودش را تولید کند.
برای مدتی، بزرگترین اشکال #C این بود که تنها برای سیستمهای ویندوزی اجرا میشد زیرا به NET Framework. متکی بود. به تدریج اما تمام اینها تغییر کرد. وقتی که مایکروسافت تصمیم گرفت NET Framework. را در سال 2014 به صورت متنباز در آورد و Xamarin (شرکتی که برقراری Mono (پروژهای که به #C اجازه میدهد تا بر روی بسیاری از بسترها اجرا شود) را بر عهده دارد.) را خرید.
امروزه، شما میتوانید از Xamarin.Android و Xamarin.IOS استفاده کنید تا با Visual Studio یا Xamarin Studio برنامههای موبایل بسازید. یادگیری #C انتخابی بسیار عالی است چون میتوانید از این زبان در زمینههای دیگر، همچون ساختن بازیهای پیچیده با Unity و #C استفاده کنید. یک مثال از برنامههای ساختهشده با Xamarin برنامهی MarketWatch است. توجه داشته باشید که Xamarin در ابتدا یک برنامه پولی بود اما شرکت مایکروسافت آن را به به یک برنامه رایگان تبدیل کرد.
۴. زبان Python (پایتون)
با این که اندروید از برنامهنویسی بومی Python پشتیبانی نمیکند، ابزارهایی وجود دارند که به شما اجازه میدهند در زبان Python برنامه بنویسید و بعد آن ها را به APK تبدیل کنید که به صورت موفقیتآمیز بر روی دستگاههای اندروید قابل اجرا هستند. این یک مثال از Python به عنوان زبان دنیای واقعی کاربردی است، این خبر خوبی برای کاربران Python است که میخواهند برنامه بسازند اما آن چنان از Java دل خوشی ندارند.
Kivy یکی از محبوبترین و قدرتمندترین راه حلها برای این کار است. نهتنها این برنامه به صورت متنباز است، نهتنها از ویندوز، Mac، لینوکس و iOS، جدای از اندروید، پشتیبانی میکند، بلکه به گونهای طراحی شده است که شما را به برنامه نویسی سریع ترغیب کند. شما میتوانید از آن به عنوان ابزار نمونهسازی استفاده کنید و این کار را با تنها چند خط کد انجام دهید.
از آن جایی که این برنامه به صورت native پشتیبانی نمیشود، نمیتوانید از فواید native آن بهرهمند شوید. برنامههایی که با Kivy طراحی میشوند، معمولاً APKهای بزرگتری دارند، کندتر شروع میشوند و کارایی آنها کمتر از حد مورد انتظار است. با این وجود هر نسخه جدید از قبلی بهتر است و دستگاهها به حدی قوی شدهاند که این موضوع آنچنان اهمیت ندارد، پس نگذارید این مساله جلوی کار شما را بگیرد.
۵. زبانهای HTML5 + CSS + JavaScript
این سه زبان که آغاز کارشان با عنوان هسته سهگانه عالی برای برنامهنویسی front-end بود، از آن زمان تکامل پیدا کردند و حتی به چیزی بهتر رسیدهاند. هماکنون میتوانید با آنها هر نوع برنامهای بسازید، چه برای گوشی و چه برای رایانه. در اصل شما دارید یک اپلیکیشن تحت وب (Web app) میسازید که به عنوان یک برنامه آفلاین در بستر جادویی رندر میشود.
برای ساختن برنامههای اندروید از این طریق، میتوانید از Adobe Cordova استفاده کنید که یک چارچوب متنباز است و iOS، ویندوز 10 موبایل، Blackberry ،Firefox و… را پوشش میدهد. Cordova با وجود کارایی بالایی که دارد، نیازمند تلاش زیادی برای خلق و اجرای یک برنامه نسبتاً ساده است. برای همین بسیاری افراد از Ionic Framework (که از Cordova برای پیادهسازی در بسترهای گوناگون بهره میگیرد.) استفاده میکنند. مثالهایی از این مورد برای برنامههای اندرویدی عبارتاند از برنامههای Untappd و TripCase.
یک گزینه دیگر این است که از React Native استفاده کنید. این کتابخانه میتواند در اندروید، iOS، و بستر جهانی ویندوز قرار گیرد. توسط فیسبوک، اینستاگرام و سایر شرکتهای بزرگ استفاده و نگهداری میشود. پس میتوانید مطمئن باشید که امتحان و تست شده است. یادگیری آن آسان نیست اما به محض آن که از مسائل اولیه بگذرید، تمام قدرت و انعطافپذیری را که میخواهید، به دست میآورید.
۶. زبان Lua
Lua یک زبان نوشتاری قدیمی است که در اصل طراحی شده تا برنامههای نوشتهشده در زبانهای قدرتمندتر مانند C ،VB.net و … را تکمیل کند. بر همین اساس، دارای برخی خصوصیات است که آن را با دیگران متفاوت میکند؛ مانند داشتن آرایه ابتدایی (Starting array) در یک به جای صفر و نداشتن کلاسهای native.
جدای از این صحبتها، در برخی موارد میتوان از Lua به عنوان یک زبان برنامهنویسی اصلی استفاده کرد و Corona SDK یک مثال عالی است. با Corona میتوانید برنامههایی غنی ایجاد کنید که از Lua استفاده میکنند و میتوان آنها را بر ویندوز، Mac، اندروید، iOS و حتی Apple TV و Android TV قرار داد. همچنین در آن خصوصیت کسب درآمد به علاوه یک محل بازار گسترده دارد که در آن میتوانید ویژگیها و افزونه (Plugin) بخرید.
از Corona عمدتاً برای ساختن بازی استفاده میشود (مانند Fun Run2 و HoPiko) اما میتوان از آن برای ساختن برنامههای خدمات رفاهی و تجاری (مانند My Days و Quebec Tourism) استفاده کرد.
۷. زبانهای C و ++C
گوگل برای ساختن برنامههای اندرویدی، دو ابزار برنامه نویسی ارائه میدهد: SDK که از Java استفاده میکند و NDK که از زبانهای بومی مانند C و ++C استفاده میکند. به یاد داشته باشید که نمیتوانید تمام یک برنامه را با استفاده از C++ ،C و Java بسازید، بلکه زبان NDK به شما اجازه میدهد تا یک کتابخانه بومی ایجاد کنید و قابلیتهایش را در کد Java به کار ببرید.
در اکثر مواقع نیازی به استفاده از NDK نخواهید داشت. نباید از آن فقط به این دلیل که ترجیح میدهید به جای Java در C++/C کد بزنید استفاده کنید، بلکه زبان NDK برای زمانی است که میخواهید به زور از وظایف حسابگری سنگین، کارایی بیشتری بیرون بکشید. همچنین به شما این امکان را میدهد تا در برنامه خود کتابخانههای C و یا ++C جای دهید.
اما در غیر این صورت، باید هرگاه ممکن بود به Java تکیه کنید. برنامهنویسی با استفاده از C++/C بسیار پیچیدهتر از Java است و برخی اوقات چیز زیادی از آن نمیگیرید.