زامارین بومی در مقایسه با فُرمهای زامارین

همانطور که در تصویر فوق قابل ملاحظه است، میتوان دو نوع پروژه زامارین ایجاد کرد. یک نوع پروژه زامارین بومی (Native Xamarin) است که رویکرد قدیمی توسعه اپلیکیشن موبایل با زامارین به حساب میآید و نوع دیگر نیز فُرمهای زامارین است که به صورت «Xamarin.Forms» نوشته میشود. هر دوی این نوع پروژهها پایه کد مشترکی به زبان سی شارپ یا F# دارند. این یعنی منطق کسب و کار را میتوان در پلتفرمهای مختلف (مثل اندروید و iOS) به اشتراک گذاشت. بنابراین، کدهای مربوط به مواردی مثل دسترسی به پایگاه داده، تعامل با خدمات ابری مثل Azure و سایر موارد را میتوان تنها یک بار نوشت، صرف نظر از اینکه کدها قرار است در اندروید، UWP ،iOS (پلتفرم ویندوز) یا هر پلتفرم دیگری مستقر شوند که تحت پشتیبانی زامارین است. تفاوت این دو نوع پروژه در رابط کاربری (UI) و نحوه ایجاد آن است. هر دو روش همچنان به اجزای بومی کامپایل میشوند، اما نحوه نوشتن آنها متفاوت است.
رویکرد بومی زامارین به چه صورت است؟
در مورد رویکرد بومی زامارین، واسط کاربری هر پلتفرم جداگانه نوشته میشود. بنابراین، برای iOS همچنان از Storyboardها، در اندروید از AXML و در UWP از XAML استفاده خواهد شد. بُعد منفی در این رویکرد این است که نیاز به توسعه هر رابط کاربری به صورت مجزا وجود دارد. توسعه رابط کاربری هر پلتفرم به طور مجزا نه تنها نیاز به تخصص و دانش دارد، بلکه زمانبر نیز خواهد بود. در صورتی که قصد ایجاد یک نمونه اولیه از یک اپلیکیشن چندپلتفرمی با بودجه کم و سرعت بالا وجود داشته باشد، نیاز به ایجاد واسط کاربری به طور مجزا برای هر پلتفرم میتواند سربار ایجاد کند. اگرچه، با توجه به اینکه Xamarin.Native تنها یک پوشش نازک برای APIهای بومی است، میتوان هر کاری را که در محیط بومی انجام میشود با Xamarin.Native هم انجام داد. این مسئله Xamarin.Native را به یک جایگزین قدرتمند و بسیار پایدار برای توسعه بومی با امکان به اشتراکگذاری کدها و استفاده از زبانهای داتنت بدل کرده است.
Xamarin.Forms چگونه عمل میکند؟
با استفاده از Xamarin.Forms امکان نوشتن رابط کاربری به صورت کدهای اعلانی یا استفاده از XAML وجود دارد. نکته مثبت در مورد Xamarin.Forms این است که رابط کاربری تنها یک بار نوشته میشود و سپس کدهای نوشته شده به زبان بومی هر پلتفرم دلخواه کامپایل خواهند شد. همانطور که پیشتر نیز اشاره شد، خروجی و نتیجه کار درست مشابه یک اپلیکیشن توسعه داده شده به صورت بومی خواهد بود.
تفاوت اصلی این است که در Xamarin.Forms هم رابط کاربری و هم منطق کسب و کار به اشتراک گذاشته میشوند. بنابراین، همه آنچه میتوان در حالت بومی انجام داد، در Xamarin.Forms قابل پیادهسازی نخواهد بود یا نیاز به کار بیشتری خواهد داشت. در هر پلتفرم (اندروید، iOS) برخی از ویژگیها به صورت متفاوتی پیادهسازی خواهند شد. به عنوان مثال، میتوان به عکس گرفتن و بررسی اتصال داده همراه اشاره کرد. در چنین شرایطی است که بحث افزونهها (پلاگینها) یا کتابخانهها به میان میآید. این افزونهها که اغلب بستههای NuGet نامیده میشوند، نتیجه تلاشهای یک توسعه دهنده هستند که آنها را برای هر پلتفرم به صورت مجزا پیادهسازی و آماده کرده است. بنابراین میتوان کتابخانه را به پروژه خود افزود و شروع به استفاده از آن در کدهای پروژه کرد.

چند سال پیش توصیه زاماراین که در آن زمان یک شرکت مستقل به حساب میآمد این بود که اگر قصد انجام کار گرافیکی پیچیدهای وجود دارد، بهتر است از Xamarin.Native استفاده شود. اگرچه، با تحول محصولاتی مثل SkiaSharp، این محدودیتها همه ساله در حال کاهش هستند و Xamarin.Forms هم به یک انتخاب معتبر برای اکثر پروژهها تبدیل شده است. زبان اصلی و رایج در توسعه اندروید از دیرباز زبان جاوا به حساب میآید. بدین سبب در ادامه مقاله برنامه نویسی اندروید با سی شارپ ، مقایسهای میان دو زبان جاوا و سی شارپ انجام شده است.
مقایسه سی شارپ با جاوا
سی شارپ یک زبان برنامه نویسی شیگرا به حساب میآید که توسط شرکت مایکروسافت در سال ۱۳۷۹ با هدف مُدرن بودن، سادگی و انعطافپذیری بالا توسعه داده شده است. مشابه جاوا (توسعه داده شده توسط شرکت سان مایکروسیستم در سال ۱۳۶۹) سی شارپ نیز در اصل از زبان C++ شکل گرفته شده است. این مسئله باعث شده که شباهتهای بسیاری بین دو زبان سی شارپ و جاوا وجود داشته باشد. برای مثال، هر دو زبان جاوا و سی شارپ از پایه نحوی یکسانی استفاده میکنند. به این معنی که این دو زبان به طور موثر واژه شناسی و ساختار یکسانی را به کار میگیرند. چند تفاوت جزئی بین این دو زبان وجود دارد، اما در صورتی که آشنایی با یکی از آنها وجود داشته باشد، آنگاه میتوان بخش زیادی از زبان دیگر را بدون نیاز به یادگیری آن به طور مشخص درک کرد. البته، برای افراد تازهکار، یادگیری سی شارپ تا حدودی آسانتر است.
هر دو زبان جاوا و سی شارپ شیگرا هستند و اشیا را از طریق کلاسها توصیف میکنند. شیگرایی یک رویکرد ماژولار در برنامه نویسی است که امکان استفاده مکرر از بریدههایی از کدهای یکسان را فراهم میکند. تفاوتهای سی شارپ با جاوا در استفاده از Delegateها، رویکرد آن در گوش دادن به رویدادها، ویژگیهای مجازی در مقابل نهایی، ارسال محتوا و موارد دیگر است. البته برای شروع به یادگیری سی شارپ نیازی به دانستن اکثر این مفاهیم وجود ندارد. نکته اصلی این است که ساختار سی شارپ برای یادگیری کمی آسانتر است و نیاز به کدنویسی و تایپ کمتری وجود دارد. این مسئله خصوصاً در مورد یادگیری جاوا برای اندروید صادق است. زیرا علاوه بر یادگیری زبان جاوا، نیاز به آشنایی با کلاسهای متعدد و APIهای مورد نیاز برای ساخت اپلیکیشنهای اندرویدی وجود دارد.
برای برنامه نویسی اندروید با سی شارپ به چه ابزارهایی نیاز است؟
وقتی بحث توسعه با سی شارپ زامارین مطرح میشود، سه انتخاب اصلی برای IDE وجود دارد. یکی Visual Studio 2019، دیگری ویژوال استودیو برای مک و انتخاب سوم هم Rider است. هر سه این IDEها به صورت پیشفرض از زامارین پشتیبانی میکنند. Visual Studio هم برای ویندوز و هم مک OS از زامارین به صورت رایگان پشتیبانی میکند و تنها نیاز به نسخه Community وجود خواهد داشت. با توجه به اینکه زامارین توسط مایکروساف خریداری شده، انتخاب بهتر برای برنامه نویسی اندروید با سی شارپ ، استفاده از Visual Studio است. بنابراین، در این مقاله نیز برنامه نویسی اندروید با سی شارپ در Visual Studio 2019 آموزش داده شده است.
آموزش برنامه نویسی اندروید با سی شارپ
در این بخش از مقاله برنامه نویسی اندروید با سی شارپ، گامهای مورد نیاز برای ایجاد اولین پروژه Xamarin.Forms در ویندوز و مک OS و ساخت اولین اپلیکیشن زامارین شرح داده شده است.
ایجاد پروژه جدید زامارین در Visual Studio 2019
میتوان یک پروژه جدید را با کلیک کردن روی گزینه «Create a new Project» در پنجره خوشامدگویی Visual Studio 2019 ایجاد کرد. این پنجره در تصویر زیر نمایش داده شده است:

در پنجره ایجاد پروژه جدید، در قسمت نوع پروژه (Project Type) باید گزینه «Mobile» را انتخاب کرد. سپس باید گزینه Mobile App (Xamarin.Forms) را مطابق تصویر زیر انتخاب و Next را کلیک کرد.

در صورتی که گزینه Xamarin.Forms در فهرست مربوطه موجود نباشد، به این معنی است که زامارین در Visual Studio نصب نشده و باید آن را از طریق برنامه Installer ویژوال استودیو نصب کرد. مطابق تصویر زیر، باید بسته «Mobile Development with .NET» در ویژوال استودیو نصب شود:

در پنجره پیکربندی پروژه (Configure Your Project) باید نام پروژه و سپس یک پوشه را نیز برای ذخیرهسازی پروژه در قسمت Location انتخاب کرد. گزینه «Place solution and project in the same directory» نیز باید بدون تیک رها شود و در نهایت گزینه Create برای ایجاد پروژه جدید کلیک میشود. به این ترتیب، پنجره جدید برای اپلیکیشن چندپلتفرمی جدید باز میشود. در فهرست «Select a Template» باید گزینه Blank را انتخاب کرد. حال در قسمت «Platform» نیز باید Android و iOS را انتخاب و در نهایت OK را کلیک کرد.

نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.