بعد از اینکه مقاله زامارین چیست را در سایت منتشر کردیم حال باید به سراغ مزایا و معایب Xamarin به همراه کاربرد زامارین برویم و ببینیم اصلا عقلانی است که از تکنولوژی Xamarin استفاده کنیم یا نه. البته در مقالات دیگر مقایسه هایی بین زامارین و سایر زبان ها و برنامه های تولید اپلیکیشن انجام داده ایم. در این مقاله ابتدا مزایا و معایب تکنولوژی Xamarin را با هم مورد بررسی قرار میدهیم و در آخر در مورد کاربرد آن صحبت می کنیم. (پیشنهاد میکنم مقاله ای که در انتهای این پست قرار داده ایم را حتما مطالعه کنید.)
قبل از اینکه در مورد مزایا و معایب Xamarin صحبت کنیم ابتدا ببینیم زامارین چی هستش، زامارین ابزاری نوین (و زیر مجموعه کمپانی قدرتمند مایکروسافت) است که برای طراحی و ساخت نرم افزارهایی با قابلیت استفاده در تمام گوشی های موبایل تحت سیستم های عامل متفاوت بکار گرفته میشود.
به عبارت دیگر: زمانی که شما با استفاده از زبان C# (سی شارپ) اقدام به ساخت اپلیکیشنی در فضای زامارین می کنید، دیگر نیازی به تغییر یا بازنویسی آن (مثلاً به زبان جاوا و…) جهت استفاده در دیگر پلت فرم ها ندارید. در واقع میتوان گفت زامارین یک ابزار برنامه نویسی چند سکوییست.
Xamarin نام شرکتی است که ابزارهای توسعه نرم افزار تجاری تولید می کند. این شرکت با استفاده از پروژه متن باز Mono بستری را فراهم می آورد که بتوان با استفاده از #C و NET. بتوان برنامه هایی برای اندروید و OS X و IOS ساخت. Xamarin برای ساخت برنامه های اندروید محصول Xamarin.Android را به بازار عرضه کرده است.
مزایای زامارین
در بخش زیر تعدادی از مزایای تکنولوژی زامارین را با هم مورد بررسی قرار میدهیم. (۱۰ مزیت مهم و اصلی تکنولوژی زامارین)
۱- عملکرد زامارین در اجرا و مدیریت حافظه خیلی خوب و نزدیک به Native می باشد
۲- زبان برنامه نویسی برای همه پلتفرم ها، سی شارپ است که اگر بخواهیم مزایای .Net رو هم در نظر نگیریم، همین یکی بودن زبان برنامهنویسی باعث میشود Learning curve، خیلی بهتری داشته باشد
۳- مگر میشود مزایای دات نت رو نادیده گرفت؟ دات نت فوق العادهست. شما وقتی از زامارین برای تولید اپلیکیشن استفاده میکنید، به همه کتابخانه های دات نت دسترسی دارید و میتوانید ازش استفاده کنید. چیزایی مثل Lambdas, LINQ, Asynchronous programming
۴- ۹۰٪ از کدبیس همه پلتفرم ها یکی است و نیازی نیست که برای هر پلتفرم یسری کد های پایه رو تکرار کنید و خب همهی کدها روی یک لایه جدا که روی بخش Native هر پلتفرمی هست قرار میگیرد و Share می شود.
۵- تجربه کاربر از کار کردن با اپ زامارین، بر خلاف اپ های هایبریدی، مشابه تجربه کاربر از استفاده اپ نیتیو هست
۶- زامارین Open Source است
۷- نصب و راه اندازی SDK ها و IDE خیلی راحت می باشد، و روی مک و ویندوز قابل استفاده هست (برای iOS نیاز به سیمولاتور XCode هست)
۸- چیزی به نام Xamarin Forms هم وجود دارد که شما از طریقش میتونید واسه همه پلتفرما یه UI و یه کد بزنید که خب البته میشود همان داستان WebView و هایبریدی ها
۹- با زامارین میتونید واسه مک و واچ او اس هم اپ بنویسید
۱۰- درسترسی و ساپورت کامل سخت افزار و سنسور های هر پلتفرمی
معایب زامارین
بعد از اینکه مزایای تکنولوژی زامارین را مورد بررسی قرار دادیم حالا در مورد معایب آن هم صحبتی داشته باشیم. در بخش زیر تعدادی از معایب اصلی تکنولوژی زامارین رو لیست کرده ایم.
۱- تاخیر در دریافت آپدیت های SDK برای هر پلتفرمی
۲- جامعه برنامه نویس های زامارین خیلی کوچیکتر از برنامه نویس های نیتیو iOS و Android است و اگه با چالشی روبرو شوید، کمک گرفتن برای حل آن میتوند خیلی سخت تر باشد (البته اگر مشکل زبان ندارید می توانید از سایت های خارجی کمک بگیرید.)
۳- شما برای برنامه نویسی هر پلتفرمی نیاز به دانش اولیه برنامه نویسی برای همون پلتفرم رو دارید. چرا؟ زامارین عملا فقط SDK هر پلتفرمی را در قالب DotNet جا داده و خب شما صرفا نمیتوانی بگی من زامارین بلدم و واسه هر پلتفرمی میتونم کد بنویسم
۴- زامارین عملکردش در اپ هایی با پردازش گرافیکی سنگین اصلا خوب نیست و اگه میخواید بازی تولید کنید اصلا سمتش نرید.
۵- اگه عادت به استفاده از کتابخانه های شخص سوم (!) و pod های مختلف دارید و یا اصلا پروژه اینو میطلبد، سمتش نرید چون که نمیتونید از کتاب خونه های Native پلتفرما استفاده کنید. گرچه خود زامارین پکیج های خاص خودش را دارد ولی خب خیلی محدود تر از پکیج های Native هستند.
نکته مهم: درسته زامارین هیچوقت نمی تواند جایگزین زبان مادری پلتفرم شود، ولی به عنوان یک راه حل سریع، ارزان، کارآمد و قوی بسیار گزینه خوب است و بسیاری از برنامه نویس ها آینده روشنی را برای آن پیش بینی کردند.
کاربرد زامارین
از زامارین می توانید برای تولید هر نوع اپلیکیشنی استفاده کنید اما اگر می خواهید با آن بازی بسازید پیشنهاد می کنم سمت یونیتی بروید و دور زامارین را خطر بکشید و اگر می خواهید برنامه هایی با ظاهر بسیار زیبا و پر رنگ و لعاب تولید کنید بازم پیشنهاد نمی شود. به غیر این دو مورد، برای تولید هر اپلیکیشن دیگری، زامارین کاربرد دارد و می توانید از آن استفاده کنید. قبلا هم در این مورد صحبت کردیم و گفتم اگر سی شارپ بلد هستید به نظرم بهترین گزینه برای نوشتن اپلیکیشن های اندرویدی، استفاده از تکنولوژی زامارین می باشد و به شدت پیشنهاد می شود.
پیشنهاد: اگر به دنبال یادگیری برنامه نویسی اندروید هستید پیشنهاد میکنم حتما مقاله مقایسه محیط های برنامه نویسی اندروید رو مطالعه کنید کافیه روی تصویر زیر کلیک کنید.