وقتی صحبت از ساخت برنامههای کاربردی iOS و Android میشود، بسیاری از افراد تنها گزینه را Objective-C یا Java میدانند. اما در این چند سال اکوسیستمهایی (مجموعه ای از ابزارها) برای ایجاد برنامههای کاربردی موبایل ظهور کردهاند و البته تمرکز آنها بر روی Cross Platform بودن آنها بوده است. هر کدام از آنها قابلیتهایی را برای ما به ارمغان میآورند. البته بعضی فقط به ما امکان نوشتن کدهای Html و Java Script را میدهند و برخی دیگر از کدهای C++/C که کدهای low-level هستند، استفاده میکنند.
ما در اینجا قصد معرفی Xamarin را داریم. تنها پلتفرمی که تمام امکانات بومی موبایل را به همراه امکانات بسیار دیگری، برای ما فراهم میکند. این امکانات شامل موارد ذیل هستند:
1- اتصال کامل به SDK بومی: Xamarin شامل اتصالاتی برای استفاده از تمامی (تقریبا) امکانات iOS و Android میباشد. این اتصالات به صورت Strongly-typed هستند. به این معنا که برای بررسی و استفاده، آسان هست و همچنین در حین توسعه و کامپایل به خوبی صحت کدها را چک میکند.
2- قابلیت ارتباط با Objective-C،Java، C،C : زامارین امکاناتی را برای فراخوانی مستقیم کتابخانههایی که با Objective-C، Java، C و ++C نوشته شدهاند، نیز فراهم کرده است. این یک امکان فوق العاده هست که شما بتوانید از تعداد بسیار زیاد کتابخانههای نوشته شده برای iOS و Android استفاده کنید.
3- استفاده از زبان مدرن #C: برنامههای Xamarin با #C نوشه میشوند که بهبودهای قابل توجهی نسبت به زبانهای Objective-C و Java داشته است. امکاناتی مانند عبارات لامبدا، LINQ، برنامه نویسی موازی و ....
4- مجموعه کلاسهای فوق العاده: برنامههای Xamarin از Net BCL. که مجموعهای عظیم و جامع از ویژگیهای قدرتمند، مانند استفاده از XML، بانک اطلاعاتی، شبکه، IO و ...است، استفاده میکند که امکانات فوق العادهای را برای توسعه دهندگان فراهم مینماید.
5- استفاد ه از یک IDE قدرتمند: برای Mac OS X شما Xamarin Studio و برای ویندوز Xamarin Studio و Visual Studio را در اختیار دارید که برای یک توسعه دهندهی نرم افزار چیزی را کم نگذاشتهاند.
6- Cross Platform بودن: Xamarin برای سه پلتفرم مطرح موبایل، شامل iOS، Android و Windows Phone قابل استفاده میباشد و تقریبا 90 درصد از کدهای شما قابل استفادهی مجدد در هر سه پلتفرم میباشد.
البته با ارائهی Xamarin.Forms این میزان به 100درصد رسیده است!
نحوهی نصب Xamarin:
میتوانید Xamarin Studio و Xamarin For Visual Studio را از سایت
Xamarin دانلود نموده و به راحتی نصب نمایید. برای آنکه بتوانید Xamarin را نصب و استفاده نمایید، لازم است که موارد زیر را نیز به روی سیستم خود داشته باشید:
1- Android SDK
2- GTK#
3- Android NDK
4- Java SDK(JDK)
هر آنچه را که برای ادامهی مسیر با ما لازم دارید، از
ehsanavr.com دانلود نمایید.
و البته نحوهی نصب Xamarin به صورت کامل و همراه با تصاویر مربوطه نیز در آدرس زیر وجود دارد:
Emulator یا شبیه ساز اندروید: Xamarin یک شبیه ساز بسیار عالی برای تست برنامههای اندرویدی در اختیار ما قرار داده است که از Virtual Box استفاده میکند. میتوانید این نرم افزار را با نام Xamarin Android Player از
اینجا دانلود نمایید. بعد از نصب و اجرای آن شما باید Imageهای مربوط به هر نسخهای را که میخواهید، دانلود کنید:
کمی درباره سطوح مختلف APIهای اندروید:
اندروید برای تشخیص سازگاری برنامههای اندروید، از سطوح مختلف APIها(API Levels) استفاده میکند. هر سطح از این APIها یک ورژن از اندروید را شامل میشوند. برای مثال Marshmallow که به اندروید 6 معروف میباشد، از API Level شماره 23 بهره میبرد و Lollipop نسخهی 5، شامل API Level شماره 21 و Lollipop 5.1 شامل API Level شماره 22 میباشد و الی آخر.
اهمیت دانستن این موضوع، به این دلیل میباشد که انتخاب API Level مناسب، ارتباط مستقیمی با موبایل هایی دارد که میتوانند برنامهی شما را اجرا کنند. میتوانید لیست کامل APIهای موجود را از اینجا مشاهده نمایید:
برای هر برنامهی اندروید نوشته شده، 3 تنظیم برای SDK مورد استفاده قرار میگیرد:
Target Framework: مشخص کنندهی نوع فریموورکی میباشد که برنامه با آن کامپایل میشود.
Minimum Android Version: مشخص کنندهی قدیمیترین نسخهی اندرویدی میباشد که میخواهید برنامهی شما روی آن اجرا شود. این API Level در زمان اجرا استفاده میشود.
Target Android Version: نسخهای را که برنامهی شما بر روی آن اجرا میشود، مشخص مینماید. این API Level در زمان اجرا استفاده میشود. همیشه میزان این API Level باید برابر یا بیشتر از Target Framework باشد.
البته معمولا این سه تنظیمات را روی یک API Level تنظیم میکنند.
قبل از اینکه بخواهید API Level مورد نظر را انتخاب کنید، باید SDK مربوط به آن را دانلود و نصب نمایید. برای مدیریت نسخههای SDKهای نصب شده بر روی سیستم خود میتوانید از Android SDK Manager که در فولدر SDK قرار دارد میتوانید استفاده نمایید.
کمی دربارهی معماری Xamarin:
برنامههای نوشته شده در Xamarin.Android در محیط Mono اجرا میشوند و Mono در کنار ماشین مجازی زمان اجرای اندروید، اجرا میشود. این دو سیستم روی هستهی لینوکس اجرا میشوند و APIهای مختلفی را در اختیار برنامه نویسان قرار میدهند. Mono با زبان C نوشته شده است. شما میتوانید کلاسهای NET. مانند: System، System.IO، System.Net را برای دسترسی به قابلیتهای لینوکس مورد استفاده قرار بدهید.
در اندروید، بیشتر قابلیتهای سیستم مانند صدا، گرافیک، OpenGL و قابلیتهای تلفن، مستقیم در دسترس برنامههای بومی(Native) نیستند. آنها فقط از طریق APIهای Android Runtime Java در دسترس هستند که در فضای نام Java.* یا Android.* قرار داردند. تصویر زیر این توضیحات را به خوبی نشان میدهد.
توسعه دهندگان Xamarin.Android به امکانات مختلفی از سیستم عامل با فراخوانی APIهای NET. دسترسی دارند و همچنین کلاسهای موجود در فضای نام Android، پُلی برای استفاده از APIهای اندروید توسط برنامه نویسان Xamarin میباشد.
نکتهی مهم دیگر این است که Packageهای برنامههای نوشته شده با Xamarin ساختاری شبیه به برنامههای معمول اندرویدی دارد، البته همراه با موارد زیر:
1- اسمبلیهای برنامه (شامل IL)
2- کتابخانههای بومی، که باید حتما برنامههای Xamarin.Android کتابخانههای زمان اجرای مناسب با معماری اندروید مانند:armeabi، armeabi-v7a، x86 را در اختیار داشته باشد.
در بخش بعد اولین برنامهی اندرویدی خود را با Xamarin اجرا مینماییم.