انتخاب بین اپ های نیتیو، وب و کراس پلتفرم احتمالا یکی از سردردهای هر بیزینس و کسب و کار نوپا برای بهترین اپلیکیشن موبایل است.
هرکدام از این دسته ها معایب و مزایایی دارد که پیشتر به مقایسه بین نیتیو و وب اپلیکیشن ها پرداخته بودیم. در این مقاله به مطالعه جزئی تر کراس پلتفرم ها میپردازیم.
انواع موبایل اپلیکیشن ها
به طور کلی اپ های نیتیو برای بیزینس هایی که نیاز به اپلیکیشنی قوی، ریسپانسیو و خاص دارند مناسب هستند و وب اپلیکیشنها برای پروژه هایی به نسبت ساده تر و چند منظوره تر مناسبت هستند. کراس پلتفرم ها جایی بین این دو قرار دارند، برای بعضی کاربری ها بهترین انتخاب و برای بعضی دیگر بدترین هستند.
شاید بزرگترین مزیت کراس پلتفرم ها تجمیع پلتفرم iOS و Android در یک راهکار برنامه نویسی باشد که هم از نظر زمانی و هم اقتصادی صرفه بالایی دارد. عدم تعامل مستقیم این اپلیکیشن ها با سیستم عامل و سخت افزار و یکپارچه نشدن این اپلیکیشنها با تنظیمات کاربر روی دستگاه از معایب کراس پلتفرم ها هستند که در انتخاب شدن آنها برای بعضی کسب و کارها مشکل درست کرده است.
وب اپلیکیشن
اولین راهکار برای توسعه کراس پلتفرم ها، استفاده از Web View بود که با کد نیتیو خیلی کمی که داشتند و استفاده از JavaScript، HTML و CSS نوشته میشدند و قابلیت دسترسی به ویژگی های دستگاه مثل دوربین را به طور محدود داشتند.
ابزارهایی مثل Phonegap، Cordova و ionic این امکان را به توسعه دهنده ها میدادند که فقط با دانش وب اپلیکیشن هم برای iOS و هم برای اندروید طراحی اپلیکیشن کنند.
که البته اپلیکیشن ها ضعیف و همراه با لَگ بودند.
زامارین – Xamarine
راهکار دیگر در راستای کراس پلتفرم ها استفاده از فریمورک زامارین Xamarine بود.
زامارین در سال 2011 ایجاد شد و در ابتدا پلاگینی برای توسعه اپ برای سیستم عامل macOS با زبان C# بود.
سال 2013، نسخه ی 2 زامارین با IDE یا محیط برنامه نویسی مخصوص که با Visual Studio سازگار بود برای توسعه ی اپلیکیشن برای اندروید، iOS و ویندوز، معرفی شد. در سال 2016 هم مایکروسافت مالک شرکت Xamarin شد.
زامارین حرکت بزرگی برای اپلیکیشن های کراس پلتفرم بود ولی کندی اپلیکیشن ها و حجم بالای اپ های خروجی و سخت بودن پیاده سازی رابط کاربری UI از معایباش بود.
فریم ورک React Native
این فریم ورک خروجی تلاش بی وقفهی فیسبوک برای استفاده تمام وقت از توسعه دهنده های وب اش و یکسان کردم دپارتمان های اندروید و iOS اش بود. React ابتدا کتابخانهی Open Source برای UI بود و فیسبوک با استفاده از ویژگیهای آن فریم ورک React را در سال ۲۰۱۵ معرفی کرد.
این فریم ورک به گفتهی خود فیسبوک برای تولید اپلیکیشن های نیتیو برپایه زبان های جاوا اسکریپت و کتابخانهی React استفاده میشود و اپ خروجی از آن میتواند به طور کامل از ویژگی های پلت فرم استفاده کند.
از ۲۰۱۸ تا همین امروز React همچنان در حال رشد است و بیزینس های مختلفی از UBER تا Bloomberg اپلیکیشن هایشان را به این پلتفرم منتقل کرده اند.
و اما فریم ورکی جدید که گوگل برای عقب نموندن از عرصهی کراس پلتفرم ها در سال ۲۰۱۷ معرفی کرد.
فلاتر – Google Flutter
اولین ورژن این فریم ورک سال ۲۰۱۵ معرفی شد، مختص اندروید بود و Sky (آسمان) نامیده میشد. فلاتر کاملا بر اساس زبان برنامه نویسی دارت Dart نوشته شده و خب این کار رو برای بعضی از توسعه دهندههای ایرانی شاید مشکل کنه…چون زبان کمتر شناخته شدهای نسبت به React، JS و Html هست.
فلاتر به توسعه دهنده اجازه میده که به سادگی اپ های زیبا با سرعت مناسب و کاربری عالی برای iOS، Android و فوشیای گوگل (Google Fuschia) طراحی کند.
از زمانی که فلاتر توسط گوگل در کنفرانس زبان برنامه نویسی دارت معرفی شد، شهرتش در Github و جوامع برنامه نویسی در حال افزایش است و به نظر میرسد که محدودیت ها و برتری علنی React دلیل کافی برای کنار گذاشته شدن آن نبودند.
مهمترین مزیت فلاتر از دید توسعه دهندهها، سرعت Load بالای تغییراتاش است. توسعه دهنده دیگه لازم نیست منتظر دیدن نتیجه Bug Fix یا تغییراتی در Feature در اپ باشد.
مزیت دیگر فلاتر، با جای بحث زیاد، زبان دارت Dart هست. دارت یه زبان شی گراست و با ویژگیهایی مثل کامپایل به حالت Just in Time یا JIT به فلاتر قابلیت لود شدن سریع بدون نیاز به بیلد گرفتن دوباره در حین توسعه را میدهد. در یک کلام، فلاتر یعنی کد کمتر!!
به طور کلی به نظر میرسه که نهتنها انتخاب بین اپلیکیشن نیتیو، وب اپ و کراس پلتفرم کار مشکلیه بلکه اگه بیزینسی به سمت کراس پلتفرم ها گرایش پیدا کرده، انتخاب یکی از فریمورک ها هم خودش پروژهی عظیمی باشه.