اصطلاحات دنیای زامارین

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

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: شرکت زامارین دوره های آنلاین و ویدئوهای آفلاین آموزشی محصولات خود را در این بسته ارائه می دهد. استفاده از این بسته ها مستلزم پرداخت هزینه می باشد.

 

16 دیدگاه برای “اصطلاحات دنیای زامارین”

  1. سلام و خسته نباشید. من برنامه نویس سی شارپ هستم و الان چند سالی دارم برنامه نویسی می کنم و شغل بنده نمایندگی بیمه هست. من می خواستم برای مشتریانم یه اپ بنویسم که بنونن همه اطلاعات (سررسید بیمه-استعلام قیمت و … ) رو از طریق این اپ انجام بدن. بعد از کلی تحقیق بلاخره احساس کردم که زامارین به درد من میخوره. اولا می خواستم بدونم که مسیر درست انتخاب کردم و باید از زامارین استفاده کنم؟
    دوم اینکه آموزش ویدیوئی زامارین رو به صورت کامل (۰ تا ۱۰۰) هم برا ios و هم برا آندروید از کجا می تونم بدست بیارم و بخرم؟
    سوم اینکه آیا برای زامارین حتما باید visual stadio 2015 استفاده کنم و یا اینکه نه ۲۰۱۳ هم ساپورت می کنه؟

    1. بستگی داره برنامه نویسی به زبان #C کار کرده باشی و با محیط ویژوال استودیو آشنایی داشته باشی و یکی از مزیت های زامارین اینه که میشه برنامه نویسی کراس پلتفرم انجام داد. البته یه سری محدودیت ها داره چون برای IOS باید طراحی رو روی سیستم عامل مک انجام بدی و کد رو توی ویژوال استودیو بنویسی.

      اگه هدفت فقط اندروید باشه و با زبان جاوا کار کرده باشی بهترین گزینه برات android studio هست

      1. دوست عزیز، دانش فنی تون رو بالا ببرید و بعد به سوالات دوستان پاسخ بدید.
        برای طراحی IOS در زامارین نیاز نیست روی مک طراحی کنید. صرفا عملیات کامپایل نهایی روی مک مجازی انجام میشه. البته این کار در پشت صحنه توسط زامارین انجام میشه و شما اصلا نیاز نیست روی مک کاری انجام بدید.

  2. جالبه مهندس شما ۹ سال سابقه برنامه نویسی با انواع تکنولوژی های مایکروسافتی داری اون وقت نمیتونی برای خودت یه وبسایت با asp.net بنوسی؟

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

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

  3. سلام
    آیا این موضوع درسته که نوشتن برنامه با xamarin دارای overhead زیادیه ؟
    چندتا sample خارجی دیدم که کل برنامرو روی یک نوار نشون داده بود که ۲٫۵ سوم ازین نوار حجم چیزای بیهوده بود و ۰٫۵ سوم اون hello word بود

    نظرتون ؟

    1. خیر. درست نیست. برنامه های خروجی نهایی زامارین با ابزار assembly linking کم حجم شده و کدهای اضافی حذف می شوند

    1. مقداری حجم اضافی دارد، ولی اونقدر کم هست که برای خیلی از برنامه های تجاری میشه ندید گرفت. مثلا یه برنامه اتوماسیون چه فرقی داره که حجمش ۱۲ مگ باشه یا ۱۵ مگ؟ اما این خیلی مهمه که بشه مولتی پلتفرم نوشت و به جای ۶ ماه در ۲ ماه تحویل داد

  4. سلام
    من تا حالا فقط در حد درسای دانشگاه برنامه نویسی کردم، بیشتر هم با c++
    میخام ان شاءالله وارد اندروید نویسی بشم که البته ظاهرا زامارین بهتره
    حالا اول اینکه میتونم با رفتن دوره های آموزشی و دیدن فیلم های آموزشی وارد بازار کار بشم؟ یا نه، حتما باید چندین ماه برم با نرم افزارای دیگه مثه c# کار کنم تا تازه بتونم وارد این مسیر بشم؟
    دوم اینکه خبر دارین توی مشهد کجا آموزش زامارین انجام میدن؟

  5. سلام وقت خوش
    میخواستم بدانم
    دربرنامه ی زاماراین اندروید
    اگر بخواهیم از طریق wifi به پوشه share شده در ویندوز دسترسی پیدا کنیم و تصاویر را از این پوشه فراخوانی کنیم به چه کار باید کرد
    لطفا جواب را برایم ایمیل کنید
    با سپاس فراوان

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *