زمانی که بازار گوشیهای موبایل رونق گرفت، کمتر کسی تصور میکرد روزی اولویت خرید گوشی از آنتندهی خوب و صدای شفاف به امکانات و کارایی و از همه مهمتر کیفیت دوربین گوشی تغییر کند. امروزه نصب انواع اپلیکیشن یا همان نرم افزار موبایل یکی از خواستههای مهم کاربران است. ساخت و توسعه انواع اپلیکیشن موبایل میتواند بازار مالی خوبی برای برنامه نویسان موبایل پدید آورد. تا به حال به این فکر کرده اید چگونه میتوانید یک برنامهنویس موبایل شوید؟ اگر به این موضوع علاقمندید تا پایان با ما همراه باشید.
روزی که استیو جابز در سال 2007 اولین گوشی هوشمند کمپانی اپل، آیفون را رونمایی کرد، یکی از رویاهای قدیمی انسان را تحقق بخشید. یک دستگاه کوچک همه کاره، که قابلیتهای بسیاری از جمله مجهز به صفحه نمایش لمسی بود. استقبال بی نظیر مشتریان از آیفون، آغاز دوران تازه ای در تکنولوژی گوشیهای موبایل را رقم زد.
یکی از مواردی که باعث محبوبیت روزافزون آیفون شد، سیستم عامل IOS بود. آیاواس یک سیستم عامل موبایل است که توسط اپل مخصوص محصولات سخت افزاری شان طراحی و ساخته شده است. این سیستم عامل در سال 2007 بر روی اولین گوشی آیفون به بازار آمد و در ابتدا با نام سیستم عامل موبایل آیفون نامگذاری شد. ولی در سال 2010 به ios تغییر نام داد و در حال حاضر به جز گوشی آیفون، در دیگر دستگاههای ساخت اپل از جمله iPad ، iPod Touch نیز استفاده میشود.
در ابتدا برنامههای بومی شخص ثالث در این سیستم عامل پشتیبانی نمیشدند. اما در اکتبر 2007 اپل اعلام کرد که در حال ساخت یک کیت توسعه نرم افزار بومی (SDK) است و به زودی آن را در اختیار برنامه نویسان قرار میدهد. این امر به تعویق افتاد تا اینکه اپل در مارس 2008 در یک کنفراس مطبوعاتی iPhone SDK را معرفی کرد. هم اکنون بعد از اندروید، ios دومین سیستم عامل محبوب تلفن همراه در سطح جهان است.
در سال 2008 اولین گوشی هوشمند اچتیسی (HTC) با سیستم عامل اندروید (Android) معرفی شد. اندروید سیستم عامل موبایلی گوگل متن باز و مبتنی بر هسته اصلاح شده لینوکس است و با ورود آن به بازار، آیاواس رقیبی جدی پیدا کرد. رابط کاربری و نرم افزارهای جانبی اندروید با استفاده از زبان برنامه نویسی جاوا (Java) نوشته شده است. ولی این سیستم عامل، Java Virtual Machine را ندارد. برای اجرای برنامههای جاوا روی این سیستم عامل موبایلی، کدهای جاوا به کدهای Dalvik تبدیل میشوند و سپس روی Dalvik vitrual machine اجرا میشوند. (دالویک یک ماشین مجازی جاوایی است که برای سیستم عامل اندروید بهینه شده است تا هم RAM و هم CPU و هم باتری کمتری مصرف کند.)
آیاواس سیستم عامل موبایلی انحصاری اپل برای گوشیهای آیفون است. اما اندروید یک سیستم عامل موبایلی متن باز که امروزه در اکثر گوشیهای موبایل شرکتهای بزرگ، استفاده میشود. نسخههای متفاوتی از این دو سیستم عامل از زمان ورود به بازار تا به امروز، معرفی شده است. در این سالها، شرکتهای دیگری از جمله مایکروسافت و نوکیا تلاش کردند تا سیستم عامل موبایلی خود را ترویج کنند. اما قدرت لازم برای رقابت با اندروید و ios را نداشتند و خیلی زود مجبور شدند صحنه رقابت را ترک کنند.
اکنون بازار جهان مملو از گوشیهای موبایل با سیستم عامل اندروید و ios شده و ساخت و توسعه نرم افزار برای این دو سیستم عامل، دغدغه بسیاری از افراد علاقمند است. در ادامه به بررسی زبانهایی میپردازیم که امکان ساخت اپلیکیشن موبایل را برای برنامهنویسان فراهم میکنند.
توسعه اپلیکیشنهای اندروید و یا IOS به ابزارها و ربانهای مخصوص هر پلتفرم نیاز دارد. در این بخش از مطلب به معرفی زبانهای توسعه اندروید و IOS میپردازیم:
در ابتدا به معرفی زبانهای برنامه نویسی میپردازیم که قابلیت توسعه اپلیکیشنهای اندروید دارند. تفاوت بین زبانهای مختلف برنامه نویسی اندروید میتواند کمی پیچیده و ظریف باشد. برای اینکه کدام یک را انتخاب کنیم، نیاز داریم تا به نقاط ضعف و قوت هر یک آشنا شویم.
اولین و محبوبترین گزینه زبان توسعه برنامههای اندروید، جاوا است که به نوعی زبان رسمی توسعه اندروید محسوب میشود. به این معنی که بیشترین پشتیبانی را از گوگل داشته و بیشتر برنامههای موجود در پلی استور اندروید با آن ساخته شده اند. یک روش برای توسعه برنامههای اندروید با جاوا، استفاده از اندروید استودیو (Android Studio) است. اندروید استودیو با مجموعه ابزارهایی برای تسهیل توسعه اندروید به نام SDK Android ارائه شده است. با استفاده از این محیط، همه چیزهایی که برای توسعه و اجرای برنامهها لازم دارید در اختیارتان قرار میگیرد. آموزشها و اسناد رسمی گوگل به این روش اشاره میکند و بیشترین تعداد کتابخانه و آموزشها، روی این روش متمرکز هستند.
خود جاوا در سال 1995 توسط Sun Microsystems منتشر شد و برای توسعه طیف گسترده ای از برنامهها استفاده میشود. کد جاوا توسط "ماشین مجازی" اجرا میشود که روی دستگاههای Android اجرا شده و کد را تفسیر میکند. زبان جاوا پیچیدگیها و البته کاربردهای بسیار زیادی دارد و به عنوان زبان اول، یادگیری آن کمی زمانبر است اما یادگیری آن مسیر فعالیت در بسیاری از حوزهها را برای شما باز میکند. اگر مبتدی هستید و به دنبال ساخت یک بازی هستید یا قصد یادگیری برنامه نویسی را دارید، پیشنهاد میکنیم ابتدا با زبانی آسانتر شروع کنید و زمانی که پایه و اساس را یاد گرفتید به این زبان برگردید تا کار با جاوا برای شما راحتتر شود.
کاتلین اخیرا به عنوان زبان رسمی دیگری برای توسعه اندروید به روی صحنه آمده است. برخی گمانه زنیها حاکی از آن است که این زبان میتواند تبدیل به سوئیفت (Swift) بعدی شود. کاتلین در ماشین مجازی جاوا نیز کار میکند و همچنین تعامل کاملی با جاوا دارد و باعث کاهش یا افزایش اندازه فایل نمیشود. تفاوت کاتلین با جاوا در این است که از سیستمی سادهتر و آسان برای خواندن کد برخوردار است. به طور خلاصه اگر برای اولین بار قصد یادگیری اندروید را دارید، کاتلین عالی است. بنابراین کاتلین نقطه شروع آسانتری برای مبتدیان است و اینکه هنوز میتوانید از اندروید استودیو استفاده کنید، یک مزیت بزرگ است.
زبان بیسیک با دستورالمعلهای سمبولیک یک زبان همه منظوره و مبتدی است که استفاده از آن بسیار خوشایند است. متاسفانه بیسیک به طور رسمی توسط اندروید استودیو پشتیبانی نمیشود. همچنین در یونیتی (Unity) یا زامارین (Xamarin) قابل استفاده نیست اما خبر خوب این است که گزینه کمتر شناخته شده برای توسعه برنامههای اندرویدی در بیسیک به نام B4A (BASIC 4 Android) وجود دارد. که این امکان را به شما میدهد تا برنامههای اندروید را با زبان بیسیک توسعه دهید.
B4A به عنوان محیط توسعه سریع برنامهها طراحی شده است. بسیاری از تصمیمات طراحی هوشمند برای آسانتر کردن کدنویسی را دارا میباشد و در صورت داشتن هر گونه سوال، یک جمعیت بسیار فعال برای پشتیبانی از آن وجود دارد. بیسیک یک روش عالی برای یادگیری رمزگذاری است و شما میتوانید با استفاده از این زبان برنامههای بسیار قدرتمند بسازید. اما برای ساخت بازیهای سطح بالاتر ایده آل نیست.
به طور خلاصه چند زبان دیگر که امکان برنامه نویسی اندروید را دارند، بررسی میکنیم:
C/C++ : اندروید استودیو با استفاده از Java NDK از C++ پشتیبانی میکند. این برنامهها برنامه نویسی بومی را امکانپذیر میکنند که برای مواردی مانند ساخت بازی مناسب است اما C++ پیچیدهتر است.
C# : یک گزینه جایگزین مناسب برای مبتدیان C یا C++ است. سی شارپ توسط برخی از ابزارهای بسیار مفید مانند یونیتی و زاماریان پشتیبانی میشود که برای توسعه بازی و برای ساخت کراس پلتفرم (cross-platform) عالی است.
Corona/LUA : یکی دیگر از ابزارهای کراس پلتفرم است که روی LUA ساخته میشوند. این امر به طور گسترده روند ساخت برنامه را ساده میکند و به شما امکان میدهد تا با کتابخانههای بومی کار کنید.
همانند اندروید، در IOS هم از زبانهای برنامه نویسی مختلفی میتوان برای توسعه اپلیکیشن ios استفاده کرد. برخی از این زبانهای برنامه نویسی عبارتند از: Swift ، Objective-c ، C # ، Python ، Java ، C++ و HTML5. اما Swift و Objective-C دو زبان اصلی مورد استفاده هستند که اپل از آنها پشتیبانی میکند.
Objective-c یک زبان برنامه نویسی عمومی و شی گرا است. این زبان مبتنی بر زبان C و شبیه زبانهای C++ و C# است. این بدین معنی است که ساختار بنیادی و سیستم عملیاتی Objective-C شبیه زبان C است. بنابراین برنامه نویسانی که با C آشنایی دارند، با بسیاری از ویژگیهای آن غریبه نیستند. .
اصطلاحات زبانهای Objective-C و C یکسان است. به عنوان مثال، هر خط از Objective-C باید با یک نقطه ویرگول (semicolon) پایان یابد. بلوکهای کد باید در داخل براکت یا پرانتز قرار داشته باشند. همچنین نمادهای ریاضی و همچنین نمادهای انتساب و مقایسه نیز مشابه هستند. در سطح نحو ، زبانهای C و Objective-C مشابه نیستند. ترکیب عملکرد، روش فراخوانی، شمارش و برخی خصوصیات Objective-C متفاوت است. اگر چه سوئیفت جایگزین Objective-C شده است اما هنوز Objective-C ویژگیهای متمایز خود را دارد. حتی اگر سوئیفت زبان بهتری در نظر گرفته شود، نمیتواند کاملا جایگزین Objective-C شود.
زبان برنامه نویسی سوئیفت زبان اصلی سیستم عامل IOS است که توسط اپل در سال 2014 ساخته و تنظیم شد. قبل از سوئیفت، زبان Objective-C زبان اصلی توسعه اپلیکیشنهای ios بود اما به دلیل قدیمی بودن، نیازهای مدرن را پشتیبانی نمیکرد. به همین دلیل زبان سوئیفت که دارای ویژگیهای جدید است، جایگزین آن شد.
سوئیفت یک زبان برنامه نویسی پویا و قدرتمند است و پیچیدگیهای زبان C را ندارد. این زبان، سینتکسی (Syntax) مختصر و رسا دارد و بسیار سریع کار میکند. Swift پویا، انعطاف پذیر و مدرن است و مستلزم پروتکلهای ایمنتری برای برنامه نویسی است. سوئیفت به دلیل کارایی خود در سراسر جهان مورد استفاده قرار میگیرد. این زبان یکی از بهترین گزینهها برای کد نویسی برنامههای iOS است.
بعضی از ویژگیهای زبان برنامه نویسی سوئیفت از این قرار اند:
خوانایی آسان
کتابخانه پویا
کار کردن با کدهای کمتر
سریعتر بودن
مدیریت حافظه کارآمد
و ...
استفاده از کیت توسعه جاوا (Java development kit) برای توسعه یک نرم افزار، محبوبیت فراوانی دارد. استفاده از جاوا برای توسعه برنامه ios با وجود دو زبان سوئیفت و Objective-C نمیتواند بهترین گزینه برنامه نویسی باشد اما میتوان از آن برای ساخت بازیها از طریق LIBgdx که یک موتور بازی برای ios ، اندروید و ویندوز است، استفاده کرد.
توسعه برنامهای ios با جاوا، مستلزم استفاده از کتابخانههای عالی و ابزار دقیق است. در حالی که برنامه نویسی Swift به دلیل ظرافت و مناسب بودن آن برای توسعه اپلیکیشن از طرافداران بیشتری برخوردار است.
با توجه به رشد روزافزونی که گوشیهای موبایل در بین کاربران دارند، دور از ذهن نیست که در آینده ای نه چندان دور، شاهد حذف رایانههای شخصی در بین کاربران عادی خواهیم بود. این پیش بینی از اهمیت دو چندان برنامه نویسی و توسعه اپلیکیشنهای موبایل در آینده میدهد. امروزه شاهد هستیم که برنامه نویسی موبایل از بازار کار مطمئنی برخوردار است. بی شک در آینده نیز این بازار کار نه تنها از رونق نمیافتد، بلکه رشد فزاینده ای را تجربه خواهد کرد. اگر از علاقمندان برنامه نویسی برای اپلیکیشنهای موبایل هستید، به شما پیشنهاد میکنیم هر چه زودتر به فراگیری برنامه نویسی موبایل مشغول شوید.
زبانهای برنامه نویسی مختلفی برای توسعه برنامههای اندروید و ios وجود دارد و این میتواند به آن دسته از برنامه نویسانی که با هر یک از زبانها آشنایی دارند، کمک کند تا سریعتر به حوزه برنامه نویسی موبایل وارد شوند. زبانهای Java ، Kotlin ، Corona/LUA C++ ، C# ، C و BASIC برای توسعه اندروید استفاده میشوند. برای ios هم با وجود زبانهای مختلف، توصیه میشود از زبان سوئیفت که از جدیدترین زبانهای برنامه نویسی است، استفاده کنید. Swift با ویژگیهای مدرنی که دارد، باعث میشود سرعت و انعطاف پذیری را در برنامه نویسی ios تجربه کنید. اگر تجربه ای در برنامه نویسی موبایل دارید، یا از علاقمندان این حوزه هستید، درمورد مزیتهای و ضعفهای هر یک از این زبانها برای برنامه نویسی موبایل چه نظری دارید؟
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: