آموزش زامارین
Xamarin چیست؟
آموزش زامارین
Xamarine یک پلتفرم open-source برای ساخت اپلیکیشن های مدرن و با قابلیت اجرایی بالا برای ios، اندروید و ویندوز با استفاده از .NET میباشد. Xamarin یک لایه انتزاعی است که ارتباط کد به اشتراک گذاشته شده با کد های اساسی پلتفورم را مدیریت می کند.
آموزش Xamarin : با استفاده از Xamarin ، توسعه دهندگان میتوانند حدود ۹۰ درصد اپلیکیشن خود را در پلتفورم ها به اشتراک بگذارند. این الگو به توسعه دهندگان اجازه میدهد که تمام منطق حرفه ای خود را به یک زبان بنویسند( یا از کد های اپلیکیشن های موجود استفاده کنند.) اما اجرا، ظاهر و احساس native را در پلتفورم ایجاد کنند.
اپلیکیشن های Xamarin میتوانند در PC یا Mac نوشته شوند و با کامپایل به یک پکیج native application تبدیل شوند؛ مانند یک فایل .apk برای اندروید یا یک فایل .ipa برای ios.
در حال حاضر برای توسعه و کامپایل یک اپلیکیشن ios نیاز به یک دستگاه MacOS داریم. برای اطلاعات بیشتر در زمینه ی نیازمندی های توسعه system requirements را مطالعه کنید.
Xamarin برای چه کسانی است؟
آموزش Xamarin
Xamarin برای توسعه دهندگانی است که اهداف زیر را دنبال میکنند:
- به اشتراک گذاشتن کد، تست و منطق حرفه ای در پلتفرم های مختلف.
- نوشتن اپلیکیشن های cross-platform با C# در Visual Studio .
Xamarin چگونه کارمیکند؟
نمودار بالا معماری کلی یک اپلیکیشن cross-platform در Xamarin را نشان میدهد. با Xamarin ما میتوانیم بر روی هر پلتفورم native UI ایجاد کرده و منطق حرفه ای نوشته شده با C# خود را در پلتفرم های مختلف به اشتراک بگذاریم. عموما ۸۰ درصد کد اپلیکیشن با Xamarin قابل اشتراک گذاری است.
Xamarin با استفاده از Mono ساخته شده که یک ورژن open-source از فرم وورک .NET بر اساس استاندارد .NET ECMA میباشد. Mono تقریبا هم زمان با فرم وورک .NET ساخته شده است و بر روی اکثر پلتفورم ها مانند؛ Linux، Unix، FreeBSD و macOS اجرا می شود. محیط اجرایی Mono کار هایی مانند تخصیص حافظه، جمع آوری زباله ها و همکاری با پلتفرم های اساسی را، به طور خودکار مدیریت میکند.
برای اطلاعات بیشتر درباره معماری خاص پلتفورم میتوانیدXamarin.Androidو Xamarin.iOS را مطالعه کنید.
اضافه کردن امکانات(features)
Xamarin امکانات پلتفورم های native را ترکیب کرده و امکاناتی هم به آنها افزوده است:
- ۱.کامل کردن binding ها برای SDK های اساسی. Xamarin شامل binding های تقریبا تمامی SDK های اساسی پلتفورم ها در android و ios میباشد. علاوه بر این، این binding ها strongly-typed هستند، پس میتوان به راحتی از آنها استفاده کرد و همچنین میتوان در زمان کامپایل و توسعه با دقت زیاد به بررسی type آنها پردخت. Strongly-typed بودن این binding ها باعث میشود که خطا های زمان اجرا کمتری داشته باشند و اپلیکیشن هایی با کیفیت بهتر تولید کنند.
- ۲.استفاده از objective-C، Java،C و C++. Xamarin این امکان را به ما میدهد که از کد های موجود استفاده کنیم و استفاده مستقیم از library های C شی گرا، جاوا، C و C++ را برای ما ممکن میکند.
- ۳. ساختار های زبانی جدید. اپلیکیشن های Xamarin با C# نوشته میشوند که زبان جدیدی است و نسبت به Cشی گرا و جاوا پیشرفت قابل توجهی دارد مانند امکانات dynamic در زبان، ساختار های تابعی مانند lambdas، LINQ، برنامه نویسی موازی، generics و بسیاری دیگر.
- ۴. Base Class Library (BCL)با توان بالا. اپلیکیشن های Xamarin از.NET BCL استفاده میکنند که متشکل از تعدادی کلاس با امکاناتی جامع و کارآمد مانند؛ XML قوی، Database، Serialization، IO، String، پشتیبانه شبکه و ... میباشند. کد C# موجود میتواند برای استفاده در app کامپایل شود که دسترسی به هزاران library، که امکاناتی فراتر از BCL را در اختیار ما قرار میدهند، را ممکن میسازد.
- ۵.Integrated Development Environment(IDE) مدرن. Xamarin از Visual Studio استفاده میکند که یک IDE مدرن با امکاناتی مانند؛ تکمیل خودکار کد، سیستم سطح بالا مدیریت پروژه و راه حل ها، کتاب خانه های جامع، integrated source control و...
- ۶. پشتیبانی mobile cross-platform. Xamarin پشتیبانی cross-platform باسطح بالا برای سه پلتفرم اصلی ios، android و windows ارائه میدهد.اپلیکیشن ها میتوانند طوری نوشته شوند که تا ۹۰ درصد کد خود را به اشتراک بگذارند و Xamarin.Essentials دارای API یکپارچه ایست که دسترسی به کد ها را در هر سه پلتفرم ممکن میسازد. کد های به اشتراک گذاشته شده باعث کم شدن هزینه وزمان توسعه برای برای توسعه دهندگان از راه دور میشود.
Xamarin.Android
اپلیکیشن های Xamarin.Android از C# به ابتدا از C# به زبان میانی (intermediate language) و سپس در زمان شروع اپلیکیشن just-in-time(JIT) به native assembly کامپایل میشوند. اپلیکیشن هایXamarin.Android درون محیط اجرایی Mono به همراه Android Runtime virtual machine(ART) اجرا میشوند.Xamarin ،Binding های .NET را برای Android.* namespace و Java.* namespace فراهم میکند. فضای اجرایی Mono توسط Managed Callable Wrappers(MCW) صدا زده شده و Android Callable Wrappers(ACW) را برای ART فراهم میکند که به هی دو محیط اجازه دسترسی به کد درون یکدیگر را میدهد.
برای اطلاعات بیشتر بهXamarin.Android architecture مراجعه کنید.
Xamarin.ios
اپلیکیشن های Xamarin.ios به شکل Ahead-of-time(AOT) از C# به native ARM assembly کامپایل میشوند. Xamarin از selector ها برای نمایش کد Objective-C به managed C# و از Registrar ها برای نمایش کد managed C# به Objective-C استفاده میکند. به مجموعه Selector ها و Registrar ها ، “binding” ها گفته میشود که به Objective-C و C# ارتباط بر قرار میکنند.
برای اطلاعات بیشتر به Xamarin.iOS architecture مراجعه کنید.
Xamarin.Essentials
Essentials یک کتابخانه ست که API های cross-platform برای امکانات دستگاه ها فراهم میکند. Xamarin.Essentials هم مانند xamarin یک لایه انتزاعی است که دسترسی به امکانات native را ساده تر میکند.
برخی از مثال های کارکرد Xamarin.Essentials شامل مواد زیر است:
- اطلاعات دستگاه
- File system
- Accelerometer
- شماره گیر گوشی
- Text to speech
- قفل گوشی
برای اطلاعات بیشتر به Xamarin.Essentials مراجعه کنید.
Xamarin.Forms
forms یک فرم وورک open-source برای UI میباشد که به توسعه دهندگان اجازه میدهد اپلیکیشن های ios، android و windows را با یک کد اصلی مشترک، بسازند و همچنین رابط کاربری در XAML را با code-behind در c# تولید کنند. این UI ها بر روی هر پلتفرم به عنوان مجری native control ها عمل میکنند.
برخی از مثال های کارکرد Xamarin.forms شامل موارد زیر است:
- XAML UI language
- Databinding
- Gestures
- Effects
- Styling
برای اطلاعات بیشتر به Xamarin.Forms مراجعه کنید.
آموزش آماده سازی در زامارین(Xamarin)
Xamarin.Android این امکان را برای شما فراهم می کند که برنامه های بومی آندروید را با استفاده از کنترل های همان UI همانطور که در جاوا هستند، اما با انعطاف پذیری و ظرافت یک زبان مدرن (C#) ، قدرت کتابخانه کلاس پایگاه داده دات نت (BCL) ، و یک IDE کلاس اول (Visual Studio) در نوک انگشتان شما است. این مجموعه اصول اولیه توسعه Xamarin.Android را معرفی می کند.
با استفاده از این مقاله شما می توانید مراحل نصب و پیکر بندی Xamarin.Android را برای سیستم عامل Windows یاد بگیرید. در پایان این مقاله، شما Xamarin.Android را به Visual Studio اضافه و نصب خواهید کرد و آماده ساختن اولین برنامه Xamarin.Android خواهید بود.
این راهنما مراحل نصب Xamarin.Android برای ویژوال استودیو را در ویندوز توصیف می کند و توضیح می دهد چگونه Xamarin.Android را برای ساخت اولین برنامه Xamarin.Android خود پیکربندی کنید.
از آنجا که Xamarin در حال حاضر با تمام نسخه های ویژوال استودیو بدون هزینه اضافی همراه است و نیازی به مجوز جداگانه ای ندارد، می توانید از نصب کننده ویژوال استودیو(Visual Studio installer) برای دانلود و نصب ابزار Xamarin استفاده کنید.
این مقاله در مورد چگونگی راه اندازی یک دستگاه اندرویدی و اتصال آن به یک رایانه خواهد کرد، به طوری که ممکن است این دستگاه برای run و debug برنامه های Xamarin.Android مورد استفاده قرار گیرد.
برای شروع برنامه های بومی، cross-platform هنگام دانلود ویژوال استودیو برای مک، چندین چیز وجود دارد که باید نصب و راه اندازی کنید.برای کار با iOS در ویژوال استودیو شما نیاز به قطعات زیر دارید:
در این راهنمای دو بخش، شما اولین برنامه Xamarin.Android خود را با استفاده از ویژوال استودیو خواهید ساخت و درک مفاهیم توسعه برنامه Android را با Xamarin خواهید آموخت. در طول راه، ابزارها، مفاهیم و مراحل مورد نیاز برای ساخت و راه اندازی یک برنامه Xamarin.Android معرفی خواهد شد.
در این راهنمای دو بخش، شما اولین برنامه Xamarin.Android خود را با استفاده از ویژوال استودیو خواهید ساخت و درک مفاهیم توسعه برنامه Android را با Xamarin خواهید آموخت. در طول راه، ابزارها، مفاهیم و مراحل مورد نیاز برای ساخت و راه اندازی یک برنامه Xamarin.Android معرفی خواهد شد.
در این راهنمای دو بخش، شما اولین برنامه Xamarin.Android خود را با استفاده از ویژوال استودیو خواهید ساخت و درک مفاهیم توسعه برنامه Android را با Xamarin خواهید آموخت. در طول راه، ابزارها، مفاهیم و مراحل مورد نیاز برای ساخت و راه اندازی یک برنامه Xamarin.Android معرفی خواهد شد.
برنامه Phoneword را که شما در مقاله های Hello, Android ساخته اید را با ایجاد صفحه دوم گسترش می دهیم. در طول مقاله، بلوک های اصلی Android Application Building را معرفی می کند و عمیق تر به معماری اندروید می پردازد، تا شما در درک بهتر از ساختار و عملکرد برنامه Android دست پیداکنید.