نرمافزار نویسی همیشه از آن حوزه هایی است که وقتی از بیرون به آن نگاه میکنیم، پیچیده و آکنده از زبان های متفاوت برای کارهای مختلف به نظر میرسد، مخصوصا چنانچه اطلاعات پراکنده ای هم درباره آن داشته باشید ممکن هست مسئله پیچیده تر هم بشود. یادم است هنگامی میخواستم برنامه نویسی اندروید را استارت کنم، تعداد زبان هایی که با استفاده از آنها میشد اپ های اندروید ساخت، زیاد بودند.برای همین گزینش یکی این گویش ها برای استارت نرم افزار نویسی به یک سوال بزرگ برای من تبدیل شده بود. یعنی وسواس داشتم که بهترین گویش نرم افزار نویسی اندروید را فی مابین این تمامی گزینه مختلف گزینش کنم تا بهترین عملکرد را داشته باشم.
بعداز تعدادی سال متوجه شدم این سوال در ذهن اکثر اشخاصی که در مرحله شروع میباشند، وجود دارد: “کدام گویش نرم افزار نویسی اندروید را انتخاب کنیم؟”. به همین دلیل در این نوشته قصد داریم کلیه زبان هایی که میتوانیم با آنها نرمافزار اندروید بسازیم را معرفی، تحقیق و مقایسه کنیم تا تصمیم گیری برای ما شل و ول تر بشود.
در صورتیکه حوصله خواندن کلیه این نوشته را ندارید، بصورت خلاصه درباره زبان هایی مانند جاوا، کاتلین، سی شارپ، سی پلاس پلاس، پایتون، ویژگی های آنها، مقایسه لهجه ها و نکته هایی برای انتخاب شل تر صحبت کردیم. لیست عنا وین در قاب تحت معین هستند. با نرم افزار چی یار و همدم باشید.
Javaزبان جاوا، گویش اپ نویسی رسمی و دوست داستنی ترین زبان نرم افزار نویسی اندروید میباشد. موقتا، اکثر برنامه نویس های اندروید از جاوا به کار گیری میکنند. اکثر نرمافزار های مو جود در نرمافزار استور با این زبان درج گردیده اند و از طرف گوگل بیشترین حمایت را دریافت میکند. علاوه بر تمامی اینها، گویش جاوا دارای یک جامعه بسیار کار کشته و تبارک است که میتوانند در همه اشتباهات شمارا کمک کنند (این رو هم بگم که واقعا باید با ایرادات زیادی راز و کله بزنید).
به هر هم اکنون زبان جاوا برای یادگیری افراد مبتدی و تازه کار ممکن هست مقداری مشقت بار باشد. این لهجه دارای مفاهیم پیچیده ای مانند متدهای سازنده، Null Pointer Exception، همزمانی پردازش اوامر، Checked Exception و غیره هست. همچنین با اضافه شدن کیت پیشرفت نرم افزار اندروید (Android SDK)، ابهام های این لهجه بیشتر هم خواهند شد.
با وجود همگی اینها، جاوا زبان فوق العاده ای میباشد که با استعمال از آن میتوانید لذت کامل نرم افزار نویسی اندروید را فهم نمائید. اما ممکن است برای افراد مبتدی و تازه کار یه خرده ابهام داشته باشد و بعضی اوقات تازه کارها ترجیح میدهند با یک لهجه معمولی تر آغاز کنند و آنگاه جاوا را خاطر بگیرند. اما به نظر من برای صرفه جویی در وقت عالی هست که هرچه سریع تر کار با جاوا به عنوان یک گویش برنامه نویسی اندروید را شروع فرمایید.
Kotlin
کاتلین یکی از لهجه های کراس پلتفرم برای نرم افزار نویسی میباشد که ممکن میباشد جایگزین جاوا بشود. همچنین در سال 2017، کاتلین به عنوان دومی لهجه اپلیکیشن نویسی اندروید رسمی به وسیله گوگل معرفی شد. کاتلین میتواند توسط ماشین مجازی جاوا (JVM) انجام بشود و شباهت های زیادی به جاوا دارد.
طراحی اپلیکیشن فقط تفاوت عمده کاتلین با جاوا این میباشد که ویژگی های اضافه لهجه جاوا مانند Null Pointer Exception دیگر در آن وجود ندارند. همچنین نیاز به به کارگیری از نقطه ویرگول (Semicolon) در انتهای هر دستور درین زبان وجود ندارد. بصورت خلاصه، لهجه کاتلین برای یادگیری مبتدی و تازه کار ها بسیار آسان تر میباشد و همچنین میتواند یک نقطه ورود به دنیای اپ نویسی اندروید باشد.C Plus Plus
لهجه سی پلاس پلاس یکی از لهجه های نرم افزار نویسی اندروید میباشد که برای بسط بومی اندروید (NDK) استعمال میشود. اما این نکته را بایستی بدانید که با سی پلاس پلاس نمیتوانید یک برنامه بدون نقص اندروید بنویسید.
رایا پارس این زبان برای پیاده سازی بخش هایی از اپ با لهجه بومی اندروید به شغل برده میگردد. این ویژگی منجر می گردد بتوانیم در مواردی که نیاز داریم، از لایبرری های سی پلاس پلاس استفاده کنیملهجه بومی اندروید، یعنی زبانی که این سیستم عامل در سطح ها پایین با آن عمل میکند، سی پلاس پلاس است. به همین استدلال، برای پیشرفت برنامه با این گویش، می بایست از کیت توسعه و گسترش ساکن یا Native Development Kit به کارگیری می گردد.
application این کیت برای پیاده سازی قسمت هایی از اپ که نیاز به سعی بسیار بالا داراهستند (مانند بازی های سنگین ) و نیاز می باشد منابع سیستم را بیشتر کنترل کنیم، تلاش دارد.هرچند سی پلاس پلاس یک گویش اپ نویسی اندروید قوی هست و کوشش بالایی دارااست، اما پیاده سازی آن بسیار نقص تر از جاوا بوده و انعطاف بسیار کمتری دارااست. همچنین به دلیل ابهام های زیاد، ممکن می باشد با ارور ها و باگ های بیشتری روبرو بشوید. پس در اکثر موردها عالی است که از زبان جاوا یا کاتلین استفاده نمائید.
C Sharp
لهجه سی شارپ تشابه های بسیار زیادی به جاوا دارااست و از این حیث یکیاز موارد ایده آل برای اپلیکیشن نویسی اندروید هست. همچنین مانند زبان جاوا، سی شارپ ها دارای آشغال جمع کن (Garbage Collector) است که منجر به کارگیری باصرفه تر از مموری دستگاه و کم شدن Memory Leak میشود. خلال اینها، سی شارپ سینتکس معمولی تر و تر و تمیز تری نسبت به جاوا دارااست که کار کردن با آن به عنوان گویش اپ نویسی اندروید را خیلی ساده تر میکند.
در پیشین، یکیاز نقاط ضعف زبان سی شارپ این بود که صرفا میتوانست روی دستگاه های ویندوزی جاری ساختن بشود و با قاب ورک دات نت به فعالیت برده میشد. اما با به کار گیری از محیط برنامه نویسی Xamarin، که یک راه حل کراس پلتفرم با استعمال از زیرساخت های سیستم ارائه داد، این نقص حل شد. با استفاده از Xamarin شما میتوانید نرمافزار های ساکن اندروید بنویسید و بعد از آن این کدها را روی پلتفرم های متفاوت هم منتشر نمائید.
Python
هرچند اندروید بصورت مستقر از پایتون مدد نمیکند، اما پایتون میتواند به عنوان زبان نرم افزار نویسی اندروید مصرف شود. ولی برای این عمل می بایست از ابزارهای زیادی به کار گیری کنید که کدهای پایتون را به پکیج های اندروید تبدیل کند که روی دستگاه های اندروید ایفا می گردند.
یک کدام از این ابزار ها، Kivy می باشد که یک کتابخانه متن باز پایتون میباشد و میتواند برای توسعه و گسترش اپلیکیشن های گوشی استفاده شود. این ابزار از اندروید هم امان میکند و قادر است مراحل توسعه برنامه را سریع تر کند. اما اشکالی که وجود دارد این می باشد که نمیتوانید از ویژگی های ساکن اندروید به کار گیری نمایید، چون Kivy بصورت بومی در اندروید هواخواهی نمیشود.
Lua (Corona)
Corona نام یک دور و بر اپ نویسی می باشد که میتواند با استفاده از زبان نرم افزار نویسی Lua، اپلیکیشن های اندروید بسازد. این دور و بر برنامه نویسی دو مدل عملکرد داراست: Corona Simulator و Corona Native. از Corona Simulator برای ساخت اپلیکیشن های اندروید بصورت بدون واسطه استعمال می گردد، البته Corona Native پروژه ها را با اندروید استودیو یکدست میکند که از اینشیوه میتوانید به ویژگی های بومی اندروید هم دسترسی داشته باشید.
هرچند Lua نسبت به جاوا محدودیت داراست، اما یادگیری آن ساده تر از گویش جاوا میباشد. اما این لهجه نرم افزار نویسی اندروید دارای قابلی ها و پلاگین های منحصر به فرد درآمد زایی هست که میتواند تجربیات ساخت نرمافزار های اندروید را تغییر بدهد. معمولا Corona برای تشکیل داد برنامه های گرافیکی یا بازی استفاده میشود اما توانایی های آن محدود به این حوزه ها نیست.
HTML, Css, Javascript
نادرست نمیکنید، اپ های اندروید میتوانند با استفاده از Html,Css,Javascript ساخته شوند. برای این کار می بایست از فریم ورک PhoneGap که توسط Apache Cordova دفاع میگردد استفاده نمائید. این فریم ورک به شما امداد میکند از مهارت های توسعه وب برای ساخت اپلیکیشن های هیبرید استفاده فرمایید که می توانند توسط یک WebView باطن نرمافزار های اندروید نمایش داده بشوند.
هرچند Adobe PhoneGap میتواند بسیاری از کارهای مبنا ای برنامه های اندروید را پوشش بدهد، اما به کدنویسی بسیار کمتری نیاز دارد (اما به جز جاوا اسکریپت). البته از آنجایی که برای ساختن نرمافزار های بهتر نیاز به همت و کدنویسی بسیار زیاد دارید، بهتر است از لهجه های دیگر داخل این لیست به کارگیری فرمایید (و البته چنانچه دوست دارید به عنوان یک توسعه و گسترش دهنده اندروید شناخته شوید بهتر است از زبان های تخصصی به کارگیری نمائید).
نکته هایی برای انتخاب شل و ول تر
همیشه هنگامی گزینه ها زیاد میشوند، فرایند گزینش و تصمیم گیری برای ما طاقت فرسا تر میشود. پس می توانیم با تفحص نکته ها و شرایطی که برای ما مناسب تر هستند، تعدادی از این مورد ها را کلا حذف کنیم تا انتخاب راحت تری داشته باشیم.
نکته اولیه: اکثری از این زبان ها از نگاه ساختاری، شی گرا میباشند. شی گرایی یک مضمون خاص در نرم افزار نویسی میباشد که میتوانید با رسیدگی این نوشته ی علمی درباره آن اطلاعات بیشتری حصول نمایید: “شی گرایی چیست؟”. براین اساس زمانی شما در طول یادگیری یک لهجه نرمافزار نویسی اندروید، این مضمون را خاطر بگیرید، میتوانید به راحتی یادگیری بقیه زبان ها را هم استارت کنید (البته در حالتی که به اونها نیاز داشتید). پس مطمئن باشید یادگیری یک لهجه خاص شما را زندانی نمیکند، بلکه رویکرد را برای یادگیری های بیشتر باز میکند.
نکته دوم: میتوانید برای انتخاب گویش نرم افزار نویسی مناسب، این گزینه را در نظر بگیرید که قرار هست با کدام دور و اطراف اپلیکیشن نویسی (IDE) کار کنید. برای آشنایی بیشتر با IDE ها، این مقاله را مطالعه نمایید: “IDE های بلندتر برای نرم افزار نویسی اندروید”. برای مثال اندروید استودیو اکنون از لهجه های جاوا، کاتلین و سی پلاس پلاس هواخواهی میکند.
نکته سوم: میتوانید استاندارد ها را دنبال نمایید. همانطور که در قسمت های پیشین هم گفتیم، استاندارد ترین لهجه های نرم افزار نویسی اندروید، اینک جاوا، کاتلین (و سی پلاس پلاس برای نرم افزار نویسی Native) هستند. با گزینش این زبان ها می توانید از داکیومنتیشن های آموزشی گوگل برای اپلیکیشن نویسی اندروید به کار گیری نمایید. همچنین دسترسی به منابع برای گویش های بومی (یا همون استاندارد) روی هر پلتفرم بیشتر و کار کشته تر است.
نکته چهارم: یکی معیار های انتخاب، می تواند کراس پلتفرم بودن باشد. IDE هایی برای ساخت اپلیکیشن های تلفن همراه وجود دارا هستند که میتوانید یکبار اپلیکیشن را داخل آن ها کدنویسی کنید و به عنوان مثال برای پلتفرم های اندروید و iOS خروجی های منحصر به فرد خود را بگیرید. اپ Xamarin توانگری این کار را دارد که از زبان سی شارپ استعمال میکند. (ولی همیشه عمل به همین راحتی جلو نمیره، بعضی وقتها با به کارگیری از همین ابزار ها هم می بایست برای هر پلتفرم نرمافزار رو دوباره نویسی کنین).
نکته پنجم: جامعه جان دار میتواند یک کدام از واحد سنجش های توانمند برای تعیین زبان نرمافزار نویسی اندروید باشد. در یکی از مقاله های وبسایت درباره این سوال حرف کردیم: “آیا نرم افزار نویسی اندروید مشقت بار است؟”. درین نوشتهعلمی اشاره شد که بزرگترین حمایتی که در حوزه نرم افزار نویسی وجود داراست، جامعه یا Community توانمند این پلتفرم میباشد. میتوانید با جستجو در اینترنت درباره جامعه موجود برای زبانی که قصد تعیین آن را دارید بازرسی نمایید و تصمیم بگیرید.
نکته ششم: روءیت کرد بدون نقص به دنیای اپلیکیشن های اندروید داشته باشید. یعنی هیچ وقت تفکر نکنید که تشکیل داد اپ تنها و صرفا مربوط به فرانت اند میشود، یک قسمت بسیار مهم به نام بک اند وجود دارد که عالی است خودتان هم بلد باشید آن را بسازید. برای آشنایی با فرانت و اند و بک اند این نوشتهی علمی را بازرسی نمائید: “فرانت و بک اند چیست؟”. پس مطمئنا برای ساخت و پیکربندی درست سمت سرور اپلیکیشن، به زبان های بیشتری که شاید در این مقاله وجود نداشته باشند هم نیاز داشته باشید. به این ترتیب بهتر است همیشه ذهن خود را برای یادگیری باز نگه دارید