استفاده از موبایل در دهه هی گذشته دچار تغییراتی زیاده شده طبق آمار اعلام شده حدود ۲٫۲ میلیارد گوشی هوشمند در دنیا در حال استفاده می باشد, در این میان روش و ابزار های برنامه نویسی برای موبایل ها هم تغییرات زیادی کرده اند تمام گوشی های هوشمند دنیا از یکی از سه سیستم عامل ویندوز فون, اندروید و یا iOS استفاده می کنند. تا سال ها قبل برای توسعه اپلیکیشین باید از زبان های نیتیو استفاده می شد برای مثال از زبان جاوا برای اندروید و از سویفت برای iOS به همین دلیل برنامه نویسی اپلیکیشن برای شرکت ها هزینه زیادی ایجاد می کرد چون باید دو تیم مختلف برای هر پلتفرم استخدام می کردند.
با پیدایش فریموورک های چندسکویی که به افراد اجازه میداد با یک زبان برنامه نویسی برای سیستم عامل های مختلف برنامه نوشت این هزینه های اضافی از شرکت ها کم شد فرمیوورک هایی مثل فون گپ,زامارین,Flutter,React Native و…
در مقاله قصد داریم که با هم دیهگه مقایسه ای بین زامارین و Flutter داشته باشیم.
زامارین Xamarin
زامارین در سال ۲۰۱۱ پا به عرصه گذاشت و از زبان محبوب سی شارپ برای ساخت اپلیکیشن های خود استفاده می کند. این فریموورک در سال ۲۰۱۶ توسط مایکروسافت خریداری شد. زامارین به توسعه دهندگان امکان دسترسی به API نیتیو هر سیستم عامل و می دهد.
زامارین هم اکنون بصورت متن باز در اختیار همگان قرار دارد.
فلاتر Flutter
در مورد فلاتر قبلا صحبت کردیم.( فلاتر چیست) اما اگر بصورت مختصر توضیح دهیم فلاتر فریموورک توسعه یافته توسط گوگل می باشد که بصورت متن باز ارائه شده است و از زبان برنامه نویسی دارت که مخصوص خود گوگل است استفاده می کند.
مقایسه Flutter و Xamarin
فلاتر محصوص جدیدی هست که نسخه بتای آن در ژانویه سال ۲۰۱۸ منتشر شد و به همین دلیل توسعه دهندگانی که از زامارین استفاده می کنند بسیار بیشتر از فلاتر می باشند. طبق آمار حدود ۷٫۲ درصد کاربران Stackoverflow از زامارین استفاده می کنند و بنا به گفته مایکروسافت جامعه زامارین ۱٫۲ میلیون کاربر دارد اما Flutter از چنین آماری طبیعتا برخوردار نیست.
تصویر زیر مقایسه ای کوچک بین دو فریموورک را نشان می دهد.
پرتابل بودن
از Flutter برای ساخت اپلیکیشن های اندروید و iOS فقط می توان استفاده کرد اما زامارین برای ویندوز هم استفاده می شود. اکوسیستم بزرگ تر زامارین یک مزیت نسبت به فلاتر می باشد. مشکل دیگر این هست که اپلیکیشن های Flutter قابلیت پرتابل بودن یا جرا شدن روی سیستم عامل ویندوز فون را ندارند. هرچند که ویندوز فون بخش بسیار کوچکی را تشکیل می دهد اما شاید در آینده این سهم افزایش پیدا کرد.
همچنین Flutter از سیستم عامل های ۳۲ بیتی پشتیبانی نمیکند این به این معنی است که اگر برای گوشی های قدیمی مثل آیفون۵ قصد طراحی اپلیکیشن داشته باشید باید از زامارین استفاده کنید.
زبان برنامه نویسی
فریموورک زامارین از زبان محبوب C# استفاده می کند که افراد خیلی زیادی با آن آشنا هستند در آن طرف میدان فلاتر از زبان برنامه نویسی جدید دارت استفاده می کند. دارت زبان نسبتا کمتر شناخته شده ای است که گوگل چند سال قبل آنرا معرفی کرده. دارت بسیار بسیار شبیه به زبان جاوا هست و اگر با جاوا آشنایی داشته باشید دارت ۱-۲ روز بیشتر زمان شما را نمیگیرد.
دسترسی نیتیو به سیستم عامل
در فلاتر کد های دارت توسط AoT به نیتیو تبدیل می شوند اما هنوز هم به Dart VM نیاز دارند. علت این کار هم این هست که سیستم عامل iOS از JIT پشتیبانی نمی کند. فلاتر همچنین به شما اجازه می دهد که پلاگین های مخصوص به خود را بسازید.
فریموورک فلاتر به تمام API ها و سرویس دسترسی دارد مثل انواع سنسور ها.
در زامارین کد های C# به کد ماشین تبدیل می شود سپس در پلتفرم اندروید زامارین از JIT استفاده می کند و در iOS ازAoT .
زامارین از API های دات نت برای دسترسی به سرویس ها کمک می گیرد.
طراحی UI
زامارین از کامپوننت های نیتیو برای رابط کاربری استفاده می کند که همین باعث می شود با بروزرسانی هر پلتفرم مدت ها طول بکشد تا زامارین کامپوننت های خود را آپدیت کند به همین دلیل زامارین بیشتر برای بخش منطقی برنامه مناسب هست و برای ساخت اپلیکیشن های با UI متوسط به بالا و سنگین به هیچ وجه مناسب نیست.
اما فلاتر از ویجت های درونی خود استفاده می کند و از کامپوننت های نیتیو پشتیبانی نمی کند و این ویجت ها به المان های رابط کاربری تبدیل می شوند. فلاتر طیف وسیعی از ویجت ها و لایه ها را در اختیار شما می گذارد و از انیمیشن و افکت های مختلف پشتیبانی می کند که به شما اجازه ساخت رابط کاربری ۲ بعدی را به راحتی میدهد.
فلاتر به دلیل تازه بودن هنوز بخش UI آن در حال توسعه می باشد و از پتانسیل های بالایی در آینده برخوردار هست.
تجربه برنامه نویسی
Flutter از قابلیت hot reload بهره میبره که بدون اجرا و کامپایل کردن برنامه میتونید تغییرات خودتون و ببینید و اگر برنامه به خطایی خورد و دوباره اجرا کردید مقدار state های تغییری پیدا نمی کند که باعث می شو برنامه نویسی خیلی سریع تر و لذت بخش تر باشد. همچنین در Flutter از زبان های نیتیو مثل کاتلین,جاوا,سویفت نیز میتونید استفاده کنید.
سایز فایل برنامه
در ابتدا انتشار Flutter سایز فایل apk خروجی حدود ۴۰مگابایت بود در حالی که در آن زمان زامارین سایزی در حدود ۲۰مگابایت ایجاد میکرد. امروز با گذشت زمان سایز apk در Flutter به ۴مگابایت رسیده و زامارین ۷مگابایت.
منبع: مرجع فارسی آموزش Flutter