Xamarin-or-Cordova-

زامارین یا آپاچی کوردووا؛ کدامیک بهتر است؟

اغلب در زندگی واژه “خوب”، دشمن “بهترین” است. مردم معمولا به جای تلاش برای شناختن و یافتن بهترین انتخاب، صرفاً از بین انتخاب هایی که خوب تلقی می شوند، دست به انتخاب می زنند. بنابراین، در انتخاب بهترین چارچوب برنامه  های موبایل، کدام پلتفرم چندسکویی بهترین است؟

مفهوم Cross-platform:

چندسکویی در اصطلاح نرم‌افزارهای رایانه، به آن دسته از نرم‌افزارها گفته می‌شود که در چندین سکوی رایانه‌ای یا پلتفرم قابل اجرا هستند. این نرم‌افزارها در دو دستهٔ کلی قرار می‌گیرند.

  • دسته ی نخست: برای هر یک از سکوهای رایانه‌ای به طور جداگانه تولید می‌شوند. در این تکنولوژی‌ها برنامه نویس یک بار برنامه را می‌نویسد و سپس کامپایلر برای هر سیستم‌عامل (مهمتر از همه ویندوز، لینوکس، مکینتاش و…) فایل اجرایی جداگانه‌ای تولید می‌کند.
  • دستهٔ دوم: توسط زبان‌های تفسیرشده نگارش می‌شوند و توسط مفسرهای موجود در هر پلتفرم رایانه‌ای قابل اجرا هستند. یکی از معروف‌ترین مثال‌های این گروه می‌توان به اپلت‌های جاوا اشاره کرد. برنامه نویسان جاوا برنامه خود را به صورت اپلت (برنامه ی کوچکی که در برنامه دیگری اجرا می شود)، توزیع می‌کنند اما کاربران سیستم‌عامل‌های مختلف نیازمند داشتن ماشین مجازی جاوا روی سیستم خود هستند.

با این حال، قبل از هرگونه تصمیم گیری، دو مورد از محبوب ترین بسته های فناوری تلفن همراه زامارین و آپاچی کوردووا باید توجه قرار گیرد. (به تازگی، صحبت هایی در مورد آوازه ی ستاره ی روبه رشد در توسعه ی چندسکویی به نام React Native به گوش می رسد).

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

آپاچی کوردووا (به عنوان PhoneGap که توزیع گسترده تری از کوردووا است، نیز شناخته می شود)، یک راه حل متن باز برای ساخت برنامه ها با استفاده از تکنولوژی های استاندارد وب (html5،CSS و جاوا اسکریپت) برای توسعه چندسکویی است. با زامارین، برنامه ها به طور کامل در سی شارپ (و XML برای نشانه گذاری و طراحی ظاهر) بصورت کد اشتراکی در همه ی پلتفرم های اصلی، نوشته شده است.

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

حال بیایید نگاهی به برخی نقاط ضعف و قوت هر ابزار بیاندازیم. با استفاده از کوردووا، توسعه دهنده تنها نیاز به ایجاد یک برنامه دارد و آن برنامه در سیستم عامل های گوناگون بطور یکسان نمایش داده خواهد شد. این مورد هم یک مزیت و هم یک ضعف تلقی می شود. باوجود اینکه این قابلیت که بتوان در پلتفرم های مختلف همان UI را مشاهده نمود، به عنوان یک مزیت بزرگ تلقی می شود، در کوردووا زمانی که میخواهیم UI در پلتفرم های مختلف، متفاوت نمایش داده شود، از UI مشابه نمی توان استفاده کند و اشتراک کد ارزش خود را از دست می دهد. در مقابل، یکی از مزایای اصلی زامارین قابلیت تولید کدهای قابل استفاده مجدد است (تا 80 درصد). با این حال، همان میزان اشتراک گذاری کد در کوردووا می تواند از طریق قدرت css ها بدست آید.

زامارین به طور قابل توجهی UX بهتری، چه در عملکرد و چه در توابع ارائه می دهد. برنامه به کد اختصاصی کامپایل شده و دسترسی به API های اختصاصی را از طریق پوسته ی سی شارپ فراهم می کند، در نتیجه برنامه های زامارین اگر به خوبی نوشته شده باشند، ظاهر و احساس کاملا محلی، مانند همتایان خود ایجاد می کنند.

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

اگرچه زامارین برای کاربران منحصر بفرد است (خصوصا مبتدیان در توسعه ی برنامه های چندسکویی موبایل)، اما یادگیری آن نیز به تدریج امکان پذیر است. توسعه دهندگان علاوه بر سی شارپ و XML، باید با سیستم عامل اندروید، iOS و ویندوز آشنا شوند. توسعه دهندگانی با آموزش حرفه ای در همه ی این موارد معمولاً به آسانی یافت نمی شوند.

بنابراین، اگر فرض را براین بگیریم که افراد در یک تیم توسعه، معمولا در سی اس اس، اچ تی ام ال و جاوااسکریپت مهارت دارند و نیاز به ساخت یک برنامه ی نسبتاً ساده دارند، کوردووا گزینه ی مناسب تری خواهد بود. با این حال، اگر نرم افزاری با کارایی بالا نیاز دارید، زامارین گزینه ی بهتری خواهد بود.

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

در جدول زیر به مقایسه ی عمیق تر این دو می پردازیم:

مقایسه زامارین و آپاچی کوردووا

معیارهازامارینآپاچی کوردووا/ phoneGap
زبانسی شارپ، XMLاچ تی ام ال، جاوا اسکریپت
پلتفرم قابل پشتیبانیiOS، اندروید، ویندوز فونiOS، اندروید، ویندوز فون، بلک بری
متن بازمجوز عمومی رایگان برای استفاده غیرتجاری مجوز حرفه ای و سازمانی برای کسب و کار جامعه ی در حال رشد سریعرایگان برای استفاده جامعه پشتیبانی بزرگ (گیت هاب، سایت stack overflow) تعداد زیاد پلاگین در دسترس
مهارت های مورد نیازسی شارپ، XML + iOS، اندروید و پلتفرم های ویندوزاچ تی ام ال/ سی اس اس، جاوا اسکریپت
رابط گرافیکی کاربررابط گرافیکی اختصاصی توانایی ایجاد رابط گرافیکی انحصاری برای پلتفرم های مختلف انتخاب ظاهر مناسب برای هر پلتفرم پشتیبانی از همه ی ویژگی های اختصاصی رابط کاربری ریسپانسیوعدم اختصاصی سازی براساس پلتفرم های مختلف ایجاد ظاهر درست و مناسب برای هر پلتفرم نیاز به کار اضافی دارد پلاگین های در دسترس
اشتراک گذاری کدبالا – قابلیت استفاده ی مجدد تا 80 درصدبالا- اگر رابط گرافیکی برروی همه پلتفرم ها مشابه باشد. چنانچه رابط کاربری در پلتفرم ها متفاوت باشد، به آسانی تا 80 درصد می تواند به وسیله سی اس اس بدست آید.
عملکردقابلیت چندنخی امکان نمایش داده های بزرگ در لیست هاچندنخی با استفاده از افزونه ها یا اشیا در سی/جاوا برای اجرای موازی لیست های بزرگ یا ارائه تدریجی grid ها
عملکرد اختصاصیعملکرد با ثبات بالا روی iOS، اندروید و ویندوزفون، چنانچه به درستی پیاده سازی شوند.بالا، در صورتی که بر روی دستگاه های جدید پیاده سازی شوند- اما در دستگاه های قدیمی تر اندروید و آیفون4 ممکن است باشد
دسترسی به APIکاملکامل (با استفاده از پلاگین ها)
سرعت اجرا بر روی دستگاهسرعت راه اندازی بالازمان شروع برنامه ی اولیه طولانی است

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

ثبت دیدگاه

ایمیل شما نمایش داده نخواهد شد. لطفا فیلد های مرتبط را پر کنید.