نگاهی به مزایا و معایب Xamarin.Android – بخش ۱

چندی پیش به خاطر برنامه آندروید یکی از شرکت های دولتی شروع کردم به تحقیق و تحلیل برنامه نویسی آندروید توی محیط ها و زبان های مختلف، زمان خوبی بابت این موضوع گذاشتم میخوام اون نتایج رو براتون بصورت روزانه توی چند بخش ارائه کنم. تا دوستانی که میخوان شروع کنن به برنامه نویسی آندروید راحت تر بتونن انتخاب کنن.
بخاطر همین توی بخش اول از مزایا و معایب Xamarin Android شروع میکنیم.
 
حجم Package نهایی Xamarin.Android:
Xamarin هنگام ایجاد Package برنامه، روش‌های مختلفی را برای کاهش حجم آن به کار می‌برد که البته این روش‌ها همراه با حفظ کارآیی برنامه در حالت‌های Debug و Release می‌باشد.
یک برنامه‌ی Xamarin برای اجرا باید شامل: برنامه‌ی ما، کتابحانه‌های ارتباطی، محتویات، Mono runtime، اسمبلی‌های (BCL(Base Class Library باشد. برای مثال اگر شما همان مثال پیش فرض Hello work را که با ساخت Solution جدید ایجاد می‌شود، در نظر بگیرید، Package کامل آن بعد از ایجاد (build) به صورت زیر است:

hello_world_package_size_before_linker

 

واقعیت این هست که برای چنین برنامه‌ی کوچکی، 15مگابایت حجم زیادی به حساب می‌آید. بیشتر این حجم به دلیل کتابخانه‌ی کلاس‌های پایه (BCL) می‌باشد که شامل mscorlib.lib، system و Mono.Android هستند. این کلاس‌ها کامپوننت‌هایی را که برنامه‌ی ما برای اجرا به آن‌ها احتیاج دارند، فراهم می‌کنند. البته واقعیت این است که برنامه‌ی ما از تمام این امکانات استفاده نمی‌کند و می‌توان از خیلی از آن‌ها صرف نظر کرد.

وقتی شما برنامه‌ای را برای توزیع آماده می‌کنید، Xamarin پروسه‌ای را که به Linking معروف است، اجرا می‌کند. در این پروسه کدهایی که استفاده نشده‌اند حذف می‌شوند. به این ترتیب حجم کدهای برنامه را کاهش می‌دهند. در واقع بخش‌هایی از BCL را که استفاده نکرده‌ایم از Package نهایی حذف می‌کند. برای مثال پروژه‌ی “Hello Word”را در نظر بگیرید (پروژه‌ی پیش فرض). به دلیل آنکه ما از کلاس‌های خاصی استفاده نکرده‌ایم، مقدار زیادی از کدهای بلااستفاده‌ی BCL حذف می‌شوند. تصویر زیر حجم برنامه را مشخص می‌کند:

 


hello_world_package_size_after_linker

 

چه زمانی از Xamarin.Forms استفاده کنیم:

یکی از راه‌های ایجاد برنامه‌های بومی برای اندروید و iOS، استفاده از Xamarn.Android و Xamarin.iOS است. راه دیگر آن Xamarin.Forms است که بیشترین قابلیت اشتراک UI را دارا می‌باشد. در Xamarin.Forms ما می‌توانیم از XAML برای ایجاد UI استفاده کنیم. اما کی بهتر است از آن استفاده کنیم و چه وقت خوب نیست؟

مواردی که بهتر است از Xamarin.Forms استفاده کنیم:

 

  • برنامه‌های ورود اطلاعات (ِData Entry)
  • ایجاد نمونه‌های اولیه
  • برنامه‌هایی که به بازه‌ی وسیعی از قابلیت‌های بومی دستگاه مورد نظر احتیاج ندارد.
  • برنامه‌هایی که اشتراک کد برای ما مهمتر از نمای ظاهری و زیبایی برنامه باشد.

 

مواردی که بهتر است از Xamarin.Forms استفاده نکنیم:  

 

  • برنامه هایی که تعامل زیادی با کاربر دارد. 
  • تهیه‌ی برنامه‌هایی با ظاهر بسیار زیبا و پر رنگ و لعاب! 
  • برنامه‌هایی که نیاز به استفاده‌ی از بازه‌ی وسیعی از API‌های بومی را دارند. 
  • برنامه هایی که در آن‌ها UIهای سفارشی مهم‌تر از اشتراک کد می‌باشند. 

درباره نویسنده

ساسان سلام زاده هستم متولد 1368، دانشجوی ارشد هوش مصنوعی. برنامه نویس، طراح وب. یکی از رویاهای کودکیم ساخت یک ربات دستیار هست چیزی که بتونه ۹۰٪ کارهای روزانه رو انجام بده، یه استارت هایی در این خصوص زدم...

2 دیدگاه

شما میتوانید برای این مطلب دیدگاه ارسال کنید.


  • شما وقت زیادی گذاشتی به این نتیجه رسیدی که از اینجا کپی کنی یا برعکس؟
    http://www.dotnettips.info/post/2317/%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-%D9%85%D8%B2%D8%A7%DB%8C%D8%A7-%D9%88-%D9%85%D8%B9%D8%A7%DB%8C%D8%A8xml-xamarin-android
    یکی این وسط خیلی روش زیاده!

    نام 9 سال قبل پاسخ


    • خیلی خوشحالم بابت گذاشتن کامنتتون توی سایت و مهمتر اینکه کامنتتون رو تایید کردم تا بدونین که من مشکلی با این حرفاتون ندارم
      بهتر بود شما هم شجاعت داشتین و خودتون رو معرفی میکردین نه اینکه با نام تست و … دیدگاه بگذارید
      دوست عزیز تاریخ های ارسال مطلب هر دو سایت رو چک کنید شاید جوابتون رو بگیرید.
      قرار بود من این توضیحات رو در چند بخش ارائه کنم بخاطر مشغول شدن به کارهای دیگه باقی مطلب ماند
      حتی اگر کمی فارسی بلد باشین در عنوان مطلب هم نوشته شده بخش 1 یعنی مطلب ادامه داشت….
      در سایتی که معرفی فرمودید همچین موردی هست؟!
      از کپی کردن مطلب در سایت مربوطه چه تضمینی دارید؟
      در کل برای رفتار بچگانه شما متاسفم
      منتظر پاسختون هستم

      ساسان سلام زاده سلماسی 9 سال قبل پاسخ


یک پاسخ ارسال کنید.


+ شش = 10