آموزش زامارین (Xamarin)

دسته بندی: دات نت (NET.)

آموزش زامارین

آنچه در این صفحه می خوانید:

معرفی زامارین (Xamarin)

امروزه با پیشرفت های تکنولوژی در حوزه موبایل از یک تلفن تقریبا برای هر کاری می توانیم استفاده کنیم. سهم عمده بازار تلفن به اندروید تعلق دارد. اگر شما یکی از توسعه دهندگان تلفن همراه هستید، با مهم ترین سوال مواجه می شوید که چطور می توانید برنامه خود را در پلتفرم متفاوتی طراحی کنید؟ یادگیری یک زبان جدید، API ها و چیزهای دیگر ممکن است کار خسته کننده ای باشد. اما زامارین می تواند به شما در ایجاد اپلیکیشن های تلفن همراه که تقریبا شبیه برنامه های نیتیو پلتفرم باشد، می تواند کمک کند.

شرکت نرم افزاری زامارین در کالیفرنیا/سانفرانسیسکو در سال ۲۰۱۱ توسط مهندسان پروژه مونو (Mono) و تحت مالکیت مایکروسافت تاسیس شد. شرکت مایکروسافت از StackOverFlow و Github زامارین پشتیبانی می کند. زامارین برای توسعه دهنده ها ابزارهایی فراهم می کند که می توانند به آنها در ساخت اپلیکیشن تلفن همراه چندسکویی کمک کند. اپلیکیشن ها می توانند تمام ویژگی های نیتیو را داشته باشند و همچنین همزمان یک codebase مشترک را نیز به اشتراک بگذارند. ابزارهای زامارین با ویژوال استودیو برای دانلود در دسترس هستند و شما می توانید به طور مستقیم برنامه های اندروید، iOS و ویندوز را از ویژوال استودیو خود ایجاد کنید. بیشتر کدها در سی شارپ نوشته شده است. بنابراین اگر دانش سی شارپ را دارا هستید، شما نیازی به یادگیری جاوا، Objective-C و یا Swift برای ساخت برنامه های خود ندارید. اگر شما یک مبتدی هستید، پس به جای فرایند یادگیری متعارف، مسیر Xamarin را در نظر بگیرید، که می تواند برنامه های بیشتری را برای چند سیستم عامل به شما آموزش دهد.

پس، زامارین یک ابزار برنامه‌نویسی چندسکویی است که با استفاده از سی شارپ می توان برای اندروید، iOS، ویندوزفون کدنویسی کرد. زبان #C به شما این امکان را می دهد که از یک Syntax و ویژگی های پیشرفته مانند Generics، لینک (LINQ) و کتابخانه Parallel Task استفاده کنید. ابزار IDE به ویژوال استودیو در مک و ویندوز اجازه می دهد تا شما بتوانید پروژه های Xamarin را ایجاد کنید. یکی از راه های ساخت رابط کاربر یا UI استفاده از Xamarin.forms است. Xamarin از دستگاه های wearable نیز پشتیبانی می کند. شما می توانید برنامه های نیتیو را برای Android Wear و Apple Watch نیز ایجاد کنید. فروشگاه کامپوننت Xamarin به شما امکان افزودن قابلیت های بیشتر به برنامه های خود را با دانلود پلاگین های ساده می دهد. شما همچنین می توانید روش های احراز هویت محبوب را اضافه کنید. همچنین افزونه هایی برای افزودن پشتیبانی از صورتحساب و سایر ویژگی ها نیز در دسترس هستند. بیشتر پلاگین های محبوب چندسکویی هستند اما پلاگین های خاص پلتفرم نیز وجود دارند، برای مثال، پلاگین پشتیبانی از پرداخت صورت حساب در Google Play.

تاریخچه زامارین (Xamarin)

در سال 1999 میگوئل دو ایکازا و نات فریدمن آنچه را که در نهایت به عنوان Ximian شناخته می شود را برای پشتیبانی و توسعه نرم افزار برای پروژه نوپا GNOME جدید Icaza راه اندازی کردند. بعد از اینکه مایکروسافت برای اولین بار فریمورک دات نت خود را در ژوئن سال 2000 اعلام کرد، Icaza تحقیق درباره امکان پذیر بودن نسخه لینوکس را آغاز کرد. پروژه اوپن سورسمونو در 19 ژوئیه سال 2001 به بهره برداری رسید. Ximian توسط نوول در 4 اوت 2003 خریداری شد، که پس از آن توسط Attachmate در آوریل 2011 خریداری شد.

تأسیس زامارین

در 16 مه 2011، میگوئل د ایكزا در وبلاگ خود اعلام كرد كه مونو توسط Xamarin، شركت تازه تاسیس كه قصد انتشار مجموعه جدیدی از محصولات تلفن همراه را دارد، پشتیبانی خواهد شد. به گفته Icaza، حداقل بخشی از تیم اصلی مونو به شرکت جدید منتقل شده بود. نام Xamarin از نام میمون تامارین گرفته شده است و جایگزین T اصلی با X می شود. این مطابق با نام نامگذاری شده از زمان شروع Ximian است. پس از اعلام Xamarin، آینده این پروژه مورد سؤال قرار گرفت، زیرا MonoTouch و Mono برای اندروید اکنون با پیشنهادات تجاری موجود متعلق به Attachmate در رقابت مستقیم هستند. در ژوئیه سال 2011، با این حال، نوول - که اکنون یک شرکت تابعه Attachmate است و Xamarin اعلام کرد که نول مجوز دائمی برای مونو، MonoTouch و Mono را برای اندروید به Xamarin اعطا کرده است، که به طور رسمی و قانونی مدیریت رسمی این پروژه را برعهده گرفت.

ویژگی های زامارین (Xamarin)

Xamarin تمام توانایی های نیتیو سیستم عامل را ترکیب می کند و تعدادی از ویژگی های قدرتمند خود را اضافه می کند، از جمله:

  • پیوند کامل با SDK های اساسی بیانگر این موضوع است که زامارین شامل تقاطعی برای تقریبا تمام SDK های اساسی پلتفرم در iOS و Android است. علاوه بر این، این اتصال ها به شدت تایپ می شوند، به این معنی که آنها به آسانی هدایت و استفاده می شوند و ارائه کنترل دقیق در کامپایل زمان اجرا و طول توسعه است. این هدایت منجر به کاهش خطاهای زمان اجرا و برنامه های با کیفیت بالاتر می شود.
  • زامارین رد و بدل اطلاعات با Objective-C، Java، Cو ++C را فراهم می کند. این ویژگی با استفاده از کتابخانه های Objective-C، جاوا، C و ++C به شما قدرت استفاده آرایه وسیعی از کد شخص ثالث که از قبل ساخته شده است را می دهد. علاوه بر این، زامارین اتصال پروژه ها را به یکدیگر فراهم می کند تا بتوانید به آسانی کتابخانه های نیتیو Objective-C و جاوا را با استفاده از یک دستورالعمل اعلام کنید.
  • برنامه های Xamarin در #C نوشته می شوند که یک زبان مدرن است. این ویژگی شامل پیشرفت قابل توجهی نسبت به Objective-C و جاوا می شود. این پیشرفت در پی ویژگی هایی از قبیل زبان پویا، ساختارهای تابعی مانند Lambdas، LINQ، ویژگی برنامه نویسی موازی پیشرفته و غیره اتفاق می افتد.
  • برنامه های کاربردی زامارین از NET BCL. مجموعه ای بزرگ از کلاس های دارای ویژگی های جامع و ساده مانند اکس ام ال (XML) قدرتمند، پایگاه داده، سریال سازی، IO، رشته و پشتیبانی شبکه و غیره استفاده می کنند. کد#C موجود را می توان برای استفاده در یک برنامه کامپایل کرد، که دسترسی به هزاران کتابخانه را فراهم می کند که به شما امکان انجام کارهایی را می دهد که در BCL پوشش داده نمی شود.
  • زامارین از ویژوال استودیو برای مک در macOS و ویژوال استودیو در ویندوز استفاده می کند. اینها هر دو IDE های مدرن هستند که شامل ویژگی هایی نظیر تکمیل خودکار کد، سیستم مدیریت پیشرفته پروژه و راه حل، یک کتابخانه قالب جامع پروژه، کنترل منبع یکپارچه و بسیاری موارد دیگر است.
  • زامارین پشتیبانی کامل چند سکویی برای سه سیستم عامل اصلی تلفن همراه iOS، Android و Windows را ارائه می دهد. اپلیکیشن های نوشته شده می توانند تا 90٪ از codebase خود را به اشتراک بگذارند. کتابخانه موبایل API یکپارچه را برای دسترسی به منابع مشترک در هر سه سیستم عامل ارائه می دهد. این ویژگی می تواند به طور قابل توجهی هزینه های توسعه و زمان عرضه به بازار را برای توسعه دهندگان تلفن همراه جهت هدف قرار دادن سه پلتفرم محبوب تلفن همراه را کاهش دهد.

چرا باید از زامارین استفاده کنیم؟

زمان کمتر برای یادگیری

تبدیل شدن به یک توسعه دهنده برنامه های کاربردی تلفن همراه همیشه شامل یک منحنی یادگیری است. مواردی مانند چرخه عمر فرآیند، UI، بستر SDK و غیره وجود دارد که باید آنها را بیاموزید. چرا یک یا چند زبان برنامه نویسی را به لیست طولانی مدت چیزهایی که باید یاد بگیرید اضافه کنید؟

اگر یک توسعه دهنده سی شارپ دات نت با تجربه هستید، بلافاصله در خانه مشغول کار با Xamarin خواهید بود. این برنامه اجرای کاملی از سی شارپ و اجرای فوق العاده کامل کتابخانه های کلاس دات نت را ارائه می دهد. برای بیش از 80 درصد از رایانه های شخصی یا سرورهای موجود، سی شارپ دات نت غیر معمول نیست که با Xamarin سازگار باشد (مسافت پیموده شده ممکن است متفاوت باشد).

حتی اگر شما یک توسعه دهنده سی شارپ نیستید، Xamarin احتمالاً مدت زمانی را که می خواهید برای یادگیری بگذرانید، کاهش خواهد داد. Android و iOS معمولاً نیاز به استفاده از دو محیط برنامه نویسی جداگانه دارند: به ترتیب Java و Objective-C. تعداد بسیار کمی از توسعه دهندگان در هر دو محیط بسیار ماهر هستند که بدان معنی است که اکثریت قریب به اتفاق توسعه دهندگان باید قبل از شروع یک پروژه cross-platform یک یا هر دو محیط را یاد بگیرند. یادگیری محیط های جاوا و آبجکتیو سی (Objective-C) فقط به زبان های برنامه نویسی محدود نمی شود. همچنین مسئله کلاس های اصلی زیربنایی مانند مجموعه ها و غیره وجود دارد که شما را مجبور می کند دو روش مختلف برای انجام همان کارها را درک کنید. با استفاده از Xamarin، شما فقط باید یک زبان، سی شارپ و یک کلاس اصلی را یاد بگیرید تا در هر دو سیستم عامل موثر باشد.

بدون محدودیت

یكی از جالبترین جنبه های زامارین این است كه سعی نمی كند در جائیكه وجود داشته باشد مشترکات را مجبور كنیم. هر دو سیستم عامل Android و iOS دارای ویژگی های UI و SDK هستند که از نظر ظاهری و رفتاری هر پلتفرم متمایز است.

برخی از ابزارهای توسعه برنامه cross-platform سعی در مخفی کردن منحصر به فرد بودن بسترهای نرم افزاری دارند که نتیجه آن باعث می شود برنامه ها نسبت به سکویی که در آن اجرا می شوند بیگانه باشند. زامارین درست برعکس عمل می کند و ویژگی های منحصر به فرد هر سیستم عامل را در بر می گیرد.

علاوه بر کلاس های استاندارد دات نت، Xamarin کلاس های دات نت مخصوص iOS و کلاس های NET مخصوص Android را نیز شامل می شود که هر یک از آنها ویژگی های منحصر به فرد سیستم عامل مربوطه را در معرض نمایش قرار می دهد. ترکیبی از کلاس های هسته دات نت با کلاس های خاص برای سیستم عامل اجازه می دهد تا برنامه ها با استفاده از ویژگی های منحصر به فرد هر پلتفرم، منطق اصلی را در iOS و Android به اشتراک بگذارند.

زمان سریعتر به بازار

Xamarin به ما امکان می دهد یکبار منطق برنامه را کدگذاری کنیم و سپس آن را در iOS و Android به اشتراک بگذاریم. این کار را با کار در محیط های نیتیو این دو سیستم عامل مقایسه کنید که منطق باید یک بار در جاوا برای اندروید اجرا شود سپس با همان منطق بار دوم در Objective-C برای iOS اجرا شود. به عبارت ساده تر، استفاده از محیط توسعه نیتیو هر پلتفرم نیازمند نوشتن کد بیشتر است. نوشتن کد بیشتر به زمان بیشتری نیاز دارد. با Xamarin ما قادر به تمرکز تلاش های خود در ساختن ویژگی های برنامه یک بار و سپس ارسال برنامه هستیم. این را با محیط های سیستم عامل نیتیو مقایسه کنید که در آن ویژگی های برنامه را یک بار برای یک پلتفرم ایجاد می کنیم، سپس آنها را دوباره برای سکوی دیگر می سازیم و سپس در نهایت ارسال می کنیم.

یک یادداشت سریع درباره موضوع زمان به بازار. Xamarin قطعاً زمان توسعه را کاهش می دهد اما من نمی خواهم این تصور را داشته باشم که زمان توسعه را به نصف کاهش می دهد. ما هنوز کدهایی را می نویسیم که برای هر پلتفرم بی نظیر است، مانند ایجاد UI یا تعامل با ویژگی های خاص پلتفرم.

باگ های کمتر

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

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

با Xamarin، کل تیم قادر به تمرکز کامل روی کار با سی شارپ دات نت است. این به مهارت های هر یک از اعضای تیم اجازه می دهد تا به طور کامل تری توسعه پیدا کند و تیم را به عنوان یک کل قادر می کند تا از یکدیگر پشتیبانی و بررسی بیشتری داشته باشند.

آمادگی برای آینده

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

در زامارین از چه زبانی استفاده می شود؟

زامارین وسی شارپ

سی شارپ یک زبان برنامه نویسی چند پارادایم چند منظوره است که شامل تایپ قوی، اعلامی، کاربردی، عمومی، شی گرا و از نظر لغوی محدود شده و همچنین از رشته های برنامه نویسی مبتنی بر کلاس و مؤلفه ها است. در سال 2000 توسط مایکروسافت به عنوان بخشی از ابتکار عمل دات نت توسعه داده شد و بعداً توسط ECMA و ISO به عنوان یک استاندارد بین المللی تصویب شد. Mono نام پروژه رایگان و اوپن سورس برای تهیه کامپایلر و ران تایم زبان است. سی شارپ یکی از زبان های برنامه نویسی است که برای زیرساخت زبان مشترک (CLI) طراحی شده است. سی شارپ توسط اندرس Hejlsberg طراحی شده است و تیم توسعه آن در حال حاضر توسط Mads Torgersen هدایت می شود. از آگوست 2019، نسخه 8.0 زبان در حال نمایش است و در ویژوال استودیو 2019 پشتیبانی می شود. سی شارپ یک زبان همه کاره است که توسط آن می توانید برنامه نویسی برنامه های ویندوز، برنامه های گوشی های هوشمند، برنامه نویسی سمت سرور، بازی سازی و غیره را انجام دهید.

با Xamarin، تمام برنامه شما با استفاده از #C از کد بک اند مانند منطق کسب و کار و دسترسی به داده ها گرفته تا دسترسی نیتیو API نوشته شده است. از آنجا که Xamarin .NET را گسترش می دهد، می توانید از اکوسیستم بزرگ بسته ها و کتابخانه ها در دسترس همه توسعه دهندگان دات نت (NET.) استفاده کنید. شما حتی می توانید کتابخانه های خود را که بین همه برنامه هایی که بر روی پلتفرم دات نت نوشته شده اند به اشتراک بگذارید.

  • شما برای ساختن یک راه حل درست مثل هر چیز دیگری به هر زبان دیگری نیاز دارید.
  • شما باید یاد بگیرید و بفهمید که ios، اندرویدی و اشکال چگونه کار می کند.
  • اگر می خواهید بک اند وب سرویس انجام دهید، باید زبان وب سرویس ها را بیاموزید.
  • اگر به یک پایگاه داده رابطه ای متصل می شوید، باید SQL را بدانید و درک کنید. اگر به یک پایگاه داده NoSQL وصل می شوید، باید زبان کوئری آن را بفهمید.
  • اگر در حال انجام گرافیک های سطح بالا از طریق تلفن، مانند یک بازی هستید، احتمالاً به درک اوپن جی ال (OpenGL) احتیاج دارید.

معماری زامارین (Xamarin)

آموزش کامل زامارین

نمودار بالا معماری کلی یک برنامه cross-platform Xamarin را نشان می دهد. Xamarin به شما امکان می دهد UI نیتیو را در هر پلتفرم ایجاد کنید و منطق کسب و کار را در سی شارپ بنویسید که در سیستم عامل ها مشترک است. در اکثر موارد، 80٪ کد برنامه با استفاده از Xamarin قابل مقایسه است. Xamarin در بالای Mono ساخته شده است، نسخه اوپن سورس فریمورک دات نت بر اساس استانداردهای NET ECMA. بنا شده است.مونو تقریباً تا زمانی که خود فریمورک دات نت وجود داشته باشد و در اکثر سیستم عامل ها از جمله لینوکس، یونیکس، FreeBSD و macOS اجرا می شود. محیط اجرای Mono بطور خودکار وظایفی از قبیل تخصیص حافظه، جمع آوری زباله و قابلیت همکاری با سیستم عامل های زیرین را بر عهده می گیرد.

Xamarin دو روش برای ساخت برنامه های کاربردی موبایل cross-platform دارد:

  • Xamarin Form: وقتی می خواهید یک بار برنامه خود را طراحی کنید و با برخی تغییرات جزئی کد، آن را در همه سیستم عامل ها به اشتراک بگذارید، می توانید از Xamarin.Forms استفاده کنید.
  • Xamarin Native: وقتی می خواهید برنامه های جداگانه ای را برای هر سیستم عامل با کمک کتابخانه های Xamarin.iOS،Xamarin.Android و Xamarin.Windows طراحی کنید، می توانید از Xamarin Native استفاده کنید.

تکنولوژی های زامارین (Xamarin)

آشنایی با Xamarin platform

شرکت Xamarin یک پلتفرم نرم افزاری اوپن با همین نام تولید کرد و در سال 2013 در Xamarin 2.0 منتشر شد. Xamarin پلتفرم توسعه دهنده NET. را با ابزار و کتابخانه بطور خاص برای ساخت برنامه هایی برای Android، iOS، tvOS، watchOS، macOS و ویندوز در درجه اول با #C در ویژوال استودیو و سایر برنامه ها گسترش می دهد. توسعه دهندگان می توانند دوباره از کد #C موجود خود استفاده کنند و کد قابل توجهی را در سیستم عامل های دستگاه به اشتراک بگذارند.

چندین شرکت مشهور از جمله 3M، AT&T و HP از این سیستم عامل برای ایجاد برنامه های خود استفاده کرده اند. Xamarin با ویژوال استودیو، IDE مایکروسافت برای NET Framework. ادغام می شود و متعاقباً برای استفاده کاربران macOS از طریق ویژوال استودیو برای مک در دسترس است. Xamarin همچنین یک فروشگاه کامپوننت را برای ادغام سیستم های بک اند، کتابخانه های شخص ثالث، سرویس های ابری و کنترل های UI به طور مستقیم در برنامه های تلفن همراه منتشر کرد.

آشنایی با Xamarin.forms

مشکل بزرگی در ایجاد برنامه های کاربردی برای همه سیستم عامل های مختلف این است که آنها متفاوت هستند. حفظ چندین مخزن کد برای انجام عمدتا یکسان، در بهترین حالت خسته کننده است و در بدترین حالت می تواند تبدیل به یک کابوس شود. توسعه مرسوم Xamarin.iOS، Xamarin.Android، و Xamarin.UWP همچنان نیاز دارد تا رابط کاربر به طور جداگانه از یکدیگر نوشته شود و این کار کوچکی نیست.

Xamarin.Forms یک جعبه ابزار کامل رابط کاربری UI برای توسعه دهندگان دات نت را نمایش می دهد. بطور کامل نیتیو اندروید، iOS و برنامه های یونیورسال ویندوز را با استفاده از #C در ویژوال استودیو بسازید. Xamarin.Forms صرفه جویی در زمان قابل توجهی را در این زمینه ارائه می دهد.

آشنایی با Xamarin.iOS

آشنایی با Xamarin.iOS

SDK ها به ما اجازه می دهند برنامه های نیتیو iOS، tvOS، watchOS و macOS را با استفاده از کنترل های UI مثل Objective-C و ایکس کد با ویژگی انعطاف پذیری و ظرافت زبان مدرن #C، قدرت دات نت و کتابخانه کلاس پایه (BCL) و دو IDE دسته اول، ویژوال استودیو برای مک و ویژوال استودیو که در نوک انگشتان ما وجود دارد ایجاد کنیم. اگر شما توسعه دهنده NET. هستید و قصد دارید یک برنامه iOS ایجاد کنید می توانید از Xamarin.iOS استفاده کنید و از ویژگی های سخت افزاری و نرم افزاری ارائه شده توسط اپل استفاده کنید. اولین گام در تبدیل شدن به یک توسعه دهنده Xamarin.iOS گرفتن یک برنامه کاربردی و اجرای آن است. Xamarin به شما اجازه می دهد تا برنامه هایی بنویسید که می توانند به طور کامل از قدرت، ویژگی ها و عملکرد هر پلتفرم بهره ببرند. Xamarin.iOS یکی از فریمورک های Xamarin است که برای ایجاد برنامه های نیتیو iOS با استفاده از #C در ویژوال استودیو مورد استفاده قرار می گیرد. اپل قوانین سختی را در مورد ساخت برنامه ها مطرح میکند. برای مثال، شما باید از Mac استفاده کنید و Xcode را اجرا کنید تا برنامه های خود را ایجاد کنید. Xcode محیط توسعه یکپارچه (IDE) برای macOS است که توسط اپل توسعه و نگهداری شده است. همچنین شامل مجموعه ای از برنامه های مورد استفاده برای توسعه نرم افزار برای macOS،iOS،watchOS و tvOS است. شما برنامه های خود را با ابزارهایی که با Xcode IDE می آیند ایجاد و توزیع می کنید.

Xamarin.iOS همچنین از ابزار Xcode برای ایجاد پکیج نهایی باینری و توزیع برای برنامه های iOS استفاده می کند. این الزام به این معنی است که شما نیاز به Mac دارید که MacOS و Xcode را اجرا می کند تا کامپایل نهایی و استقرار یک برنامه Xamarin.iOS را تکمیل کند. قبل از توزیع باید برنامه خود را برای آزمایش به یک دستگاه iOS بفرستید.

Xamarin.iOS (که قبلاً MonoTouch نام داشت) یک کتابخانه اختصاصی است که به توسعه دهندگان امکان می دهد برنامه های مبتنی بر #C و .NET را ایجاد کنند که بر روی دستگاه های iPhone، iPod و iPad اجرا شوند. این اساس بر اساس فریمورک مونو است و در رابطه با نول توسعه یافته است. بر خلاف برنامه های Mono، "Xamarin.iOS" برنامه ها به کد دستگاهی که به طور خاص در آیفون و آی پد اپل هدف قرار داده شده است، وارد شده اند. این امر ضروری است زیرا هسته iOS مانع از اجرای کامپایلرهای هم زمان بر روی دستگاه می شود.

پشته Xamarin.iOS از:

  • کامپایلرها
    • #C از پروژه Mono
    • کامپایلرهای شخص ثالث مانند OxOgene RemObject می توانند Xamarin.iOS را نیز هدف قرار دهند
  • کتابخانه های هسته .NET
  • توسعه SDK:
    • Linker - برای بسته بندی فقط کد مورد استفاده در برنامه نهایی استفاده می شود
    • mtouch - کامپایلر نیتیو و ابزاری که برای اعزام به دستگاه مورد نظر استفاده می شود
    • ابزار ادغام سازنده رابط
  • کتابخانه هایی که API های محلی CocoaTouch را پیوند می دهند
  • Xamarin Studio IDE

استودیوی Xamarin به عنوان IDE اصلی مورد استفاده قرار می گیرد، اما لینک های اضافی برای Xcode و شبیه ساز iOS نوشته شده است. از آوریل تا اوایل سپتامبر 2010، آینده MonoTouch مورد تردید قرار گرفت زیرا اپل اصطلاحات جدیدی را برای توسعه دهندگان آیفون وضع کرد که ظاهراً آنها را از توسعه زبان های دیگری غیر از C++، C و Objective-C و استفاده از لایه میانی بین سیستم عامل iOS و برنامه های iPhone.

آشنایی با Xamarin.Mac

Xamarin.Mac به عنوان ابزاری برای توسعه نرم افزار فناوری اپل با استفاده از زبان برنامه نویسی C # ایجاد شده است. Xamarin.Mac، مانند Xamarin.iOS و Xamarin. Android، حداکثر 90٪ استفاده مجدد از کد را در سراسر Android، iOS و Windows به برنامه نویسان می دهد. Xamarin.Mac به توسعه دهندگان C # امکان ساخت برنامه های کاملاً نیتیو Cocoa برای macOS را می دهد و برنامه های نیتیو را که می توان در فروشگاه App Mac قرار داد، امکان پذیر می کند.

آشنایی با Xamarin.android

اگر شما علاقه مند هستید از مهارت های توسعه NET. خود برای ایجاد یک برنامه Android استفاده کنید که از ویژگی های سخت افزاری و نرم افزاری ارائه شده توسط دستگاه های تلفن همراه Android بهره می گیرد، یادگیری Xamarin.android را شروع کنید. اولین گام در تبدیل شدن به یک توسعه دهنده Xamarin.android گرفتن برنامه و اجرای آن است. با استفاده از ابزار های ویژوال استودیو برای زامارین برنامه های زیادی را برای بسیاری از سیستم عامل ها ایجاد کنید.

Xamarin.Android یک فریمورک زامارین است که با استفاده از #C در ویژوال استودیو برای ایجاد برنامه های نیتیو اندروید مورد استفاده قرار می گیرد. برنامه ایجاد شده با Xamarin.Android یک برنامه نیتیو اندروید است که با استفاده از ابزار و کتابخانه های Xamarin ساخته شده است. برنامه های جاوا اندروید برای تقریبا همه موارد دسترسی به کتابخانه ها را دارد. این دسترسی به این معنی است که شما می توانید برنامه های خود را سریع تر توسعه دهید. کتابخانه ها نیز به عنوان یک توسعه دهنده Xamarin.Android قابل دسترسی هستند. فرض کنید شما می خواهید به یک لوازم جانبی بلوتوث دسترسی داشته باشید که میزان ضربان قلب کاربر را کنترل می کند. چنین لوازم جانبی به طور معمول به SDK فرستاده می شود که می توانید در برنامه های اندرویدی مبتنی بر جاوا خود استفاده کنید. شما می توانید فایل های Java .jar موجود را به برنامه Xamarin.Android خود اضافه کنید. برای ترکیب کتابخانه ها، می توانید از موارد زیر استفاده کنید:

  • رابط نیتیو جاوا (JNI)
  • کتابخانه اتصال جاوا

تصمیم گیری بین دو تکنیک، موضوع ترجیحی شخصی است.

Xamarin.Android (که قبلاً با نام مونو برای اندروید شناخته می شد)، که ابتدا توسط Novell ساخته شد و توسط Xamarin ادامه یافت، یک اجرای اختصاصی Mono برای تلفن های هوشمند مبتنی بر Android است. اولین بار در تاریخ 6 آوریل 2011 منتشر شد. مونو برای اندروید ساخته شده است تا به توسعه دهندگان اجازه دهد برنامه های ساده تر روی همه سیستم عامل های تلفن همراه را بنویسند. میگوئل دی ایكزا در مصاحبه با H-Online اظهار داشت: "چشم انداز ما این است كه به توسعه دهندگان اجازه دهیم كه از موتور و كد منطق كسب و كار خود در كلیه سیستم عامل های تلفن همراه استفاده كنند و كد رابط كاربر را برای یك API مخصوص سیستم عامل تغییر دهند."

پشته Xamarin.Android از اجزای زیر تشکیل شده است:

  • ران تایم مونو
  • یک طراح UI اندرویدی
  • کتابخانه ها:
    • کتابخانه های کلاس هسته دات نت
    • کتابخانه هایی که API های محلی Android / Java را به هم متصل می کنند.
  • ابزارهای SDK برای بسته بندی، استقرار و اشکال زدایی
  • ادغام استودیو Xamarin و Visual Studio 2010 برای طراحی UI، رفع اشکال از راه دور و استقرار.

زامارین استودیو

Xamarin Studio به توسعه دهندگان اجازه می دهد تا به سرعت برنامه های دسکتاپ و وب را در iOS، Android، Windows، Linux و Mac بنویسند. برنامه های Xamarin با کنترل های رابط کاربری نیتیو و استاندارد ساخته شده اند. برنامه ها نه تنها به روشی که کاربر نهایی انتظار دارد، نگاه می کنند، بلکه به همین ترتیب رفتار می کنند.

می توانید UI برنامه را با استفاده از کنترل های drag nad drop طراحی کنید. دیزاینر ویژوال یکپارچه Xamarin.Forms به شما امکان می دهد با استفاده از 100٪ #C مشترک، رابط های کاربری نیتیو برای iOS، Android و Windows Phone ایجاد کنید. Xamarin.Forms شامل بیش از 40 کنترل و چیدمان است که در زمان اجرا به کنترل های نیتیو نقشه برداری می شوند. بسته نرم افزاری استودیو Xamarin شامل MonoDevel به همراه پلاگین های Xamarin iOS / Android و مارک تجاری است.

زامارین برای ویژوال استودیو

ویژوال استودیو مجموعه کاملی از ابزارهای توسعه برای ساخت برنامه های کاربردی وبASP.NET، خدمات وب XML، برنامه های کاربردی دسکتاپ و برنامه های کاربردی تلفن همراه است. Xamarin یک پلتفرم توسعه دهنده NET. است که از ابزارها، زبان های برنامه نویسی و کتابخانه ها برای ساختن انواع مختلف برنامه ها ساخته شده است. Xamarin افزودنی های مورد نیاز مایکروسافت ویژوال استودیو را فراهم می کند که به توسعه دهندگان امکان می دهد برنامه های Android، iOS و Windows را در IDE با استفاده از تکمیل کد و IntelliSense بسازند. Xamarin برای ویژوال استودیو همچنین دارای پسوندهایی است که پشتیبانی از ساختمان، استقرار و اشکال زدایی برنامه ها در یک شبیه ساز یا دستگاه را پشتیبانی می کند. در اواخر سال 2013، Xamarin و مایکروسافت مشارکت خود را اعلام کردند که شامل یکپارچگی فنی بیشتر و برنامه های مشتری می شود تا بتوانند پایه های توسعه دهنده مشترک خود را برای همه سیستم عامل های تلفن همراه ایجاد کنند. علاوه بر این، Xamarin اکنون شامل پشتیبانی از کتابخانه های کلاس قابل حمل مایکروسافت و بیشتر ویژگی های #C 5.0 مانند async / await است. مدیر عامل و بنیانگذار شرکت زامارین، نات فریدمن، از اتحاد در راه اندازی ویژوال استودیو 2013 در نیویورک خبر داد.

در تاریخ 31 مارس 2016، مایکروسافت اعلام کرد که همه نرم افزارهای زامارین را با هر نسخه از Microsoft Visual Studio از جمله Visual Studio Community، در حال ادغام هستند و این ویژگی های مختلف Xamarin را اضافه کرده است.


مقایسه زامارین و فلاتر و ری اکت نیتیو

مقایسه زامارین و فلاتر و ری اکت نیتیو

فلاتر (Flutter)

فلاتر (Flutter) یک فریمورک توسعه برنامه کاربردی تلفن همراه اوپن سورس است که توسط گوگل در سال 2017 ساخته شده است. این جدیدترین فریمورک از این سه تکنولوژی است و یکی از محبوب ترین فریمورک ها در بین توسعه فرانت اند است.

مزایای فلاتر

برخی از دلایلی که Flutter در حال حاضر یکی از محبوب ترین فریمورک های کراس پلتفرم است شامل موارد زیر است:

  • اکوسیستم کامل توسعه: فلاتر API ها، ابزارک های از پیش ساخته، ابزار CLI و تقریبا تمام ابزارهای مورد نیاز برای توسعه برنامه تلفن همراه متقابل را ارائه می دهد.
  • قابل تنظیم: در حالی که کتابخانه گسترده ای از ابزارک های از پیش ساخته را ارائه می دهد، می توانید موارد دلخواه خود را نیز ایجاد کرده یا از قبل موجود را سفارشی کنید.
  • قابلیت اطمینان: توسط Google طراحی و پشتیبانی شده است
  • بارگذاری مجدد Hot reload: به برنامه نویسان اجازه می دهد تا با اجرای سریعتر کد، اشکالات را برطرف کنند.
  • رایگان: پلتفرم اوپن سورس

معایب فلاتر

فلاتر چالش های زیادی را ایجاد می کند، به خصوص اینکه یک فریمورک جدید باشد، از جمله:

  • اندازه برنامه های بزرگ: برنامه های Flutter در مقایسه با فریمورک های دیگر که می توانند برنامه نویسان را مجبور کنند تعداد کتابخانه ها و بسته های مورد استفاده را کاهش دهند، فشرده سازی تصاویر و حتی از استفاده از انیمیشن در کل به نفع کاهش اندازه برنامه خود، مجبور شوند بسیار بزرگ باشند.
  • API های نیتیو: Flutter بسیاری از API های نیتیو را برای استفاده شما در معرض نمایش قرار نمی دهد. به همین دلیل، برای بسیاری از اهداف، به بسته های شخص ثالث نیاز خواهید داشت. این همچنین بدان معنی است که شما مجبور خواهید بود به اکوسیستم وابسته باشید.

با این وجود، همیشه می توانید کد نیتیو خود را بنویسید که به ویژگی مورد نیاز دسترسی پیدا کند، و Flutter به شما پلی می دهد تا بتوانید از آن ویژگی در داخل کد Dart استفاده کنید.

ری اکت نیتیو (React Native)

React Native یک فریمورک توسعه برنامه تلفن همراه با اوپن سورس و متقاطع است که توسط Facebook در سال 2015 ایجاد شده است.

این برنامه کاربران را قادر می سازد از JavaScript و React به همراه قابلیت های بسترهای نرم افزاری نیتیو برای ساخت برنامه های موبایل استفاده کنند.

مزایای ری اکت نیتیو

برخی از جوانب مثبت React Native شامل موارد زیر است:

  • رابط کاربری: اجزای UI نیتیو را پیاده سازی می کند، به برنامه ها این امکان را می دهد که مانند برنامه های نیتیو به نظر برسند، و بنابراین یک رابط کاربری با کیفیت بالا ارائه می دهند.
  • مؤلفه های آماده: کتابخانه گسترده ای از مؤلفه های UI را ارائه می دهد و زمان توسعه سریع تری را فراهم می کند.
  • دسترسی به ویژگی های نیتیو: مانند دوربین، شتاب سنج و غیره.
  • کد ویژه بسترهای نرم افزاری: به شما امکان می دهد تا با استفاده از کد نیتیو، برنامه های نیتیو جداگانه خود را بهینه سازی کنید.
  • بارگذاری مجدد Hot reload: به برنامه نویسان اجازه می دهد بلافاصله بدون نیاز به جبران مجدد برنامه ها، تغییرات را روی برنامه ها اعمال کنند.
  • قابلیت اطمینان: توسط فیس بوک طراحی و پشتیبانی شده است.

معایب ری اکت نیتیو

متأسفانه، React Native هنوز مشکلات خود را دارد، از جمله:

  • پیمایش: ناوبری ساخته شده در React Native یکپارچه و قابل مقایسه با ناوبری نیتیو نیست.
  • Complex UI: React Native با ساخت انیمیشن های پیچیده و انتقال، تلاش می کند.

زامارین (Xamarin)

Xamarin یک فریمورک توسعه برنامه تلفن همراه با کد اوپن سورس است که در سال 2011 تاسیس شد و آن را به قدیمی ترین این سه مورد تبدیل کرد.

مزایای زامارین

Xamarin جوانب مثبت توسعه برنامه تلفن همراه برنامه های کاربردی عبارتند از:

  • عملکرد: برنامه های Xamarin به دلیل سطح عملکرد تقریباً شبیه نیتیو شناخته شده اند.
  • تجربه کاربری یکپارچه: Xamarin.Forms به شما امکان می دهد با تهیه یک کتابخانه قالب، از عناصر رابط استاندارد استفاده کنید تا بتوانید از کد خود در سیستم عامل های مختلف استفاده مجدد کنید. در صورت نیاز می توانید از Xamarin.iOS و Xamarin.Android نیز برای شخصی سازی دستی استفاده کنید.
  • رایگان: برای تیم های کوچک.

معایب زامارین

با این حال، به عنوان هر فریمورک توسعه بین کراس پلت فرم، Xamarin اشکالاتی نیز دارد، از جمله:

  • تأخیر به روزرسانی ها: هر وقت ویژگی ها یا به روزرسانی های جدید پلتفرم از بین می روند، معمولاً تأخیر وجود دارد تا اینکه این تغییرات در ابزارهای Xamarin منعکس شود و این ممکن است باعث ایجاد مشکل در برنامه شما شود.
  • اندازه برنامه های بزرگ: برنامه های Xamarin می توانند حدود 5 مگابایت برای نسخه ها و 20 مگابایت را برای ایجاد اشکال زدایی اضافه کنند، و آنها را از برنامه های نیتیو بزرگتر می کند. این امر در درجه اول به دلیل كتابخانه هایی است كه برای انتقال تماس های C # به تماس های نیتیو استفاده می شود.
  • گرافیک سنگین: Xamarin برای برنامه هایی با UI ساده بسیار عالی است. با این وجود، ساخت برنامه های پیچیده یا بازی های موبایل با Xamarin ممکن است بهترین کاری نباشد زیرا مجبور خواهید بود زمان زیادی را برای نوشتن کد اختصاصی پلتفرم صرف کنید، که هدف از استفاده از آن را خراب می کند.
  • کد ویژه بسترهای نرم افزاری: ممکن است لازم باشد برخی قسمت های UI را در برنامه خود با کد نیتیو دوباره بنویسید. این بدان معناست که به زبان های برنامه نویسی نیتیو مانند Kotlin یا Java برای Android و Swift یا Objective-C برای iOS به برخی دانش نیاز خواهید داشت.
آیا این نوشته را دوست داشتید؟
pluralsight-xamarin-forms-the-big-picture

آموزش The Big Picture :Xamarin Forms


Xamarin.Forms به توسعه دهندگان NET. کمک می کند به وسیله توسعه فریمورک Xamarin به سرعت رابط های کاربری ایجاد کنند. در این دوره، شما دانش بنیادین Xamari...

1399/07/18 275 بازدید
pluralsight-working-with-local-data-in-xamarin-forms

کار با داده های محلی در Xamarin.Forms


در این دوره، شما نحوه استفاده از آپشن های مختلف local data storage برای بهبود عملکرد و انعطاف پذیری اپلیکیشن را فرا خواهید گرفت. شما آپشن های مختلف st...

1399/06/31 248 بازدید زیرنویس دارد
pluralsight-data-binding-in-xamarin-forms

آموزش دیتا بایندینگ در Xamarin.Forms


شما در این دوره، همه چیزهای موجود در مورد دیتا بایندینگ در Xamarin.Forms، که به ما امکان می دهند داده ها در نمای داده ها را به مدل پیوند دهیم، یاد خوا...

1399/06/20 377 بازدید
linkedin-building-serverless-xamarin-apps-with-azure-2

آموزش ساخت اپلیکیشن های زامارین Serverless با Azure


با Xamarin.Forms، نوشتن اپلیکیشن های بومی و متقابل پلتفرم بر اساس اکوسیستم .NET ساده تر است. در این دوره یاد می گیرید که چگونه برای پشتیبانی از اپلیکی...

1399/01/19 941 بازدید
linkedin-xamarin-forms-essential-training

آموزش اصولی Xamarin Forms


این دوره، به شما در درک عملی Xamarin.Forms، از نحوه ساخت یک برنامه زامارین استفاده می کند که در آن از Xamarin.Forms برای UI استفاده می شود. او از مدل ...

1399/01/16 2048 بازدید زیرنویس دارد
codewithmosh-xamarin-forms-build-native-mobile-apps-with-c-sharp

دوره ساخت اپلیکیشن های موبایل نیتیو با سی شارپ و زامارین - Code With Mosh


این دوره، به صورت گام به گام به شما آموزش می دهد که چگونه با استفاده از Xamarin Forms و #C، اپلیکیشن های نیتیو موبایل را برای اندروید، iOS و ویندوز بس...

1399/01/14 2302 بازدید
skillshare-xamarin-code-once-on-c-build-android-and-ios-apps

آموزش زامارین - کدنویسی با سی شارپ - ساخت اپلیکیشن اندروید و iOS


در این دوره با مبانی ساخت اپلیکیشن های اندروید و iOS با زامارین آشنا می شوید. در این دوره با مبانی زامارین، برنامه نویسی با سی شارپ، ساخت اپلیکیشن های...

1398/08/01 5716 بازدید
linkedin-rapid-application-development-with-xamarin-and-azure-app-service

توسع سریع اپلیکیشن با زامارین (Xamarin) و App Service آژور


در این دوره با مزایای استفاده از زامارین و App Service آژور از جمله پیام رسانی پیشرفته با استفاده از Easy Tables زامارین و Azure Storage، احراز هویت و...

1398/07/25 1477 بازدید زیرنویس دارد
pluralsight-integrating-google-maps-into-xamarin-forms-apps

یکپارچه سازی گوگل مپ در برنامه‌های Xamarin.Forms


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

1398/06/09 1292 بازدید
xamarin-forms-tutorial-build-native-mobile-apps-with-c-mosh

آموزش Xamarin Forms: ساخت اپلیکیشن موبایل نیتیو با سی شارپ


در این ویدئو با نحوه ساخت اپلیکیشن موبایل نیتیو با سی شارپ و Xamarin Forms آشنا می شوید. آموزش ها از ابتدا، سرگرم کننده، گام به گام و عملی است....

1398/03/03 3754 بازدید زیرنویس دارد
linkedin-building-serverless-xamarin-apps-with-azure

ساخت اپلیکیشن های بدون سرور با زامارین و Azure


در این دوره، نحوه استفاده از یک معماری بدون نیاز به سرور برای پشتیبانی از برنامه های تلفن همراه Xamarin را می آموزید. مدرس نشان می دهد که چطور اولین ب...

1398/01/08 2172 بازدید
pluralsight-building-cross-platform-mobile-apps-with-c-xamarin-and-azure

ساخت اپلیکیشن های موبایل چندسکویی با سی شارپ، زامارین و Azure


این دوره شما را با راه اندازی و تست NET Azure Mobile Service backend. و ایجاد چندین کلاینت با استفاده از Xamarin و Xamarin.Forms آشنا می کند. علاوه بر...

1397/09/22 7261 بازدید
teamtreehouse-introduction-to-xamarin-course

آموزش توسعه اپلیکیشن های موبایل با زامارین


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

1397/05/13 3075 بازدید
آموزش-ساخت-اپلیکیشن-google-glass-با-c-و-xamarin

آموزش ساخت اپلیکیشن Google Glass با #C و Xamarin


Google Glass عینک هوشمند شرکت گوگل است که با قابلیت های فوق العاده ای که دارد تحول بزرگی در تکنولوژی بشری به وجود آورده است. یکی از ویژگی های گوگل گل...

1397/04/09 4555 بازدید
lynda-choosing-a-cross-platform-development-tool-cordova-ionic-react-native-titanium-and-xamarin

آموزش انتخاب ابزار توسعه چندسکویی - Cordova، Ionic، React Native، Titanium و Xamarin


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

1397/04/05 4115 بازدید زیرنویس دارد
lynda-visual-studio-app-center-for-developers

آموزش Visual Studio App Center برای برنامه نویسان


Visual Studio App Center، ابزارهای متعددی را که توسط برنامه نویسان تلفن همراه برای تست، استقرار، توزیع، گزارش و تجزیه و تحلیل استفاده می شود را در یک ...

1397/02/21 1929 بازدید زیرنویس دارد
wintellectnow-introduction-to-xamarin-forms

آشنایی با Xamarin Forms


Xamarin.Forms به شما امکان می دهد اپلیکیشن های موبایل چندسکویی را که در iOS، Android و Windows Phone اجرا می شوند را با منطق کسب و کار در سی شارپ و UI...

1397/01/29 2617 بازدید
wintellectnow-views-and-controls-in-xamarin-android

آموزش Views و Controls در Xamarin.Android


برای ساخت رابط های کاربری برای دستگاه های اندروید، شما باید درباره Views و Controls که می توانید در آن Views میزبانی کنید، بدانید. در این دوره با view...

1397/01/23 1785 بازدید
wintellectnow-dynamic-layout-management-in-xamarin-android

آموزش مدیریت طرح بندی پویا در Xamarin.Android


container طرح بندی در اندروید تغییرسایز و جریان محتوا را براساس فضای موجود انجام می دهد. در این دوره نحوه ایجاد طرح بندی های جایگزین، به طوری که رابط ...

1397/01/06 1358 بازدید
wintellectnow-managing-layout-in-xamarin-ios

آموزش مدیریت طرح بندی در Xamarin.iOS


اکثر اپلیکیشن ها می خواهند بر روی تمام تغییرات دستگاه های iOS اجرا شوند و در هر جهت ممکن عالی به نظر برسند. در این دوره با  ویژگی های iOS و Xamarin، ب...

1397/01/03 981 بازدید