زامارین ( Xamarin ) چیست؟

نویسنده : فرامرز موضوع : برنامه نویسی, فناوری اطلاعات بدون دیدگاه

زامارین xamarin یک شرکت نرم افزاری در کالیفرنیا/سانفرانسیسکو هست که در سال ۲۰۱۱ توسط مهندسانی کهپروژه مونو ( Mono ) را راه اندازی کردند ایجاد شده است.

پروژه ی Mono شامل Mono و  Mono Touch و Mono Android در واقع یک پیاده سازی مستقل از پلتفرم ( Cross Platform ) از ساختار CLI یا زیر ساخت دات نت فریم ورک هست که روی پلتفرم های دیگر از جمله لینوکس، مک، اندروید و آیفون قبل اجرا هست

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

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

به عبارت دیگر: زمانی که شما با استفاده از زبان C# (سی شارپ) اقدام به ساخت اپلیکیشنی در فضای زامارین مینمایید، دیگر نیازی به تغییر یا بازنویسی آن (مثلاً به زبان جاوا و…) جهت استفاده در دیگر پلت فرم ها ندارید. در واقع میتوان گفت زامارین یک ابزار برنامه نویسی چند سکوییست.

برخی مزایای استفاده از زامارین

1. امکان انتقال کدها میان اپلیکیشنهای ساخته شده با استفاده از زامارین صرف نظر از ساختار پلت فرمی که در آن قرار دارد.

2. زامارین تنها چارچوبیست که در هر قالب پلت فرمی ویژگیهای اپلیکیشن های (native) آن پلت فرم را به خوبی به خود میگیرد. (native app به اپلیکیشن هایی گفته میشود که در محیط نرم افزاری مختص به پلت فرمی خاص ساخته میشود. مثلاْ برای استفاده در پلت فرم اندروید در اپلیکیشنی را در Android studio طراحی کنیم.)

3. امکان ساخت اپلیکیشن های (IOS – Android – Windows phone ) با قابلیت انتقال کدهای یکسان (تا حدود 96%).

4. [portable class librariries] که به شما امکان استفاده مجدد از کدها را داده و درعین حال تعداد پروژه ها را کاهش میدهد.

5. امکان اضافه کردن مؤلفه هایی شامل نمودارها، جداول، نمایه های زیبا، [UI control] ها و… بصورت مستقیم از [IDE].

6. با قالب زامارین رابط طراحی هر سه پلتفرم بصورت مشترک با چارچوب اساسی [XAML] خواهد بود.

 

حالا با توجه به موارد فوق یک ارزیابی کلی داشته باشیم

هنگام مقایسه زامارین با دیگر ابزارهای برنامه نویسی باید توجه ویژه ای به افزایش کیفیت آن از زمان کسب مالکیت کامل زامارین توسط مایکروسافت (24 فوریه 2016) تا به امروز که سال 2018 را میگذرانیم داشت. با توجه به کاسته شدن بسیاری از [Error] های رایج در زامارین ظرف این مدت و رفع مشکل عدم آشنایی [Developer] ها با [Error] ها. که بی شک یکی از معایب هر ابزار نوپاییست. با این توصیف می توان روند بسار مثبتی برای آینده زامارین متصور شد.

البته به نظر، اشاره به این امر هم ضروریست که با قرار گرفتن زامارین در محیط [Visual studio] محبوبیت آن در امر [Team work] افزایش چشم گیری پیدا کرد. دیگر اینکه با توجه به تجربیات شخصی خود، چه به عنوان مدیر پروژه و چه به عنوان [Developer] ، معضل [Source control] را بعنوان یکی از مشکلات بارز و همیشگی کار در محیط [Native] و بخصوص قابل لمس در محیط [Android Studio]، یکی ازعوامل برتری زامارین نسبت به ابزارهای [Native] میدانم. چنانکه میدانید هر بار که یکی از اعضای تیم بخواهد یک [Reference] را اصطلاحاً [Commit] نماید تمام اعضای گروه باید مدتها وقت صرف رفع [Error] های حاصله نمایند.

زامارین به چه صورتی کار می کند؟

بیشترین سوالی که اکثرا پرسیده می شود این است که زامارین به چه صورتی کار می کند؟ آیا با استفاده از یک کد، برای تمامی پلتفرم ها می توان اپلیکیشن توسعه داد؟ زامارین با تبدیل SDK های Android و IOs به C# این قابلیت را به وجود آورده است که با استفاده از C# به تمامی API های Android و IOs دسترسی داشته باشید. زامارین با تبدیل این SDK ها به سی شارپ، کار را برای توسعه اپلیکیشن موبایل راحت نموده است و با ادغام تمامی SDK ها، توسعه را با استفاده از یک زبان راحت، قدرتمند و فراگیر، میسر نموده است. با استفاده از تکنولوژی زامارین، فقط با یادگیری سی شارپ می توانید برای تمامی پلتفرم ها کد بزنید و دیگر نیاز نیست Syntax های متفاوتی برای زبان های متفاوت را یادبگیرید.

طرح اپلیکیشن ها (UI) در زامارین به چه صورتی می باشد؟

برای طراحی UI Xamarin، می توان همانند سایر زبان ها عمل کنید. شما بایستی برای هر پلتفرم UI متفاوتی را ایجاد کنید و آن را به Codebase متصل نمایید.
شما برای طراحی UI اپلیکیشن 2 راه پیش رو دارید. استفاده از متد های اصلی Native خود پلتفرم استفاده کنید و یا از از Xamarin.Form استفاده نمایید.  استفاده از Xamarin Form این امکان را شما می دهد که UI را فقط یکبار ایجاد می کنید.

شروع کار با زامارین (Xamarin):

حال با شناخت کافی از نحوه زامارین، بایستی زامارین را بر روی ویژوال استودیو نصب نمایید. برای نصب زامارین، وارد سایت xamarin.com شوید و با دانلود فایل نصبی زامارین برای ویژوال استودیو و نصب آن بر روی ویژوال استودیو، IDE خود را برای توسعه Android,IOs,win آماده نمایید .

جاوا ، زامارین، ریکت نیتیو یا زامارین؟ کدوم برای توسعه روی موبایل بهتره ؟

امروزه برای توسعه‌ی اپلیکیشن های موبایل چندین انتخاب پیش روی برنامه نویسان هست. شاید به‌طور کلی بشه گفت سه روش وجود داره: – Hybrid Development – Native Development – Bridge to Native Development (این روش اسم مشخصی نداره فعلا. شخصا اینطوری تعبیر کردم) در روش اول، معروفترین فریمورک Apache Cordova (یا نسخه ی شرکت ادوبی به نام PhoneGap) هست. ابزارهایی مثل Ionic و Onsen UI هم برای بهبود رابطه کاربری وجود دارن. در این روش یک WebView ایجاد میشه و در واقع یک صفحه‌ی وب رو رندر میکنه. برای ساخت بازی های یکم پیشرفته و یا برنامه های سنگین، این روش مناسب نیست اما در سایر سناریوها میتونه خیلی راحت استفاده بشه و جوابگو هست. روش دوم که قدیمی ترین راه ایجاد اپلیکیشن‌های موبایل هست، از زبان های Java و Kotlin برای سیستم‌عامل اندروید و از Objective-C و Swift برای سیستم‌عامل ‌iOS استفاده میشه. سرعت اجرای برنامه ها و بازی‌های بسیار مناسب و مخصوص موبایل‌هاست. اما کدی که نوشته میشه برای پلفترم‌های مختلف کاملا متفاوته و یادگیری اونها هم مشکل‌تر از سایر روش‌هاست. و اما روش سوم که به نوعی جدیدترین روش به حساب میاد، ایده‌ش اینه که ما با استفاده از یک زبان برنامه نویسی دیگه مثل JavaScript و یا #C کدی رو بنویسیم که بعدا تبدیل بشه به همون کامپوننت‌های Native هر سیستم‌عامل. یعنی در این روش WebViewای در کار نیست و برنامه هیبریدی محسوب نمیشه. فقط ایجاد کدهای نیتیو یکم انتزاعی‌تر شده و یک واسط وجود داره. سرعت اجرای اپلیکیشن‌های توسعه‌داده شده با این روش تقریبا مشابه روش نیتیو هست و معروفترین فریمورک های موجود هم React Native و Xamarin هستن که خب بدلیل پراستفاده و پرطرفدارتر بودن جاوااسکریپت، RN محبوبتر از زامارین هست.

درانتها پیشنهاد میکنم:

اگر گروه شما با [#C] آشنا هستند و صرف جویی در وقت برای شما در اولویت است با زامارین کار کنید تا زودتر به نتیجه برسید و هزینه کمتری هم پرداخت کنید. اما اگر زمان زیادی برای ساخت اپلیکیشن مورد نظرتان دارید و در گروهتان برخی افراد فقط با [Android studio] یا [xCode] آشنایی دارند ، شاید بهتر باشد از [Swift] و[Java] برای ساخت اپلیکیشن خود استفاده کنید.