با پیشرفت ریزپردازندهها میتوان برنامههای موبایل را بر روی چندین پلتفرم اجرا کرد. رویکرد های مختلفی برای ساخت اپلیکیشن موبایل مانند flutter، Native، WebViews، React Native، Progressive Web Appوجود دارد. در آینده، اپلیکیشن های موبایل که با Flutter یا React Native توسعه یافتند روی گوشی های اندروید، آیفون، مک و همچنین رایانه های شخصی کار می کنند.
React Native
معمولاً برای اندروید باید برنامه موبایل خود را با استفاده از جاوا برنامه ریزی کنید و برای iOS باید از Swift/Objective C استفاده کنید. React Native از React JS با کتابخانه UI بومی و APIهای بومی برای نوشتن کد پایه یک برنامه کاربردی که می تواند بر روی هر دو سیستم عامل iOS و Android اجرا شود، استفاده می کند بنابراین دارای سازگاری بین پلتفرم هاست. کد دارای قابلیت استفاده مجدد است و می توان از اجزای از پیش ساخته شده آن استفاده نمود. از مزایای این پلتفرم آن است که همواره درحال بهبود یافتن است و همیشه نمیتوان گفت در یک حالت قرار دارد.
WebViews
رابط کاربری و موتور دو جزء اصلی یک مرورگر وب هستند. پلاگین ها، منو و صفحه خروج همگی بخشی از رابط کاربری هستند. موتور جایی است که کد به نمایش بصری که در رابط کاربری می بینیم تبدیل می شود. هنگامی که موتور از صفحه ما حذف شود آنگاه WebView قابل رویت است. هنگامی که توسعه دهندگان میخواهند برنامه ای را بسازند دو راه دارند. راه اول آن است که از کد با WebView استفاده کنند و یا با استفاده از سازنده اپلیکیشن موبایل، یک اپلیکیشن موبایل برای iOS و Android بسازند. نگهداری برنامه های وب نسبتاً آسان است زیرا از یک کد مشترک در چندین سیستم عامل تلفن همراه استفاده می کنند. برنامه های وب به پروتکل های استاندارد سیستم عامل پایبند نیستند و نیازی به تأیید اپ استور ها ندارند. آنها می توانند در هر زمان و در هر قالب منتشر شوند. برنامه های وب هنگام استفاده از ویژگی های دستگاه و سخت افزار، دامنه بسیار کمتری دارند. سرعت برنامه های وب کندتر و کمتر از اپلیکیشن های native است.
Flutter
تفاوت عمده بین Flutter و React Native این است که Flutter به طور کامل از جاوا اسکریپت در زمان اجرا صرف نظر می کند و کدهای Native را برای چندین پلتفرم کامپایل می کند. Flutter یک فریمورک یا کتابخانه نیست بلکه یک بسته SDK برای توسعه نرمافزار است. SDK مجموعهای از ابزارها، کتابخانهها، اسناد، APIها، گاهی اوقات فریمورکها و غیره است. بسیاری از کسبوکارهای بزرگ Flutter را برای طراحی اپلیکیشن موبایل خود انتخاب کردند زیرا قادر به ارائه تجربهای عالی برای مشتری هستند. شرکت های معروفی همچون Toyota، BMW ،eBay و غیره از این بسته نرم افزاری استفاده میکنند. با امکاناتی مانند Hot reload، میتوان تغیرات را سریع بر روی یک اپلیکیشن اعمال کرد. برنامه هایی که در فلاتر ایجاد می کنید بسیار نرم و یکدست هستند، یعنی در زمان پیمایش هنگ نمیکنند. اما برنامه های Flutter هنوز توسط مرورگر وب پشتیبانی نمی شوند.
Progressive Web App
Progressive web app یا به اختصار PWA مانند وب سایتی است که از فناوری های مدرن و جدید وب استفاده می کند اما ظاهر و کارکرد آن شبیه یک اپلیکیشن معمولی است. وب سایتی است که با استفاده از مرورگرهایی مثل کروم و فایرفاکس وارد آن میشویم و سپس مانند یک اپلیکیشن است. این روش به دلیل آنکه در هر دستگاه و سیستم عاملی قابل استفاده هستند این نام را به خود اختصاص دادند. برخلاف اپلیکیشن های Native، نیازی به نصب و مراحل پیچیده دانلود ندارند و با URL میتوان آن ها را به اشتراک گذاشت.
Cross-Platform
بازار اپلیکیشنها بین اندروید و IOS بطور مساوی تقسیم میشود. ساخت اپلیکیشن های مجزا برای هر دو پلتفرم نیاز به بودجه کافی دارد و همه شرکت ها آن را ندارند. توسعه پلتفرمهای بومی نمیتواند سرعت یکسانی برای هر دو سیستمعامل درنظر بگیرد. همچنین توسعه دهندگان یک برنامه کاربردی برای یک سیستم عامل خاص می سازند و به ابزارها و زبان های برنامه نویسی که به طور خاص مثل Kotlin، Objective-C، Swift و غیره تکیه میکنند. این رویکرد دارای چندین مزیت مانند کارایی با توجه به زمان و هزینه است. بهروزرسانیهای بعدی و تغییراتی که در اپلیکیشن ایجاد میشوند، میتواند به صورت همزمان بر روی چندین پلتفرم اعمال شود اما استفاده از امکانات پیشرفته و حرفه ای در اپلیکیشن های کراس پلتفرم مصرف باتری را بیشتر کرده و نیازمند فضای خالی بیشتری در دستگاه است.
Hybrid
در اپلیکیشن ها چند پلتفرم توسعه دهندگان میتوانند یک بار کد بنویسند و سپس از آن در پلتفرمهای مختلف مجددا استفاده کنند. توسعه اپلیکیشن بصورت هایبرید به این صورت است که فناوریهای بومی و وب را ترکیب میکند. برای این کار باید کدهای نوشته شده در یک زبان توسعه وب مانند HTML، CSS یا جاوا اسکریپت را در یک برنامه بومی بگذاریم. شباهت این پلتفرم با cross-platform در اشتراک گذاری کد است. از نظر عملکرد، اپلیکیشن های هایبرید با اپلیکیشن های cross-platform یکسان نیستند. از آنجایی که برنامههای هایبرید از یک پایه کد واحد استفاده میکنند، برخی از ویژگیها مختص یک سیستمعامل خاص هستند و در سایرین به خوبی عمل نمیکنند.