cross-platform توسعه تلفن همراه در سال ۲۰۲۰ - روند و چارچوب

ترجمه و تالیف : پژمان آزادرنجبر
تاریخ انتشار : 19 فروردین 99
خواندن در 5 دقیقه
دسته بندی ها : برنامه نویسی

توسعه چند سکویی در سال 2020

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

وضعیت فعلی صنعت موبایل

ابتدا بیایید درباره وضعیت فعلی بازار دیجیتال بحث کنیم. طبق گزارشی اجمالی جهانی دیجیتال در سال 2019 در هر ثانیه 11 نفر به تعداد کل کاربران اینترنت اضافه می‌شود. به این ترتیب هر روز، به افراد آنلاین وب حدوداً 1میلیون اضافه می‌شود که می‌توانند کاربر موبایل یا دکستاپ باشند.

چه چیزی از این جذاب‌تر که کاربران موبایل با رشد فزاینده، ماه به ماه در حال رشد است.

cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

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

 براساس گزارش سال 2019 Statista، درآمد جهانی برنامه‌های موبایل در سال 2019 بالغ بر 461 میلیارد دلار آمریکا بوده و تا سال 2023 در آمد حاصل از دانلود‌ها، پرداخت های درون برنامه‌ای و تبلیغات درون برنامه‌ای بیش از 935 میلیارد دلار خواهد رسید.

مراحل پیش‌رو برای توسعه‌دهنده موبایل

یکی از اولین قدم‌ها، تصمیم‌گیری در مورد سیستم عامل تلفن همراه است - که به هر حال ، یک دهه پیش چندان آسان نبود، وقتی Android iOS ،Microsoft ،RIM و Symbian همه گزینه‌هایی مناسب بودند.

cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

خوشبختانه امروز این انتخاب بسیار ساده‌تر است؛ زیرا تنها بازیکنان اصلی باقی‌مانده Android و iOS هستند که در کنار هم حدود 98٪ از کل سهم بازار سیستم عامل موبایل را تشکیل می‌دهند. بنابراین هیچ یک را نمی‌توان دست‌کم گرفت.

برای هدف قرار دادن این بازار بزرگ و جذاب سه راه وجود دارد.

هر سیستم‌عامل یک اپلیکیشن جداگانه

همان‌طور که حدس زدید، ساخت App با زبان های تخصصی هر یک از پلتفرم‌ها Java یا Kotlin برای Android و Objective-C یا Swift  برای IOS توسعه برنامه بومی هم یک مزیت و هم یک عیب است.

از طرفی توسعه بومی باعث دسترسی کامل به تمامی ویژگی‌های خاص هر سیستم‌عامل و شخصی‌سازی نامحدود را فراهم می‌کند و از وقوع هرگونه مشکلی پیشگیری می‌کند.

اما از طرفی دیگر برای اینکه دسترسی به کاربران هر دو سیستم‌عامل داشته باشید باید برنامه‌های جداگانه بسازید که قطعا نیاز به زمان، پول، و تلاش بیش‌تری دارد.

وب اپلیکیشن پیش‌رونده یا PWA

صبر کنید! ما درباره موبایل صحبت نمی‌کنیم؟ درست فکر کردید اما PWA  به خوبی کارهای یک موبایل را به خوبی انجام می‌دهد. یک مثال خوب وبسایت‌هایی هستند که رفتار برنامه‌های بومی را تقلید می‌کنند و کارهایی مانند پوش نوتیفیکشن، اجرای آفلاین که به راحتی با افزودن سایت مورد نظر به صفحه اصلی موبایل می‌توانند انجام دهند اما مانند راه‌های دیگر بی‌عیب و نقص نیستند. مثلا باتری بیش‌تری مصرف می‌کنند و به همه ویژگی‌های سیستم عامل مربوطه دسترسی ندارند.

یک اپلیکیشن برای هر دو سیستم‌عامل (cross-platform)

پلتفرمی وجود دارد که امکان پوشش هر دو سیستم عامل را با یک کد مشترک امکان‌پذیر می‌کند با اینکه به‌صورت کامل ظرفیت زبان محلی را ارائه نمی‌دهد ولی اگر نگاه دقیق‌تری به آن داشته باشید متوجه می‌شوید به لطف استفاده از رابط های بومی همان سیستم‌عامل تجربه نزدیک به حالت بومی را ارائه میدهد.

مزایا و معایب توسعه cross-platform چیست؟

cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

چگونه توسعه اپلیکیشن cross-platform برای کسب و کار شما مفید خواهد بود؟

بازار بزرگتر

در حالی‌که هر فردی سیستم عامل مورد علاقه خود را دارد نباید اجازه بدهید تا این تمایلات شخصی در موفقیت کسب و کار شما موثر واقع شود شما با مورد توجه قرار دادن علاقمندان به هر دو سیستم‌عامل Android و iOS می‌توانید به مرور زمان درآمد بیش‌تری را کسب کنید.

سورس کد مشترک

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

 توسعه سریع‌تر و ارزان‌تر

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

حجم کاری کم‌تر

 هنگام کار روی یک پروژه cross-platform، هنوز هم توصیه می‌شود که توسعه‌دهندگان با درک عمیق‌تر از Android و iOS استخدام کنید. چرا؟ فقط به یک دلیل، تخصص آن‌ها در حین انتشار برنامه در Google Play و App Store بسیار مفید خواهد بود زیرا هر دو شرایط بسیار خاصی دارند. با این حال، توسعه cross-platform نیاز به یک تیم توسعه‌دهندگان نسبتاً کوچک‌تر را دارد. به ویژه در صورت برون سپاری(مانند فریلنسر ها) از این مزیت قدردانی خواهید کرد زیرا رویکرد cross-platform برای تیم کوچک‌تر مزیت های فراوانی خواهد داشت.

ثبات در پلتفرم

شکی نیست که Android و iOS از نظر UX و UI تفاوت چشم‌گیری دارند. با توسعه برنامه cross-platform، بیش‌تر این اختلافات به طور خودکار رفع می‌شود و باعث می‌شود ناسازگاری‌های طراحی کم‌تر اتفاق بیفتد.

آیا توسعه cross-platform همیشه توصیه می‌شود؟

با وجود تمام مزایای ذکر شده در بالا، توسعه برنامه cross-platform همیشه راه حل نهایی نیست! حتماً شما هم دچار شک شده‌اید. اشکال اصلی این روش شامل موارد زیر است:

امکان پایین آمدن کارایی

بر کسی پوشیده نیست که زمان طلاست! و هر چه مدت زمان بیش‌تری طول بکشد تا برنامه شما دانلود و یا اجرا شود، کاربران زمان بیش‌تر از دست می‌دهند و در نتیجه در مدت طولانی شما نیز پول بیش‌تری از دست می‌دهید. برنامه‌های cross-platform سریع‌تر ساخته می‌شوند. با این حال، موقعیت‌هایی وجود دارد که ممکن است کندتر از همتایان بومی خود کار کنند. اگر می‌خواهید یک بازی یا برنامه چت تصویری پیچیده ایجاد کنید، برای مثال با React Native یا Flutter به اندازه فناوری‌های بومی خوب کار نمی‌کنند و سر انجام ممکن است شما را سرخورده کنند.

تفاوت‌های UI و UX 

موضوع دیگر مربوط به رابط کاربری گرافیکی است. اگر نگاه دقیق‌تری به برنامه‌های Android و iOS بیندازید، متوجه می‌شوید که از نظر هدایت صفحه، دکمه‌ها، لیست‌ها و غیره متفاوت هستند، توسعه دهندگان باید هنگام ساخت یک برنامه تلفن همراه cross-platform، از این اختلافات آگاه باشند. و تلاش کنند محصول نهایی برای طرفداران هر دو سیستم‌عامل کاربر پسند باشد و در غیر این صورت، ممکن است معلوم شود که رویکرد cross-platform در زمان زیادی صرفه‌جویی نمی‌کند!

Frameworkهای Cross-platform برای موبایل در سال 2020

توسعه برنامه تلفن همراه cross-platform دارای جوانب مثبت و منفی است که اشاره شد. تقاضای روزافزون برای App موبایل cross-platform باعث شده است که این روزها دریایی از ابزارهای مختلف در دسترس توسعه‌دهندگان قرار بگیرد.

می‌دانیم که انتخاب یکی می‌تواند باعث سردرد شما شود. به همین دلیل در این راهنما تنها به برجسته‌ترین چارچوب‌های توسعه تلفن همراه متقابل متمرکز می شویم: React Native، Flutter، NativeScript و Xamarin.

cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

برای اینکه بینش بیش‌تری نسبت به آنچه هر یک از این ابزارها که کدام گزینه مناسب‌تری برای توسعه نرم‌افزار در سال 2020 است جدول زیر توجه کنید:

cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

React Native: جوانب مثبت و (بسیار کمی) منفی

در حالی‌که React Native بی عیب و نقص نیست (به عنوان مثال، پیاده‌سازی آن به دانش پایه‌ای در مورد اجزای خاص پلتفرم نیاز دارد)، برخی از بزرگ‌ترین شرکت‌های جهان به آن اعتماد کرده‌اند.

cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

مزایای استفاده از React Native شامل موارد زیر است:

-زمان و راندمان هزینه

-نگاه تقریبا بومی و UX 

-عملکرد نزدیک به یک برنامه بومی 

-منابع آموزشی زیاد و قوی

جوانب مثبت و منفی :Flutter

چه چیزی باعث شده این شرکت‌ها Flutter را انتخاب کنند؟ ممکن است یک یا چند مزیت مانند موارد زیر باشد:

- مستندات جامع 

- نرخ پاسخگویی زیاد App

- ویژگی hot-reloading که همکاری طراح و توسعه‌دهنده را تسهیل می‌کند

- Pixel-perfect UI و widget‌های قابل تنظیم که احساس واقعی بومی را تداعی می‌کند.

NativeScript: 

ممکن است این روزها NativeScript به اندازه React Native یا Flutter صحبت نشود - اما هسته اصلی برنامه ها زیر را تشکیل داده:

  cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

چه چیزی باعث می‌شود NativeScript به عنوان یک چارچوب توسعه تلفن همراه cross-platform توجه شود؟

- عملکرد بی‌نظیر به لطف دسترسی کامل به API بومی

- رابط کاربر بومی سیستم عامل

- سهولت در یادگیری

Xamarin

اگر می‌خواهید محصول انقلابی خود را شروع کنید، React Native و Flutter تنها راه‌حل‌های موجود نیستند. یک چارچوب جایگزین که ممکن است درست برای تجارت شما در ابتدای دهه 2020 شود، زامارین است. این چارچوب منبع‌باز، در سال 2011 ایجاد شد (که آن را به قدیمی‌ترین موجود در این لیست تبدیل می کند) و پنج سال بعد که توسط مایکروسافت تصاحب شد، امروز دارای بیش از 60 هزار مشارکت کننده در توسعه است.

Xamarin. Native و Xamarin. Forms: دو رویکرد متفاوت برای عملکرد و رابط کاربری

آنچه که زامارین را از سایر فریمورک‌ها متمایز می کند این است که دو راه برای ساخت برنامه‌های کاربردی موبایل متقابل پلتفرم ارائه می دهد: Xamarin Native (که به آن Xamarin.Android/iOS نیز گفته می شود) و Xamarin.Forms.

Xamarin.Native با استفاده از کنترل‌های رابط بومی، تقریبا عملکرد بومی را امکان پذیر می‌کند. 

Xamarin.Forms بیش‌تر بر روی به اشتراک گذاشتن کد تمرکز دارد تا دلیل منطقی در کسب و کار، که منجر به افزایش نسبت استفاده مجدد از کد (با Xamarin، توسعه‌دهندگان می توانند تا 96٪ از کد C# خود، را دوباره استفاده کنند) و منطقا باعث کاهش عملکرد کد از طرف دیگر خواهد شد.

بررسی محبوبیت

وقتی بحث استفاده در میان باشد میبینید که نتوانسته توجه شرکت‌های مشهور را به خود جلب کند.

cross-platform توسعه تلفن همراه در سال ۲۰۲۰-روند و چارچوب

چند مورد از مزایای استفاده از این چارچوب ، مانند:

-اکوسیستم کامل توسعه 

-پشتیبانی کامل از سخت‌افزارهای مختلف

-درصد بالای استفاده مجدد از کد و UX تقریباً بومی

-ثبات: که توسط پشتیبانی مایکروسافت تضمین می شود.

آیا 2020 سال توسعه برنامه cross-platform است؟

هم بله و هم خیر- همه این‌ها به اهداف تجاری، بودجه و محدودیت‌های زمانی شما بستگی دارد. با این وجود، cross-platform مسیری است که نباید آن را نا دیده گرفت به ویژه اگر در مورد React Native و Flutter صحبت کنیم.

React Native یک چارچوب بالغ و پایدار است که یکی از محبوب‌ترین زبان‌های برنامه‌نویسی استفاده می‌کند و بر حمایت بی دریغ از یک جامعه توسعه‌دهنده بزرگ می‌بالد. از طرف دیگر، Flutter فناوری سریع در حال تحول است که فارغ از جوانی نسبت به React Native، در حال حاضر موفق به بدست‌آوردن قلب بسیاری از توسعه‌دهندگان در سراسر جهان شده است.

بدون توجه به این که، آیا React Native ،Flutter یا هر چارچوب دیگر را انتخاب می‌کنید، رویکرد cross-platform موظف است در عین اطمینان از دستیابی به حداکثر بازار، در زمان و هزینه شما صرفه‌جویی کند.

منبع