ابتدا که وارد دنیای زامارین می شوید اصطلاحاتی را می شنوید که برایتان گیج کننده است و مدتی باعث سردرگمی میشود. میخواهیم در این مطلب کمی در مورد دنیای زامارین و اصطلاحات آن توضیح دهیم.

Mono: مونو به طور ساده در واقع پیاده سازی چندپلتفرمی از دات نت هست، یعنی بتوان برنامه های نوشته شده با دات نت را روی تمامی پلتفرم ها و سیستم عامل ها اجرا کرد. شرکت زامارین که تیم مونو آن را پایه گذاری کردند، با استفاده از همین زیرساخت مونو و پیاده سازی کتابخانه های پلتفرم های موبایل اندروید و ios توانست محصول زامارین را تولید کند که برنامه نویسان دات نت با زبان سی شارپ بتوانند برنامه های اندروید و ios تولید کنند.

Xamarin Android: به پیاده سازی پلتفرم اندروید روی مونو ، Xamarin Android یا Mono Droid گفته می شود. در واقع با این محصول شما می توانید برنامه های موبایل برای اندروید با استفاده از دات نت و سی شارپ تولید کنید.

Xamarin iOS:  به پیاده سازی پلتفرم ios روی مونو ، Xamarin iOS یا Mono touch گفته می شود. در واقع با این محصول شما می توانید برنامه های موبایل برای iOS با استفاده از دات نت و سی شارپ تولید کنید.

Shared Code یا کد مشترک: منظور از کد مشترک در زامارین به این صورت هست که منطق تجاری برنامه ها و کارهای مستقل از پلتفرم ها را یک بار می نویسید. معمولا در یک برنامه ی تجاری ، منطق برنامه و کارهای عمومی مثل اتصال به یک وب سرویس و دریافت اطلاعات و ثبت اطلاعات حدود ۷۰% یک برنامه را تشکیل میدهد. با استفاده از زامارین میتوانید این ۷۰% کد را به طور مشترک بنویسید و فقط کارهای مخصوص پلتفرم و ظاهر برنامه ها را مجزا انجام دهید. این کار هزینه ی نگهداری و پشتیبانی نرم افزار را بسیار پایین می آورد و مزیت بزرگی برای برنامه های تجاری می باشد.

مثلا فرض بگیرید میخواهیم اطلاعات فید سایت زامارین را از سایت خوانده و پردازش کنیم.

[csharp] public async Task<List<FeedItem>> GetFeedItems(DateTime date) {
var feed = "http://planet.xamarin.com/feed/";
var response = await httpClient.GetStringAsync(feed);
var items = await ParseFeedAsync(response);
return items.Where(item => item.Published.Date == date).ToList();
}
[/csharp]

کد بالا که منطق برنامه می باشد، بین تمام پلتفرم ها مشترک هست و یک بار نوشته شده و تست می شود. فقط باید ظاهر برنامه را برای نمایش در هر پلتفرم جداگانه تولید کنیم.
در زامارین به دو صورت می توان این کدها را بین برنامه های پلتفرم های مختلف به اشتراک گذاشت. یکی استفاده از shared project و دیگری استفاده از کلاس های PCL یا کلاس های قابل حمل. PCL ها مفهوم تولید شده توسط زامارین نیستند و توسط خود مایکروسافت قبلا معرفی شده بودند.

Xamarin Form: یک از جذاب ترین تکنولوژی های زامارین، Form می باشد. با استفاده از این تکنولوژی که شامل مجموعه کنترل های طراحی رابط کاربری و یک سری کلاس کمکی هست، شما می توانید علاوه بر منطق مشترک برنامه ها که در بالا توضیح داده شد، رابط کاربری برنامه هایتان را هم بصورت مشترک تولید کنید.

به کد زیر توجه کنید:

[csharp] using Xamarin.Forms;

 

var profilePage = new ContentPage {
Title = "Profile",
Icon = "Profile.png",
Content = new StackLayout {
Spacing = 20, Padding = 50,
VerticalOptions = LayoutOptions.Center,
Children = {
new Entry { Placeholder = "Username" },
new Entry { Placeholder = "Password", IsPassword = true },
new Button {
Text = "Login",
TextColor = Color.White,
BackgroundColor = Color.FromHex("77D065") }}}
};

var settingsPage = new ContentPage {
Title = "Settings",
Icon = "Settings.png",
(…)
};

var mainPage = new TabbedPage { Children = { profilePage, settingsPage } };
[/csharp]

خروجی کد بالا در پلتفرم های مختلف به صورت تصویر زیر ظاهر می شود.

اگرچه زامارین فرم بسیار جذاب بنظر می رسد، ولی برای هر نوع برنامه ای توصیه نمی شود. زامارین فرم دارای محدودیت های طراحی می باشد و معمولا برای برنامه های تجاری که ظاهر پیچیده ای ندارند توصیه می شود. مثلا یک برنامه های ثبت اطلاعات مشتری یا حسابداری. ولی برای ساخت یک بازی، زامارین فرم توصیه نمی شود.

Xamarin Insight: این محصول یک سرویس قدرتمند برای مانیتور کردن وضعیت برنامه می باشد. شما برنامه ی خود را تحویل مشتری می دهید و سپس در وب سایت Insight ، میتوانید کارکرد برنامه و باگ ها و گزارش وضعیت را ببینید. این یک ابزار فوق العاده برای لاگ برنامه ها و تحلیل رفتار مشتری و پیدا کردن عیب های برنامه می باشد. این سرویس رایگان نمی باشد.

Xamarin Test Cloud: یکی از بزرگترین چالش های نوشتن برنامه های موبایل، تست برنامه رو طیف وسیعی از دستگاه های موبایل می باشد که هر کدام سایز و ویژگی های متفاوتی دارند. در حالت معمول شما باید تعداد زیادی دستگاه مجازی و فیزیکی داشته باشید و برای هر نسخه از برنامه روی این دستگاه ها تست نمایید. سرویس Test Cloud شامل طیف وسیعی از دستگاه های مجازی موبایلی هست که با استفاده از ابزارهای جانبی کار تست برنامه ها را برای توسعه دهنده راحت می کند. این سرویس رایگان نمی باشد.

Xamarin University: شرکت زامارین دوره های آنلاین و ویدئوهای آفلاین آموزشی محصولات خود را در این بسته ارائه می دهد. استفاده از این بسته ها مستلزم پرداخت هزینه می باشد.

 

سید امیر حسین میرنیا