آشنایی بیشتر با Xamarin

زمان مطالعه: 3 دقیقه

به نام خداوند بخشنده مهربان و سلام

تو نوشته ی قبلیم یه مقدار در مورد تفاوت روش های تولید اپ بومی (native) و روش های هایبرید یا چند پلتفرمی (Hybrid or Multi Platform) توضیح دادم، اینجا میخوام بیشتر د رمودر Xamarin صحبت کنم.

در دنیای توسعه اپ موبایل، می توان از روش های توسعه native استفاده کرد یا همون روش های هایبرید،  روش Native  به ارائه کارایی بی نظیر و تجربه کاربری کاربر پسند می پرازد، هر شرکتی منابع کافی برای توسعه اپ با استفاده از روش native برای هر platform  جدا رو نداره (منابع انسانی و مالی)، روش های چند پلتفرمی مخصوصا به صورت انعطافپذیر تر نسبت به روش های native ارائه میشند که منجر به اپ های با قابلیت اجرا روی پند پلتفرم جدا رو بدون کد نویسی مجدد برای هر پلتفرم را می دهند.

اما انتشار تجربه کاربری کاربر پسند بدون استفاده از روش ها و کد های native توسط تعداد اندکی از شرکت ها ارائه شده است:

سایز فایل اپ ها بیشتره، کاراییشون یه مقدار متفاوته، کدهای سربارشون بیشتره (overHead) و در بعضی از موارد هر پلتفرم هزینه خودش رو داره. تمام نرمافزار های چند پلتفرمی یکسان نیستند اما هدفشون ارائه مزایایی برای بهتر شدن اپ موبایلیست که میخوایم توسعه بدیم.

در ادامه به مقایسه روش native با xamarin  می پردازیم؛

آشنایی با xamarin: زامارین نرم افزار چند پلفترمیه که اپ های native با واسط کاربری (UserInterface UI) مختص به هر پلتفرم تولید میکنه. زامارین کد های App و کدهای دیزاین و UI را با دسترسی به API های native هر پلتفرم کامپایل می کنه. زامارین مقداری سربار داره اما تجربه یک اپ نوشته شده با native و سرعت برابر با اون را تقریبا بهمون میده.

مبنای Xamarin: 

  • زبان برنامه نویسی: C# (هر کاری که میتوانیم با زبان شی گرا مانند Objectiv-C و Swift و جاوا رو انجام داد با C# نیز میشه انجام داد)
  • پلتفرم ها: iOS، Android، Windows، Blackberry
  • Open Source
  • Xamarin TestCloud : اجازه تست گرفتن از اپ نوشته شده بر روی بیش از 2000 دیوایس و بیلد کردن، تست کردن و مانیتور کردن اپ روی کلاذ پس از develope کردن را به ما می دهد.
  • HockyApp: پشتیبانی زامارین این امکان رو میده که نسخه بتا اپ رو توزیع کنید و توقفات ناگهانی زنده (live crash) اپ را گزارش میده، بازخورد کاربرهای واقعی را میده و تست آنالیز رو پوشش میده.
  • کتابخانه Xamarin.Forms : چگونه UI های Native ساحته شده و توسط کنترل های native برای هر پلتفرم رندر (render) می شوند.
  • پشتیبانی از الگوهای طراحی(Design Pattern): پشتیبانی از MVC ، MVVM
  • کمپانی هایی که از Xamarin استفاده می کنند: Slack، GitHub، JetBlue و …

با استفاده از Xamarin:

یک مرجع کد اشتراکی نیاز به زمان و منابع کنتری داره. مانی که ما از یه مرجع کد C# استفاده می کنیم که میتوان برای پلتفرم های مختلف ازش استفاده کنیم. فکر کنید 70 درصد کد Xamarin و 30 درصد native، و کد های xamarin قابلیت استفاده مجدد با کتابخانه .Forms رو داره. توجه بشه که اینجا داشتن یه متخصص با تجربه زامارین که با راه های نگهداشتن کد به صورت تمیز و سازماندهی شده حول و حوش پلتفر ها میتونه کمک زیادی بکنه.

با استفاده از Native :

توسعه دهنده ها باید برای هر پلتفرم یک مجموعه کد native با استفاده از زبان برنامه نویسی و فریمورک های اون پلتفرم بنویسند. اگر میخوایم native اپ برای چند پلتفرم بنویسیم به معنای کار دوباره(دوباره کاری) می باشد که منابع را دوبرابر می کند و زمان زیادی برای بروزرسانی، patching و دیباگ کردن هر اپ نیاز هست. اون کد بهینه شده برای پلتفرم خودش هست، ولی فقط  و فقط روی پلتفرم خودش اجرا میشه.

……………………………………………

 

با استفاده از Xamarin:

کاربران 100 درصد کارایی native رو دارند. با استفاده از Xamarin.Forms ، واسط کاربری به صورت کامل با کنترل های native رندر (render) میشه. تنها مشکل سایز بیشتر برنامه هست- به دلیل یه مقدار سربار برنامه (بیشتر برای برنامه هایی که با UI خیلی کار دارند)

با استفاده از Native :

اپ ها به آسانی بروزرسانی می شوند. یکی از مزایای اصلی توانایی ساخت بروزرسانی ها، تغییرات و بهبود های روی اپ هست. با استفاده از native فرایند یکسانه و تنها برای هر ورژن از اپ داپلیکیت میشود.

 

……………………………………….

 

با استفاده از Xamarin:

اگر C# بلد باشید، یادگرفتنش سخت نیست. C# یه زبان بسیار رایج هست که تعداد زیادی از توسعه دنده های وب با اون آشنایی دارند پس نیازی به یادگرفتن زبانی برای هر پلتفرم جدا نمی باشد.

با استفاده از Xamarin:

می توان دسترسی به API های دیوایس داشت و در نتیجه میتوان به ویژگی های دیوایس دسترسی داشت، به این معنیست که اپ شما می توان دسترسی کامل به قابلیت های API ها داشته باشد. این مورد رو تنها Xamarin  در بیت Multi Platform ها داره.

 

از دیگر مزایای Xamarin میشه به دسترسی به کتابخانه های .Net اشاره کرد،کتابخانه های .Net شامل HTTPClient  بسیار فوق العاده هستند.