Corona SDK یک محیط نرم افزاری فوق العاده قوی است که توسط Walter Luh و Carlos Icaza ساخته شد. Corona SDK به برنامه نویسان اجازه می دهد که با استفاده از زبان برنامه نویسی Lua بازی و اپلیکیشن های قدرتمندی برای دستگاه های iPhone، iPad و همچنین دستگاه های اندرویدی بسازند. با استفاده از این SDK همچنین می توان اپلیکیشن های قدرتمندی برای سیستم عامل OS X نیز تولید کرد.
با استفاده از Corona SDK قادر خواهید بود انواع امکانات پیشرفته ی اپلیکیشن های امروزی همانند صدا، تصویر، رمزنگاری، برنامه نویسی های شبکه ای و موارد مربوط به کار با دستگاه مثل accelerometer، GPS و … را در برنامه ی خود استفاده کنید.
حتی فتوشاپ کارها هم می توانند از این به بعد اپلیکیشن هایی برای iOS و یا دستگاه های اندرویدی تولید کنند.
به طور ساده باید گفت که شما با استفاده از نرم افزار Corona می توانید اپلیکیشن هایی تولید کنید که هم روی سیستم عامل iOS و هم روی سیستم عامل Android نصب و اجرا شود. جذاب بود نه ؟!
یعنی شما تنها یک اپلیکیشن تولید می کنید ولی آن را برای سیستم عامل های مختلف خروجی می گیرید. به این تکنولوژی هایبرید اپلیکیشن یا hybrid application گویند. بنابراین نیازی نیست که شما بخواهید برای تولید یک اپلیکیشن آن را هم برای iOS و هم برای Android کد نویسی کنید!
در گذشته برنامه نویسان مجبور بودند که برای هر پلت فرمی (سیستم عامل) برنامه نویسی خاص خودش را انجام بدهند. همانطور که می دانید برای نوشتن برنامه برای سیستم عامل iOS باید به زبان Objective-C و برای سیستم عامل Android باید به JAVA مسلط بود.
خوشبختانه ما الان Corona SDK را داریم که در این محیط تنها با استفاده از زبان برنامه نویسی Lua می توانیم اپلیکیشن های cross platform یا چند سیستم عامله تولید کنیم. حتما می دانید که یکی از Category های پربازدید در google play و یا همین اپلیکیشن بازار خودمان دسته ی بازی یا Game می باشد. پس اگر تا امروز بازی سازی را تجربه نکرده اید و یا علاقه مندید که تکنولوژی ساخت آن را بدانید Corona SDK و Lua را فراموش نکنید.
اگر مشتاقید بدانید که اپلیکیشن های ترکیبی یا hybrid application چیست، لینک زیر را دنبال کنید:
بنابراین شما تنها یک زبان برنامه نویسی به نام Lua را فرا می گیرید که از نظر گرامری شباهت بسیاری به زبان هایی مثل PHP، JavaScript و #C دارد. جالب است بدانید که یک شرکت برزیلی Lua را تولید و پشتیبانی می کند. همچنین کلمه Lua به معنی ماه (moon) در زبان اسپانیولی است. خود زبان Lua را با C نوشته اند.
Lua زبان سختی برای یادگیری نیست، همچنین مستندات و کتابهای زیادی در اینترنت برای آموزش موجود است. این زبان open source است و تحت لیسانس MIT عرضه می شود. بنابراین یادگیری و استفاده از این زبان رایگان می باشد.
همانطور که می دانید محیط رسمی برای ساخت برنامه های اندرویدی Android Studio و زبان رسمی این کار هم JAVA است. همچنین برای iOS هم از محیط xCode و زبان swift استفاده می شود. البته راه های دیگری هم برای ساخت اپلیکیشن غیر از این دو روش وجود دارد اما همگان از این مدل ها بهره می گیرند. در برنامه نویسی به سبک ما، از محیط Cordova SDK و زبان برنامه نویسی Lua استفاده می کنیم.
خب بیاید یه برنامه ی نمونه با تکنولوژی Corona و Lua بسازیم و یکم به خودمون افتخار کنیم:
قدم اول این است که Corona SDK را دانلود و نصب کنیم. پس به وبسایت coronalabs.com رفته و روی دکمه ی نارنجی رنگ download free SDK کلیک کنید. مراحل نصب بسیار سادست. به این نکته توجه داشته باشید که اگر فقط می خواهید برنامه بسازید و آن را در simulatore ببینید نیازی به نصب JAVA ندارید ولی اگر می خواهید خروجی فایل apk هم بگیرید، فراموش نکنید که JAVA را هم نصب کنید.
پس از نصب، corona را باز کنید که پنجره ای مشابه زیر برایتان باز می شود:
روی دکمه ی New Project کلیک کنید تا بتوانید یک پروژه ی جدید بسازید. بعد از کلیک پنجره ی زیر ظاهر می شود :
بلافاصله بعد از اینکه شما مشخصات را وارد کرده و روی دکمه ی OK کلیک می کنید، فولدر حاوی فایل های اپلیکیشن و همچنین خود simulatore برایتان باز می شود.
حال نوبت به کدنویسی می رسد. شما می توانید از Text Editor های مختلفی برای شروع کد نویسی Lua استفاده کنید، پیشنهاد من sublime است که نیازی به تعریف و تمجید ندارد. بسیار خب، sublime را باز کنید و پوشه ی پروژه اتان را به داخل sublime بیندازید تا فایل ها در دسترس شوند. تصویر زیر را ببینید :
پس از اجرای دستور بالا می بینید که خروجی در Corona simulator output مشاهده می شود و نه روی شبیه ساز موبایل. اگر می خواهید که خروجی را روی شبیه ساز موبایل ببینید از دستور زیر برای این کار استفاده کنید :
display.newText("Hello World!", 0, 0, native.systemFont, 16);
به محض اینکه save می کنید، تغییرات اعمال می شوند و خروجی روی شبیه ساز موبایل دیده می شود. شما می بایست تصویر زیر را ببینید :
تعداد بیشمار پلاگین دیگر هم موجود است که با توجه به نیازتان می توانید از آنها استفاده کنید. در بالا ما تعداد اندکی را معرفی کردیم تا بدانیم که انواع مختلف پلاگین در corona sdk برای کارهای مختلف وجود دارد.
لوا در صنعت بازیهای ویدیویی محبوبیت زیادی دارد. در تعدادی از موتورهای بازی از زبان لوا برای توسعه و به عنوان اسکریپت استفاده میشود از جمله:CryEngineوLeadwerks Engine.
از جملهٔ بازیهایی که از افزونبستههای (Plugin) لوا پشتیبانی میکنند میتوان به موارد زیر اشاره کرد:Crysis،BZFlag،PlayStation Home،Dawn of War،World of Warcraft،DeathStatue Gameو…
به جز بازیها لوا در کاربردهای بسیاری هم تجاری و هم غیرتجاری استفاده شده است از جمله:Adobe Photoshop Lightroom،Apache HTTP Server،LuaTex،nmap،WireShark.
دستورات لوا خط به خط توسط مفسر اجرا میشوند. در لوا همچون زبانهای پردازهنویسی دیگر تابع اصلی (main) وجود ندارد (میتوان اینطور تصور کرد که کل برنامه یک تابع اصلی است). هر بلوک کد لوا یا مربوط به مقداردهای متغیر است یا اینکه اجرای یک تابع خاص میباشد. ارتباط با دنیای بیرون از طریق رابط برنامهنویسی نرمافزار انجام میشود. متغیرهایی که تعریف میشوند به دو دسته عمومی و محلی تقسیم میشوند.
متغیرهای محلی متغیرهایی هستند که حوزه آنها یک تابع خاص است. در این زبان پیشپردازنده وجود ندارد. در لوا مستقیماً قابلیتهای زیادی وجود ندارد، بلکه هر برنامهنویس با فرا ساز و کارهای تعبیه شده میتواند قابلیت لازم خود را اضافه کند. این فرا ساز و کارها عبارتند از: آرایههای انجمنی پویا (Dynamic Associative Arrays)، ابزارهای انعطافپذیر (Reflexive Facilities) و فراجدولها (Metatables)
حرف آخر :
با خواندن این مقاله شما به طور مقدماتی در مورد زبان برنامه نویسی Lua و تکنولوژی Corona SDK مطالبی یاد گرفتید. همچنین یک برنامه ی ساده نوشتیم و آن را در Corona simulator اجرا کردیم. اگر مشتاقید که توانایی های خود را در این زمینه بیشتر افزایش دهید، به وبسایت برنامه نویسان Corona مراجعه کنید.
همچنین اگر می خواهید در مورد زبان برنامه نویسی Lua بیشتر بدانید به وبسایت Lua مراجعه کنید. بهر حال شما برای تولید برنامه و بازی های حرفه ای با Corona SDK باید حتما به Lua مسلط باشید. سایر تکنولوژی های مرتبط با ساخت اپلیکیشن های هایبرید مانند Apache Cordova نیز بسیار به ساخت برنامه های چند سیستم عامله یا همان cross platform کمک می کنند،
اگر نظر و یا پیشنهادی درباره ی این موضوع دارید، در قسمت کامنت ها با ما مطرح کنید تا همه از تجربیات یکدیگر بتوانیم بهره ببریم