تاریخ بروزرسانی : 16 شهریور 1399 | تعداد بازدید : 5045 | زمان خواندن مقاله : 15دقیقه

زامارین چیست؟ یک تکنولوژی باورنکردنی سی شارپ

زامارین چیست؟
چه کاربردی دارد؟
رقیب سرسخت آن کیست؟
با ما همراه شوید تا جواب تمامی سوالات را بدانید.

اما قبل از ورود به بحث، یکروز با یکی از دوستان هم دانشگاهی، مشغول صحبت بودیم که به صورت ناگهانی گفت موندم چه کار کنم؟
من با کمال تعجب پرسیدم منظورت از حرفی که گفتی چه بود؟ گفت: من به برنامه نویسی در حوزه موبایل علاقه بسیاری دارم و الان هم مشغول به فعالیت در این زمینه با زبان جاوا هستم اما احساس میکنم با این زبان نمی توانم به فعالیتم ادامه دهم و دنبال یک راه میانبر هستم. با پیشنهاد من تصمیم گرفتیم تا با یکی از اساتیدی که در این حوزه فعالیت داشت، صحبت کنیم. بعد از صحبت، ایشان شروع برنامه نویسی موبایل با زامارین را پیشنهاد داد. خب دوستان حالا می خواهیم ببینیم که زامارین چیست؟

زامارین چیست؟

زامارین یک شرکت نرم‌افزاری است که ابزارهای توسعه نرم‌افزار تجاری را تولید میکند. این شرکت در سال 2011 در ایالت کالیفرنیا توسط پروژه متن باز Mono Android خلق شد.

هدف زامارین این بود که به وسیله زبان برنامه‌نویسی سی شارپ برنامه‌هایی برای سه پلتفرم اندروید، آیفون و ویندوزفون بنویسد. بالاخره در اوایل سال 2016 زامارین توسط شرکت مایکروسافت خریداری شد و این آغاز شروعی تازه برای زامارین و مایکروسافت بود که به وسیله سیاست‌های جدید مایکروسافت و استراتژی جدید cloud first (ابر رایانه) و mobile first (اولین تلفن همراه) یک شانس بزرگ برای زامارین و محصولاتش بود. پس با پروژه متن‌بازMono  بستری فراهم کردند که بتوان با استفاه از C# و .Net برنامه‌هایی چون ios، os x و اندروید ساخت. برای اندروید محصول xamarin.Android را به بازار عرضه کرد.

 

چند سکویی بودن زامارین:

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

ممکن است این سوال برایتان پیش آید که اصلا برنامه چند سکویی به چه برنامه‌ای گفته میشود؟

برنامه چند سکویی به برنامه‌نویسی نرم‌افزارهایی گفته میشود که قابلیت اجرا در چندین پلتفرم را هستند و به 2 دسته تقسیم میشوند.
  • دسته اول: برنامه‌هایی که برنامه‌نویس یک بار آنها را مینویسد و کامپایلر خودش برای هر سیستم عامل یک نسخه جداگانه تولید میکند.
  • دسته دوم: برنامه‌هایی هستند که توسط زبان‌های تفسیر شده نوشته میشوند وتوسط مفسرهای موجود در هر پلتفرم قابل اجرا هستند. زبان‌های برنامه‌نویسی مفسر به آن دسته از زبان‌هایی گفته میشود که برای استفاده نیازمند یک مفسر است مثل html یا js .
خب حالا مزایای توسعه برنامه‌های موبایل چند سکویی چیست؟
  • استفاده دوباره کدها
  • توسعه سریع
  • پیاده‌سازی آسان‌
  • ایده‌آل برای نمونه‌سازی اولیه

 

رقیب سرسخت زامارین:

زبانی که با زامارین در حال رقابت است زبان جاواست. این زبان محبوبیت زیادی بین برنامه نویسان برای تولید اپلیکیشن‌های موبایلی دارد و میتوان گفت یک رقیب سرسخت برای زامارین به شمار میرود؛ اگرچه قدرتمند بودن زبان جاوا را نمیشود انکار کرد.

 در حیطه برنامه نویسی تحت موبایل، برای اندروید از جاوا و چندین ابزار آن استفاده میشود یا برای برنامه نویسی بر روی ios از زبان objective c  و ابزارهای آن استفاده میشود و یا برای برنامه نویسی درwindos phone  از زبان C# و visual studio استفاده می‌گردد. اما زامارین این امکان را به شما می‌دهد که با استفاده از زبان سی شارپ برای هر3 پلتفرم موبایلی که گفته شد تنها با یک محیط و یک زبان مشترک برنامه‌نویسی کنید.

 

حقایقی از زامارین:

 
  1. یکی از کارآمد‌ترین پلتفرم‌هایی که در ساخت برنامه‌ها با سیستم عامل‌های مختلف استفاده می‌شود. به جای طراحی جداگانه برای هر سیستم، می‌توانید تقریبا 75 تا 90 درصد کدهای توسعه یافته را در همه سیستم عامل‌های بزرگ تلفن همراه به اشتراک بگذارید و هزینه که زمان ورود به بازار و هزینه کاهش پیدا میکند.

  2. UX عالی را ارائه می‌دهد.

  3. یکپارچگی، کیفیت و تست عملکرد را در طیف وسیعی از دستگاه‌ها تضمین می‌کند.

حقایق بیشتری از زامارین بدانید:

  • به‌خاطر چند‌سکویی بودن زامارین، می‌توانید به راحتی تغییرات را برای فایل منبع گسترش دهید. یعنی نگهداری و آسان‌تر
  • توسعه‌دهندگان مک و ویندوز جهت ساخت برنامه‌های iOS Apple Watch، از زامارین استفاده می‌کنند و این یعنی پشتیبانی این تکنولوزی از برنامه ساعت‌های هوشمند.
  • آیا می‌دانستید زامارین محدود به توسعه برنامه تلفن همراه نیست و می‌توانید با آن برنامه‌هایی چون: Wearable، Mac، TvOs و بازی‌های OpenGL و SceneKit/SpriteKit/Metal را توسعه دهید.
  • نوشتن کدهای چندگانه در زمان مشابه برای ساخت برنامه‌های بومی در سیستم عامل‌های مختلف ارزشمند نیست و با استفاده از زامارین می‌توانیم زمان و هزینه را کاهش دهیم که می‌توانیم همان کد پایه (70 تا 80 درصد کد) را برای ایجاد برنامه‌های تلفن همراه بومی دوباره استفاده کرد. 

چه شرکت‌های مشهوری از زامارین استفاده می‌کنند؟

  • Cognizant

  • Bosch

  • Siemens

  • LEAP

  • 3M

  • Slack

  • Pinterest

 

مزایای زامارین:

  • امکان انتقال کدها، میان اپلیکیشن‌های ساخته شده با استفاده از زامارین صرف نظر از ساختار پلتفرمی که در آن قرار دارد.
  • زامارین تنها چارچوبیست که در هر قالب پلتفرمی، ویژگی اپلیکیشن‌های (native) آن پلت‌فرم را به خوبی به خود میگیرد. (native app) 

native app: به اپلیکیشن هایی گفته میشود که در محیط نرم‌افزاری مختص به پلت‌فرمی خاص ساخته میشود. مثلاْ برای استفاده در پلت‌فرم اندروید اپلیکیشنی را در Android studio طراحی کنیم.

  • امکان ساخت اپلیکیشن‌های (IOS – Android – Windows phone ) با قابلیت انتقال کدهای یکسان (تا حدود ۹۶%)
  • [portable class librariries] : به شما امکان استفاده مجدد از کدها را داده و در عین حال تعداد پروژه‌ها را کاهش میدهد.
  • امکان اضافه کردن مؤلفه‌هایی شامل نمودارها، جداول، نماهای زیبا،[UI control] ها و… بصورت مستقیم از  .[IDE]
  • با قالب زامارین رابط طراحی هر سه پلتفرم بصورت مشترک با چارچوب اساسی [XAML] خواهد بود.

 

معایب زامارین:

بعد از اینکه در مورد مزایای زامارین صحبت کردیم حال تعدادی از مشکلات و معایب آن را در بخش زیر قرار داده ایم:

دارا بودن لایسنس: Xamarin.Android همانند Xamarin.IOS و Xamarin.OS x ابزارهای تجاری هستند و باید خریداری شوند. البته در کشور ما این مشکل حادی نیست.

انتظار برای آپدیت: در اکثر مواقع وقتی که یک نسخه از اندروید به بازار عرضه می‌شود، مدت زمانی طول می‌کشد که شرکت Xamarin نرم افزار خود را آپدیت کند تا نرم افزار را با آخرین نسخه اندروید سازگار کند.

کارایی (performance) و مدیریت حافظه: گاهی اوقات گفته می‌شود که استفاده از زبان #C برای توسعه برنامه‌های اندروید سرعت را کاهش می‌دهد ولی هنوز اندازه‌گیری و ارزیابی درستی از این قضیه به عمل نیامده است.

 

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

بیشترین سوالی که پرسیده می‌شود این است که زامارین به چه صورتی کار می‌کند؟ آیا با استفاده از یک کد امکان توسعه اپلیکیشن برای تمامی پلتفرم‌ها وجود دارد؟

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

 

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

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

  • استفاده از متدهای اصلی Native
  • استفاده از Xamarin.Form

استفاده از Xamarin Form این امکان را به شما می‌دهد که UI را فقط یکبار ایجاد کنید.

 

 ارزیابی کلی زامارین (xamarin) با توجه به مطالب گفته شده: 

دانستیم که زامارین یک پلتفرم انعطاف‌پذیر است که به طرز باور‌نکردنی کدهای سی شارپ را به راحتی در سیستم عامل‌های مختلف تلفن همراه کامپایل میکند. بنابراین هر آنچه که برنامه‌نویسان برای ساخت یک App حرفه‌ای نیاز دارند را فراهم کرده است.

شرکت مایکروسافت که در آن زمان حق مالکیت زامارین را گرفته بود به کاربران خود قول داد که در زمان نه چندان دور باUpdate های فراوان تمام Bug و مشکلات زامارین را حل کرده و بر قدرت این ابزار فرا پلتفرمی می‌افزاید.

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

پیشرفت‌های بزرگی در زمینه زامارین شکل گرفته است و شرکت‌های بزرگی از جمله Olo food ،CA mobile :و سایر بانکها با بیش از 30 میلیون کاربر با مایکروسافت قرار داد بسته‌اند که برای بهبود تجارت الکترونیکی خودApp هایی با امنیت بالا ساخته شود.

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


 

نتیجه گیری:

پس اگر با زبان سی‌شارپ آشنا هستید، فورا وارد دنیای برنامه‌نویسی زامارین شوید و اپلیکیشن‌های موبایلی را با توجه به علاقه خود کد نویسی کنید. چرا که با استفاده از تکنولوژی زامارین و فقط با یادگیری سی‌شارپ می توانید برای تمامی پلتفرم ها کد بزنید و دیگر نیاز نیستSyntax های متفاوتی یاد بگیرید. برای توانایی این تکنولوژی میتوان گفت با استفاده از این زبان می‌توانید یک کد #C را روی ۲.۶ میلیارد دستگاه اجرا کنید و اگر هیچ شناختی درباره سی‌شارپ ندارید، نگران نباشید می توانید از دوره آموزش سی شارپ مقدماتی تا متوسط ما استفاده کنید. ما در دوره تمامی مباحثی که به عنوان مفاهیم مقدماتی به آن نیاز دارید را به صورت کامل و کاملا کاربردی بیان کرده‌ایم.


کلمات کلیدی :
xamarin

توضیحاتی در مورد نویسنده این مقاله :
مرضیه فتاحی مرضیه فتاحی

کارشناس کامپیوتر گرایش نرم افزار..... نویسندگی،تجربه ای انفرادی است یعنی به اشتراک گذاری.... این بخشی از ذات انسان است که بخواهد مسائل را به اشتراک بگذارد ازجمله:افکار،ایده ها،عقاید

نظرات


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

برای پاسخ باید وارد شوید

پشتیبانی 2
پشتیبانی 2

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

همت رشیدی
همت رشیدی توضیحات خوبی درمورد زامارین گفتین و من علاقه مند به یادگیریش شدم شما دوره ای در خصوص این حوزه ندارد؟

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1

خیلی ممنون کاربر گرامی، فعلا چنین دوره ای رو نداریم اما اگر درخواست زیاد باشه حتما برگزار می کنیم

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

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1

سلام اقای حسینی نظر لطف شماست، بله قطعا همینه مایکروسافت همیشه عالی ترین ها رو ارائه میده، زامارین هم یکی از اون عالی ترین هاش به حساب میاد

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

برای پاسخ باید وارد شوید

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

برای پاسخ باید وارد شوید

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

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.