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

دسته بندی: دات نت

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

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

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

امروزه با پیشرفت های تکنولوژی در حوزه موبایل از یک تلفن برای تقریبا می توانیم هر کاری استفاده کنیم. سهم عمده بازار تلفن به اندروید Google بعد iOS اپل و سپس ویندوز مایکروسافت تعلق دارد. اگر شما یکی از توسعه دهندگان تلفن همراه هستید، با مهم ترین سوال مواجه می شوید که کجا می خواهید برنامه خود را در پلتفرم متفاوتی طراحی کنید؟ اما یادگیری یک زبان جدید، 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 هستند که از نظر ظاهری و رفتاری هر پلتفرم متمایز است. این ویژگی ها برای برنامه های iOS بسیار مهم است و مانند برنامه های iOS و Android مانند Android احساس می کنند.

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

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

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

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

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

باگ های کمتر

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

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

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

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

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

معماری زامارین (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.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.android

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

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

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

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

آیا این نوشته را دوست داشتید؟