۷ زبان برنامه نویسی برای نوشتن اپلیکیشن های اندروید – راهنمای صفر تا صد


هماکنون نزدیک به ده سال از رواج اندروید میگذرد؛ اما این بدین معنا نیست که شما فرصت یادگیری ساخت برنامههای اندروید یا حتی برنامه نویسی iOS را از دست دادهاید. در واقع زمان بهتری جز الان برای یادگیری اندروید نیست. هیچوقت مثل الان راههای مختلف برای نوشتن اپلیکیشن های اندروید وجود نداشته است و از آن جایی که تمام Chromebookهای جدید قادر به نصب و راهاندازی برنامههای اندروید هستند، بازار برنامههای اندروید رو به رشد است. نگران دیر شدن نباشید، تنها کاری که لازم است انجام بدهید این است که بنشینید، نفسی عمیق بکشید، زبان مناسب برنامهنویسی را انتخاب کنید و دست به کار شوید. همچنین اگر به دنبال یادگیری یک زبان برنامه نویسی در حوزه سازمانی و تجاری هستید، زبان برنامه نویسی Cobol میتواند زبان مناسبی باشد.
کدام زبان برنامهنویسی برای شما مناسب است؟ هیچ کس نمیتواند به شما بگوید از چه چیزی استفاده کنید؛ بلکه تجربه شما در برنامهنویسی (و یا نداشتن تجربه) مهم است و این که با چه زبانی بیشتر احساس راحتی میکنید. خوشبختانه شما حق انتخاب دارید. در این جا لیستی از بهترین زبانهای برنامه نویسی را معرفی میکنیم. همچنین، در مطلب «مقایسه زامارین و اندروید استودیو» به مقایسه این دو ابزار توسعه بومی اندروید پرداخته شده است.
۱. زبان 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 است و برخی اوقات چیز زیادی از آن نمیگیرید.
چگونه برنامههایی میخواهید بسازید؟
برنامههای گفتوگو و پیامرسانی، بازیها، ماشینحسابها، یادداشتها، پخش موسیقی و... انتخابها نامحدود هستند! همه آنها با استفاده از زبانها و فریمورکهای ذکرشده در بالا امکانپذیر هستند. نیازی نیست که همه آنها را یاد بگیرید، تنها آنهایی را یاد بگیرید که برای انجام کارتان به آن نیاز دارید. اگر میخواستید مهارتهای خود را گسترش دهید، میتوانید وقتی که زمانش فرا میرسد آن را یاد بگیرید.
همچنین ما به شما پیشنهاد میکنیم مطالب روز مرتبط با برنامهنویسی گوشی همراه را مطالعه کنید. این مقالات به شما کمک میکنند تا ذهنیتی از این که «چه چیزی یک برنامه گوشی همراه را موفقیتآمیز میکند» به دست آورید و کمک میکند تا از برخی موانع، که به طور حتم با آنها روبهرو میشوید، عبور کنید.
تگر این نوشته مورد توجه شما واقع شده، پیشنهاد میکنیم موارد زیر را نیز ملاحظه کنید:
- مجموعه آموزشهای برنامه نویسی اندروید
- آموزش برنامه نویسی اندروید (Android) – مقدماتی
- پنج گام در یادگیری برنامهنویسی اندروید
- گنجینه برنامه نویسی اندروید
- آموزش برنامه نویسی اندروید (Android) – تکمیلی
- آموزش برنامه نویسی پایتون
- بهترین زبانهای برنامهنویسی سال ۱۴۰۱ یا ۲۰۲۲
- مقایسه زامارین و اندروید استودیو — جامع و به زبان ساده
- برنامه نویسی وب چیست و چگونه آن را یاد بگیریم؟ — راهنمای کامل و رایگان
- زبان برنامه نویسی Cobol چیست ؟ — راهنمای مقدماتی و به زبان ساده
==
این همه c++ یاد گرفتم
اونوقت میگی خوب نیست؟
چیکار کنم من
بسیار ساده و عامیانه روان و ثلیث بیان شده اما همانطور که گفتید من فقط ذهنم را فقط در ی موضوع آماده و بسیار مشتاق يادگيري هستم
سلام بر شما
بسیار عالی، مطالب مفیدی بود.
اما چرا از زبان دارت با فرم وورک فلاتر نام برده نشد؟!
باتشکر
ممنون
فقط میتوانید درباره چگونگی درست کردن اپلیکیشن در پایتون یا C++ کمی بیشتر صحبت کنید؟
خیلی عالی. دقیقا به همون نکاتی که دنبالش بودم اشاره کردین. ممنونم.
سلام
این گفته شما که نوشتید هر وقت به چیزی نیازی داشتید هر وقت موقعش شد یاد بگیرید
مثلا اگر ما خواستیم در یک شرکت تبلیغاتی استخدام بشیم با شرایط خوب که تبلیغش رو صبح دیدیم و در حال استخدام
نمیتونیم بریم و بگیم من طراح و در عرض چند روز مثلا نرم افزار فتوشاپ رو یاد بگیریم
با تشکر از توضحاتتون.موفق باشین?