زامارین یک فریمورک باورنکردنی در دات نت
- 1399/10/8
- 694
- برنامه نویسی
بررسی فریمورک زامارین در زبان سی شارپ
در این مقاله به بررسی کاملی از فریمورک زامارین در دات نت میپردازیم و هدف از تولید این محیط را شرح میدهیم و مزایا و معایب توسعه اپلیکیشن توسط زامارین را تشریح خواهیم کرد.
فریمورک زامارین چیست ؟
زامارین یک فریمورک قدرتمند و جذاب جهت توسعه اپلیکیشن های تحت IOS و اندروید با زبان سی شارپ می باشد به زبان ساده اگر شما قصد طراحی برنامه های کاربردی تحت موبایل به زبان سی شارپ در محیط زامارین را داشته باشید دیگر نیازی به تغییر یا بازنویسی آن به زبان جاوا یا Swift جهت استفاده در دیگر پلت فرم ها ندارید. در واقع میتوان گفت زامارین یک ابزار برنامه نویسی Cross Platform می باشد.
مهم ترین نکته در استفاده از زامارین این است که وقتی با #C اپلیکیشن اندروید میسازید ، 75% درصد کد های خود را کپی کنید و برای ساخت اپلیکیشن ios از آن استفاده کنید. با قاطعیت میتوان گفت یک فریمورک Cross Platform به تمام عیار می باشد.
معماری زامارین و نحوه کارکرد آن :
توسعه دهندگان زامارین ابتدا منطق اصلی و Base برنامه خود را در لایه ی مشترک (shared) با زبان سی شارپ کدنویسی میکنند و سپس خروجی های مختلف و مبتنی بر سیستم عامل های موبایل دریافت میکنند. در اکثر اوقات چیزی حدود 80% تا 90% کد یکبار نوشته میشود.
دو راه برای ساخت یک رابط کاربری در Xamarin.Form وجود دارد: یا در سی شارپ با رابط کاربری برنامه نویسی Xamarin.Form و یا از زبان XAML، یک زبان نشانه گذاری ساخته شده توسط مایکروسافت که برای تعریف رابط کاربر تعریف می شود، استفاده می شود.
یک نکته مهم در معماری و ساخت پروژه زامارین استفاده از SDK ها می باشد.برای توسعه برنامه های Xamarin، شما باید SDK ها را برای iOS، Android و ویندوز نصب کنید.
برای ایجاد یک پروژه زامارین کافی است
1) نرم افزار یکپارچه Visual Studio را باز کرده و گزینه Create New Project را بزنیم
2) گزینه Mobile App یا همان Xamarin Forms را انتخاب میکنیم
3) بعد از انتخاب نام برای پروژه گزینه Create را میزنیم
4) در فرم ایجاد شده نوع APP خود را انتخاب کنیم که میتواند Master-Detail , Tabbed , Shell , Blank باشد
Master-Detail شامل Side-menu و Child Page , و نمونه کد یا نمونه صفحه های آماده می باشد که میتواند برای شروع کار انتخاب مناسبی باشد
Tabbed : پروژه ای شامل برگه های مختلف جهت پیمایش بین زیر برگ ها
Shell : پروژه ای در زامارین حاوی Xamarion.Forms Shell برای زیر برگ ها
Blank : همانگونه که از نامش پیدا می باشد یک پروژه خالی بدون اطلاعات و نمونه ها که برای توسعه Customize بسیار مناسب می باشد.
مزایای استفاده از Xamarin
مزایای زیر استفاده از Xamarin را برای توسعه برنامه هایتان پیشنهاد می کند:
- قابلیت توسعه زامارین در محیط قدرتمند و یکپارچه ویژوال استادیو
- زامارین Open Source هست
- بر پایه و اساس زبان سی شارپ
- پشتیبانی از چندین پلتفرم و سیستم عامل
- ساخت برنامه با کارایی و عملکرد و UI بومی
- دسترسی به برنامه های بومی
- اشتراک گذاری Logic (منطق) برنامه
- گسترده و به روز رسانی خودکار
- IDE های قدرتمند
- تست و بینش
- بهترین پلتفرم برای توسعه دهندگان دات نت جهت رفع نیار اپ های تحت موبایل
- حمایت همه جانبه شرکت مایکروسافت از این پلتفرم
- تسهیل در نصب و راه اندازی SDK و IDE
- عملکرد عالی در خصوص مدیریت حافظه
معایب استفاده از زامارین :
- سرعت کمتر به دلیل استفاده از کدهای سی شارچ جهت توسعه App های اندروید
- وجود لایسنس جهت استفاده از زامارین
- حجم بیشتر برنامه یک برنامه ساده در زامارین حدود 16 مگ حجم دارد که حدود 10 مگ بیشتر از حجم مورد انتظار می باشد.
- برای اپلیکیشن هایی با گرافیک بالا توصیه نمیشوند
- برای اپلیکیشن هایی با پیچیدگی گرافیکی بالا توصیه نمیشود
- تولید اسکریپت های اضافی برای تبدیل کدهای سی شارپ به اپلیکیشن اندروید
- کوچک بودن جامعه برنامه نویسان در زامارین و کمبود help جهت حل مشکلات هنگام مواجهه با Error
نمونه کد XAML موجود برای Layout اصلی یک پروژه Xamarin برای توسعه اپلیکیشن Android :
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="App4.MainPage">
<StackLayout>
<!-- Place new controls here -->
<Label Text="Welcome to Xamarin.Forms!"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage>
و نمونه کد موجود برای Activity اصلی اندروید :
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace App4.Droid
{
[Activity(Label = "App4", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}