آموزش زامارین نیتیو



به طور معمول، برنامه های Android در جاوا تولید می شوند و برنامه های iOS به صورت Swift و Objective-C نوشته می شوند. با این وجود ، ابزار جایگزین دیگری نیز وجود دارد که به جای آن می توان از آنها استفاده کرد. Xamarin ، React Native و Ionic نمونه های رایج از چنین ابزارهایی هستند. هدف آنها چیست؟ چه چیزی آنها را متفاوت می کند؟

 

کراس پلت فرم(Cross platform )

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

یکی از راه حل ها توسعه دو برنامه کاملاً جداگانه است: یکی در جاوا برای اندروید و دیگری در Swift یا Objective-C برای iOS. این رویکرد دارای مزایای آن از قبیل:

1-دریافت ویژگی های جدید از سیستم عامل مورد نظر و شتیبانی آن تا زمانی که این سیستم عامل وجود دارد.

2-مطابقت با سیستم عامل مورد نظر و دارای UI و UX کاملا نیتیو. و اینکه تعامل کاربر با این برنامه بیشتر است.

با این حال ، این رویکرد یک نقطه ضعف جدی دارد: شما باید همان دو کد را دو بار بنویسید! اگر دو توسعه دهنده مختلف برنامه های iOS و Android را ایجاد کنند ، شرایط بدتر می شود زیرا احتمالاً دو نفر ویژگی مشابه را با کمی تفاوت متفاوت پیاده سازی می کنند.

Xamarin ، React Native و Ionic این مسئله را برطرف کرده و ابزارهای قدرتمندی را برای رسیدن به یک هدف ارائه می دهند: استفاده از یک پشته فن آوری برای توسعه برنامه های iOS و Android. به نظر می رسد این ایده ساده است ، اما دارای معایبی است:

-توسعه دهنده نیازی به یادگیری دو فناوری کاملاً متفاوت ندارد. البته آنها هنوز هم باید از ویژگی ها و محدودیت های هر پلتفرم بدانند ، اما نیازی به نوشتن به دو زبان مختلف و طراحی GUI با استفاده از ابزارهای مختلف نیست.

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

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

با این حال ، قیمت تمام این ویژگی ها چقدر است؟ 

 


Xamarin فریم ورک C # است در حالی که React Native و Ionic مبتنی بر JavaScript / TypeScript هستند.

از زامارین به روش های مختلفی می توان استفاده کرد. یک گزینه این است که تا حد ممکن حفظ کنید و فقط زبان را به C # تغییر دهید. یعنی شما با استفاده از ابزارهای استودیوی Xamarin Studio XIB ، استوری بورد و پرونده های اندرویدی را طراحی می کنید و به جای جاوا یا سوئیفت کد آن را به زبان C # می نویسید. iOS XIB و داشبورد  را نیز می توان در Xcode طراحی کرد.  کلیه چارچوب های بومی  راحتی قابل دسترسی است. کدی که مناسبUI نیست می تواند بین پروژه های iOS و Android به اشتراک گذاشته شود. اگرچه ، اگر می خواهید تمام قدرت Xamarin را تجربه کنید ، گزینه دیگری وجود دارد: می توانید از cross-platform Xamarin.Forms استفاده کنید تا حتی UI را برای دو سیستم عامل به طور هم زمان طراحی کنید.

از طرف دیگر ، React Native و Ionic زبانهای مبتنی بر JavaScript را هستند. اما چه چیزی آنها را متفاوت می کند؟

خوب ، تفاوت اصلی در این است که React Native بیشتر شبیه Xamarin عمل می کند: شما برای ساختن رابط کاربری گرافیکی از یک زبان قالب ویژه استفاده می کنید . در عوض ، Ionic به هیچ وجه از ابزارک های بومی استفاده نمی کند. در عوض ، فقط یک صفحه وب نوشته شده در HTML را نشان می دهد که از طراحی ابزارک های بومی تقلید می کند. اگر عمیق تربررسی کنید ، React Native از یک رویکرد اصلی استفاده می کند: UI را به عنوان تابعی از وضعیت فعلی اعلام می کنید. این کار React Native اکنون یافتن قسمتهای تغییر یافته UI در هر به روزرسانی و دوباره استفاده مجدد آنها است. در صورت طرح بندی های پیچیده ، می تواند موارد را بسیار ساده کند ، زیرا منطقی که UI را هنگام تغییر حالت به روز می کند ، دیگر روی همه کد پخش نمی شود.

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

 

  Xamarin React Native Ionic
زبان #C JavaScript
TypeScript
ویجت ها دارد دارد ندارد
مباحث و طرح های کلی تقریبا Native مبتنی بر توابع پرتابل و قابل حمل بودن

 


آخرین ارسال ها

آخرین وبلاگ ها

آخرین جستجو ها