معرفی فریم ورک زامارین Xamarin + مزایا و معایب آن
زامارین Xamarin، یک پلتفرم منبع باز زبان برنامه نویسی .NET است که از آن برای ساخت و اجرای اپلیکیشن های IOS، اندروید و ویندوز استفاده می کنند که توسط .NET استفاده می کنند.
در واقع استفاده از زامارین از آن جهت که در یک محیط مدیریت شده اجرا می شود، امری بسیار آسان است. زامارین امکانی را برای توسعه دهندگان فراهم آورده است که بتوانند به واسطه آن اپلیکیشن های کراس پلتفرم طراحی کنند.
به این ترتیب تمام برنامه نویسان می توانند منطق (Logic) های مورد نظر خود را تحت یک زبان برنامه نویسی نوشته و آن را بر روی پلتفرم های مختلف اجرا کنند و در آخر همگی یک خروجی یکسان بومی داشته باشند.
زامارین Xamarin، بر روی مک یا ویندوز قابل اجرا و به کارگیری است و به کمک آن می توان اپلیکیشن هایی طراحی کرد که برای اجرا بر روی اندروید از پسوند .apk و برای اجرا بر روی ios، از پسوند .ipa برخوردار است.
البته در حال حاضر اگر قصد نوشتن یک اپلیکیشن برای ios را داشته باشید، باید حتما از زامارین نصب شده بر روی یک سیستم مک استفاده نمایید.
استفاده از زامارین مناسب چه افرادی است؟
زامارین Xamarin برای توسعه دهندگانی است که اهداف زیر را دنبال می کنند مناسب می باشد :
- افرادی که قصد به اشتراک گذاشتن کدها، تست آنها و راه اندازی بیزینس هایی را بر روی پلتفرم های مختلف دارند.
- افرادی که قصد نوشتن اپلیکیشن های کراس پلتفرم را به زبان C# توسط Visual Studio دارند.
زامارین چگونه کار می کند؟
در تصویر نموداری بالا، ساختار کلی اپلیکیشن های کراس پلتفرم تهیه شده در زامارین به خوبی مشخص است. زامارین امکان ساخت UI بومی را بر روی هر یک از پلتفرم ها برای شما فراهم می کند. همچنین به شما این امکان را می دهد که منطق های بیزینسی خود را با استفاده از C# بنویسید.
Xamarin بر اساس .NET ساخته شده است. به این ترتیب بسیاری از تسک ها و وظایف را به صورت اتوماتیک مدیریت می کند. تسک هایی مانند جمع آوری زایئات کدها، تخصیص مموری و حافظه و قابلیت همکاری با پلتفرم های بنیادی.
امکانات زامارین
زامارین، توانایی های موجود در پلتفرم های بومی را با یکدیگر ادغام کرده و امکاناتی را به آن افزوده است. بنابراین آنچه حاصل شده است به شرح زیر می باشد:
1- کامل کردن مستلزمات SDK های اساسی
زامارین شامل مستلزماتی است که متعلق به SDK های هر دو پلتفرم ios و اندروید است. به علاوه آنکه این مستلزمات بسیار قوی نوشته شده اند، به این معنا که برای جهت یابی و استفاده بسیار مفید و قابل دسترس هستند. بنابراین حین انجام فرآیند توسعه، ارزیابی موارد را برای توسعه دهنده به قدرتمندترین و سریع ترین حالت ممکن انجام می دهند. در نتیجه توسعه دهنده زمان کمتری را صرف آزمودن کدهای نوشته شده خود و رفع خطاهای احتمالی می کند و قادر است یک اپلیکیشن کارآمد و قوی را تهیه و منتشر نماید.
2- Objective-C، Java، C++ و C
زامارین امکاناتی را فراهم کرده است که به کمک آن توسعه دهنده قادر است به صورت مستقیم به کتابخانه های Objective-C، C، Java و C++ استناد کند. به این ترتیب می تواند از طیف گسترده ای از آرایه های موجود در تمام این کتابخانه از استفاده نماید. این قابلیت به توسعه دهنده این امکان را می دهد که از کتابخانه های موجود برای ios و اندروید در objective-C، Java، C و C++ استفاده نماید. به علاوه زامارین امکان بستن پروژه های objective-C و Java را با سینتکس های اعلامی فراهم کرده است.
3- ساختن زبان های مدرن
اپلیکیشن های زامارین به زبان C# نوشته شده اند. C# یک زبان برنامه نویسی مدرن، شامل بهینه سازی های مهمی نشأت گرفته از Objective-C و Java است. این بهینه سازی ها، مواردی اعم از امکانات زبان پویا، ساختن عملکردهایی مانند لامبدا، LINQ، برنامه نویسی های موازی، عمومی سازی و مواردی از این دست است.
4- کتابخانه کلاس بنیادی قدرتمند یا (BCL)
اپلیکیشن زامارین از BCL .NET استفاده می کند. یک طیف گسترده از کلاس ها که دارای امکانات وسیع، جامع و ساده ای هستند. مواردی مانند XML قدرتمند، دیتا بیس، سریال سازی، IO، رشته و پشتیبانی شبکه ای و مواردی از این دست.
C# موجود می تواند برای استفاده در یک اپلیکیشن مورد تدوین واقع شود که به این ترتیب دسترسی به هزاران کتابخانه را برای توسعه دهنده فراهم می کند. این کتابخانه عملکردهای زیادی را بر اساس BCL به اجرا در می آورند.
5- محیط توسعه یکپارچه مدرن (IDE)
Modern Integrated Development Environment یا همان محیط توسعه یکپارچه، موضوع بعدی مهمی است که درباره زامارین وجود دارد. زامارین Xamarin، از Visual Studio استفاده می کند. یک IDE مدرن که از امکاناتی نظیر:
- تکمیل کننده اتوماتیک کدها
- مدیریت پروژه های سنگین و پیچیده
- سیستم مدیریت و ارائه راه حل ها
- کتابخانه ای دارای پروژه های نمونه و تمپلیت های آماده
- سیستم هدایت منابع یکپارچه
و مواردی از این دست برخوردار است.
6- پشتیبانی از کراس پلتفرم موبایل
زامارین، پشتیبانی کراس پلتفرم های پیچیده ای را برای سه پلتفرم اندروید، ios و ویندوز ارائه می کند. اپلیکیشن ها توسط زامارین در حالتی نوشته می شوند که در حدود 90% از کدهای آنها عینا قابلیت اشتراک گذاری بر روی این سه پلتفرم را دارند.
از این رو زامارین به عنوان یک API یکپارچه پیشنهاد می شود تا به وسیله آن بتوان به منابع عمومی هر سه پلتفرم دسترسی داشت. به این ترتیب علاوه بر قابلیت اشتراک گذاری کدها، در هزینه ها و زمان تا حد بسیار زیادی صرفه جویی می شود.
زامارین و اندروید
اپلیکیشن های اندروید زامارین، از C# به یک زبان برنامه نویسی میانه (IL) تدوین شده اند. پس از آن این IL به صورت Just-in-Time یا (JIT) و درست در زمان لانچ اپلیکیشن، به یک زبان بومی تدوین می شود.
اپلیکیشن های اندروید زامارین، توسط یک محیط اجرایی مونو، به اجرا در می آیند درست شانه به شانه ماشین مجازی Android Run Time یا (ART).
.NET زامارین را ارائه کرد تا به وسیله آن بتواند اسامی Android.* و Java.* را محقق سازد. محیط اجرایی مونو، توسط MCW یا همان Managed Callable Wrappers، برای این اسامی فراخوانده می شود. به این ترتیب Android Callable Wrappers یا ACW را برای Art فراهم می کند. بنابراین کدها در هر دو محیط قابل استناد کردن به یکدیگر هستند.
زامارین و IOS
اپلیکیشن های ios زامارین به طور کامل Ahead-of-Time یا AOT هستند و از C# به کدهای مونتاژ شده ARM بومی تدوین شده اند. زامارین از سلکتورها برای نمایش objective-C جهت مدیریت C# و از ثبت نام کنندگان برای نمایش مدیریت کدهای C# به Objective-C استفاده می کند.
سلکتورها و ثبت نام کنندگان در مجموع bindings نامیده می شوند و به C# و Objective-C این امکان را می دهند که با یکدیگر در ارتباط باشند.
Xamarin.Essentials
Xamarin.Essentials یک کتابخانه است که API های کراس پلتفرم را برای امکانات دستگاه یا دیوایس بومی فراهم می کند. درست مانند خود زامارین، Xamarin.Essentials نیز یک مفهومی برای آسان تر شدن دسترسی به عملکردهای بومی است.
مثال هایی از عملکردهایی که توسط Xamarin.Essentials فراهم شده اند به شرح زیر هستند:
- Device info = اطلاعات دستگاه
- File system = پوشه سیستم
- Accelerometer = شتاب سنج
- Phone dialer = شماره گیرنده تلفن
- Text-to-speech = تبدیل متن به صوت
- Screen lock = قفل صفحه
Xamarin.Forms
این یک فریم ورک UI منبع باز است و به توسعه دهندگان این امکان را می دهد که Xamarin.IOS و Xamarin.Android و اپلیکیشن های ویندوزی را با استفاده از یک سورس کد بسازند. همچنین به توسعه دهندگان این امکان را می دهد که ظاهر اپلیکیشن خود را در XAML با کدهای C# طراحی کنند.
سپس این کدها در هر پلتفرم به صورت بومی سازی شده خروجی گرفته می شود. مثال هایی از Xamarin.Forms به شرح زیر است:
- XAML user-interface language = زبان UI XAML
- Databinding = بستن اطلاعات
- Gestures = حرکات
- Effects = اثرات و افکت ها
- Styling = استایل ها و حالت ها
مزایای زامارین
برخی از مزایای زامارین که به بسیاری از آن ها در متن اشاره شد به اختصار به شرح زیر هستند:
- فریم ورکی که مجهز به Visual Studio است.
- منطق اپلیکیشن را به اشتراک می گذارد.
- قابلیت برنامه نویسی و طراحی UI را داراست.
- قابلیت تست و ارزیابی اپلیکیشن طراحی شده را داراست.
- یک فروشگاه بی نظیر برای ابزارها و ملزومات طراحی UI دارد.
- پکیج های اشتراکی بسیار آسان و قابل دسترسی دارد.
- یادگیری آن بسیار ساده است.
معایب و محدودیت های زامارین
مانند بسیاری از فریم ورک ها، xamarin نیز دارای محدودیت ها و معایبی است که برخی از بارزترین آنها به شرح زیر است :
- اپلیکیشن های طراحی شده توسط xamarin، زمان بیشتری برای دانلود نیاز دارند و به علاوه حجم بیشتری را در دستگاه به خود اختصاص می دهند.
- زامارین در حال حاضر از انجمن پشتیبان برخوردار نیست.
- خارج از فضای زامارین، قابلیت اشتراک گذاری کدها وجود ندارد.
- برای برخی از کدها نیازمند استفاده از راهنما است.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.