توسعه ی کراس پلتفرم اپلیکیشن های موبایل در سال 2020 - فریمورک ها و ترندها

اگر به دنبال توسعه ی اپلیکیشن های موبایل هستید و به راه های زیادی برخورد کردید و دچار سردرگمی شدید ، جای درستی آمدید.با توجه به تجربه ی حرفه ای کاری و آموزشی که تیم آواسام در طی سالهای گذشته داشته است این مقاله ی آموزشی را آماده کرده ایم تا درباره ی توسعه ی اپلیکیشن های اندرویدی بصورت کراس پلتفرم در سال 2020 بررسی نهایی انجام بدهیم و فریمورک های محبوب را بررسی کنیم . همچنین ترند هایی که انجام گرفته و محبوبیت این پلتفرمها را بصورت تصویری بررسی کنیم.جایگاه فعلی توسعه ی اپلیکیشن های موبایلبیایید از ابتدا شروع کنیم و ابتدا بازار دیجیتال را بررسی کنیم . طبق گزارش های آماری وب سایت datareportal ، تعداد افراد علاقه مند به این حوزه در هر ثانیه به 11 نفر ارتقا پیدا کرده است ، به عبارتی دیگر هر روز میلیون ها نفر در سرتاسر جهان به این جامعه ی فناوری اضافه میشوند و هر کدام از آنها برای استفاده از فناوری های دیجیتالی دستگاه هایی را انتخاب میکند که ممکن است موبایل یا دسکتاپ باشد.و جالبتر این است که روند استفاده از موبایل در حال افزایش است و از دسکتاپ پیشی گرفته است.سورس تصویر : https://gs.statcounter.com/ساده ترین نتیجه ی این وقایع تغییر سبک زندگی ما است. احتمالا شما هم تجربه کردید که هر چه زمان بیشتر میگذرد ما زمان بیشتری از زندگی مان را بصورت آنلاین سپری میکنیم به ویژه در کشورهای توسعه یافته که تقریبا همه به گوشی های هوشمند یا تبلت ها دسترسی دارند.با توجه به آمارهای جهانی هر فرد بطور متوسط ، حدود 7 ساعت را در اینترنت سپری میکند و جای تعجب هم نیست که بیش از نصف این ترافیک برای موبایل باشد.طبق آمار وب سایت statista در آمد اپ های موبایل در سرتاسر جهان تا سال 2019 میلادی به مبلغ 461 بیلیون دلار رسیده و پیش بینی میشود این مقدار در سال 2023 به مبلغ حدودی 935 بیلیون دلار خواهد رسید که عدد بزرگی است.گزینه هایی که برای توسعه ی اپ های موبایل میتوانید انتخاب کنیدما ثابت کردیم که اپ های موبایل، نه تنها در بین کاربران مدرن اینترنت محبوب هستند بلکه برای صاحبان آنها نیز پر سود است. با در نظر داشتن این دو فاکتور مهم فرصت بسیار مهمی وجود دارد که کسب و کار خود را در بستر موبایل توسعه دهید.در این راه ،‌انتخاب کردن شیوه و ابزار توسعه ی اپلیکیشن های موبایل ، بسیار مهم است.یکی از مهم ترین گزینه ها انتخاب سیستم عامل هدف برای اپلیکیشن مد نظر شماست. سیستم عامل های موبایل در سال های گذشته به دسته های Android, iOS, Microsoft, RIM و Symbian تقسیم بندی شده اند.امروزه انتخاب نوع سیستم عامل هدف راحت تر است چرا که دو گزینه روبروی برنامه نویسان است :‌ Android و iOS که در کنار همدیگر تقریبا 98٪ از بازار موبایل ها را تصاحب کرده اند.طبق آمارهای فراوان و مختلف ، تعداد کاربران Android از تعداد کاربران iOS بیشتر است ولی این دلیل برتری Android نیست و iOS نیز توسط افراد بسیار زیادی در سرتاسر جهان ، استفاده میشود.علاوه بر این تعداد اپ های منتشر شده در مارکت Google Play بیش از 3 میلیون عدد و تعداد اپ های منتشر شده برای iOS در App Store بیش از 5 میلیون اپ فعال است که این آمار تا آخر سال 2020 میباشد.این واقعیت تنها کافی است تا نشان دهد که هیچکدام از این دو سیستم عامل را نباید نادیده گرفت.برای شروع و توسعه ی اپلیکیشین های موبایل مد نظر شما سه راه پیش رو دارید که در زیر توضیح داده ایم.یک اپ Native برای هر سیستم عاملهمانطور که از اسم این روش پیداست برای هر سیستم عامل بصورت جداگانه با ابزارها و زبان های Native که بصورت رسمی توسط شرکت هر کدام از سیستم عامل ها معرفی شده است باید عمل توسعه ی اپ ها را انجام دهید.برای Android باید از دو زبان Java و Kotlin استفاده کنید .و برای iOS از دو زبان Objective-C و Swift باید استفاده کنید.در توسعه ی اپ های Native قدرت بیشتری وجود دارد چرا که به تمام ابزارهای دستگاه و سیستم عامل دسترسی دارید ، معمولا اپلیکیشن های تولید شده قدرت و کیفیت بیشتری دارد و کمتر به مسئله ی خاصی برخورد میکنید اما از طرفی هم در نظر داشته باشید که اگر میخواهید هم اپ iOS و هم اپ Android بصورت همزمان تولید کنید فرآیند کمی زمان بر ، هزینه بر و سخت خواهد شد.روش توسعه ی PWA یا Progressive Web Applicationهمانطور که از اسم این شیوه پیداست PWA ها اپلیکیشین هایی هستند که با تکنولوژی های وب ساخته میشوند و در قالب اپ ارائه میشوند. در واقع یک اپلیکیشین تحت وب هست ولی با این تفاوت که میتواند بصورت آفلاین نیز کار کند ، به دستگاه موبایل نوتیفیکشن ارسال کند و یا به لیست اپلیکیشین های موبایل اضافه شود.با این وجود PWA ها هم بی عیب و نقص نیستند چون باطری بیشتری مصرف میکنند و به برخی قسمت های سیستم عامل و امکانات آن دسترسی ندارند.یک اپ cross-platform برای هر دو سیستم عامل این روش از توسعه ی اپلیکیشن های موبایل با این هدف ساخته شده است که توسعه دهنده یکبار کدنویسی کند و برای هر دو سیستم عامل Android و iOS خروجی بگیرد. توسعه ی اپلیکیشن ها بصورت cross-platform از زبان های Native استفاده نمیکند ولی بسیار نزدیک به اپلیکیشن های Native هستند . برای توسعه ی اپلیکیشن برای هر دو سیستم عامل گزینه ی خوبی هست.از کجا بدونم که باید توسعه ی اپ خودم را بصورت کراس پلتفرم انجام بدهم ؟‌ممکن است با توجه به سه شیوه ی توسعه ی اپ های موبایل که در بالاتر نوشتیم این فکر به ذهن شما برسد که من چطور میتوانم گزینه ی صحیح را برای خودم انتخاب کنم و بعد شروع کنم به برنامه نویسی اندروید.پاسخ سوال شما سادست و باید معیار های زیر را در نظر داشته باشید پس آنها را مطالعه کنید.- پلتفرماولین و مهم ترین چیز این است که تصمیم بگیرید قرار است اپلیکیشین شما روی یک سیستم عامل خاص نصب و اجرا شود یا روی چندین سیستم عامل ؟‌اگر مخاطبین اپلیکیشین شما ممکن است از سیستم عامل های مختلفی استفاده کنند بهترین گزینه برنامه نویسی کراس پلتفرم است ولی اگر مطمئن هستید که بیشتر مخاطبین شما یک سیستم عامل واحد مثلا iOS یا Android دارند بهتر است از برنامه نویسی Native و تکنولوژی های رسمی Native استفاده کنید که بالاتر معرفی کردیم.- پیچیدگیدومین معیار که باید بررسی کنید پیچیدگی های اپلیکیشین تان است . اپلیکیشین شما قرار است چقدر پیشرفته باشد و چه امکاناتی خواهد داشت ؟ این ملاک مهمی است برای انتخاب پلتفرم مناسب !‌اپلیکیشین مورد توسعه چقدر با سخت افزار دستگاه در ارتباط است و از آنها استفاده میکند ؟ هر چه جواب به این سوالات عمیق تر باشد بهتر از به سمت برنامه نویسی Native حرکت کنید چون آنها گزینه های اول هستند که توسط شرکت های سازنده ی سیستم عامل ارائه میشود.- تجربه ی بومی بودناین یک معیار است برای اینکه شما برنامه نویسی Native را انتخاب کنید . تجربه ی بومی بودن یعنی اینکه اپلیکیشن های اندرویدی یک تجربه ی خاصی به کاربران خود القا میکنند که اپلیکیشن های iOS ممکن است نتواند آنرا ارائه کند و برعکس . برای مثال متریال دیزاین را در نظر بگیرید که یکی از مفاهیم گرافیکی در رابط کاربری اپلیکیشن های Android است.- هزینه و زمانفاکتور بعدی هزینه و زمان است. درباره ی برنامه نویسی Native یک چیز را مطمئن باشید که نه ارزان است و نه سریع. توسعه ی اپلیکیشن خاص برای هر سیستم عامل نیازمند استخدام برنامه نویسان بیشتر است و مدت زمان بیشتری برای فرایند توسعه نیاز دارد. در این معیار برنامه نویسی کراس - پلتفرم بهتر است چون نیاز به برنامه نویس بیشتری ندارید و با همان کدهای نوشته شده خروجی برای هر سیستم عامل دیگر نیز میشود گرفت.مزایا و معایت توسعه ی اپ های موبایل بصورت کراس پلتفرمبیایید فرض کنیم که شما معیارها و سوالات بالا را پاسخ دادید و اکنون به این نتیجه رسیدید که توسعه ی Native اپلیکیشن های موبایل به درد شما نمیخورد.بعد از این تصمیم ، شما به سمت برنامه نویسی کراس پلتفرم هدایت میشوید و اینجا مناسب است که جنبه های مثبت و منفی برنامه نویسی کراس پلتفرم موبایل را در نظر بگیرید.جنبه های مثبت ( مزایا ) جنبه های منفی ( معایب )بازار کار خوباحتمالا دارای پرفرمنس کمتریک زبان برنامه نویسی مشکلات Ux و UIسریعتر و ارزانتر کاهش بار کاری سازگاری با پلتفرم هاتوسعه ی کراس پلتفرم اپ های موبایل تجارت شما را سودمندتر میکنداگر مقاله ی بالا را خوانده باشید به احتمال زیاد به این نتیجه رسیده اید که برنامه نویسی کراس پلتفرم سود بسیاری را برای شرکت و یا تیم توسعه دهنده به ارمغان می آورد و جلوی بسیاری از هزینه ها را میگیرد و در مدت زمان توسعه نیز کاهش چشم گیری دارد.با انتخاب توسعه ی اپلیکیشن بصورت کراس پلتفرم شما از مزایای زیر که بصورت کامل توضیح داده ایم بهره مند خواهید شد.- دسترسی به بازار گسترده ترامروزه افراد بر اساس سلیقه های شخصی خود گوشی های Android یا گوشی های iOS را انتخاب میکنند. شما نمیتوانید سلیقه های مردم را عوض کنید ولی میتوانید سلیقه ی آنها را هدف قرار دهید و اجازه ندهید سلایق شخصی مخاطبین شما اثری در کسب و کار شما داشته باشند.اگر برنامه نویسی کراس پلتفرم را انتخاب کرده باشید شما هم کاربران Android را به دست می اورید هم کاربران iOS را .- یکبار کدنویسی میشودهمانطور که از عنوان پیداست در برنامه نویسی کراس پلتفرم شما یک بار و با یک زبان برنامه نویسی کدنویسی میکنید و سپس میتوانید خروجی های مختلف مثل Android و iOS از آن تهیه کنید.البته باید تفاوت های پلتفرم ها را هم در نظر گرفت و برای آن هم زمان گذاشت.در کل مطمئن باشید که برنامه نویسی با یک زبان خاص و نوشتن کد فقط یکبار باعث صرفه جویی در هزینه ها خواهد شد و همچنین بروزرسانی های آینده نیز کم هزینه تر و آسانتر خواهد شد.- ارزان تر و سریعتردر برنامه نویسی کراس پلتفرم به دلیل یکسان بودن زبان برنامه نویسی نیازی نیست که برای هر سیستم عامل یک برنامه نویس استخدام کنید یا خودتان چند زبان برنامه نویسی یاد بگیرید.هم در زمان شما صرفه جویی میشود و هم در هزینه های شما و میشود گفت ارزانترین وسریعترین راه برای توسعه دهندگان اپلیکیشن های موبایل است.- کاهش بار کاریدر برنامه نویسی کراس پلتفرم برای اپلیکیشن های موبایل ، تقریبا فرآیند کاری برای توسعه دهندگان یکسان است و انجام کارهای تکراری به حداقل میرسد به جز مواردی که مختص خود سیستم عامل iOS یا Android است.با این وجود برنامه نویسانی که کراس پلتفرم کار میکنند باید درک درستی از اصول هر سیستم عامل داشته باشند.در مرحله ی آخر که اپلیکیشن Android قرار است روی مارکت های اندرویدی مثل Google Play و اپلیکیشن iOS قرار است روی App Store برود باید درک خوبی از مارکت های هر سیستم عامل نحوه ی خروجی گرفتن و امضا کردن و انتشار اپ ها داشته باشید.- برطرف کردن ناسازگاری های بین پلتفرم هاشکی نیست که در بحث UI و UX تفاوت ها و اختلافات زیادی بین سیستم عامل Android و iOS وجود دارد ولی با برنامه نویسی کراس پلتفرم بعلت اینکه اپ یکبار تولید میشود و فرآیند UX و UI برای هر سیستم عامل بصورت جداگانه انجام نمیگیرد این اختلافات بین پلتفرم ها بسیار کاهش پیدا میکند و باعث یکپارچگی اپ از نظر UX و UI در پلتفرم های مختلف میشود.توسعه ی اپلیکیشن های cross-platform چه مشکلی دارد ؟‌با وجود تمام مزایای ذکر شده در قسمت های بالا ، توسعه ی اپلیکیشن های cross-platform همیشه هم سرگرم کننده نیست. در توسعه ی اپلیکیشن های کراس پلتفرم ممکن است با مشکلات زیر مواجه شوید:- احتمال پرفرمنس پاییناین یک واقعیت است که زمان طلاست. هر چه کاربران شما برای انجام یک کاری در اپ شما صبر کنند بیشتر از آن دلزده میشوند و در طولانی مدت تاثیرات منفی مالی این را خواهید دید.گاهی اوقات اپلیکیشن هایی که با متد کراس پلتفرم ساخته شده اند نسبت به اپ های Native بسیار کند هستند. برای مثال در بازی های موبایل یا اپلیکیشن های چت تصویری یا دیگر اپ های پیچیده ، برنامه نویسی کراس پلتفرم مثل فلاتر یا ری اکت نیتیو پاسخگو نیست.و بهتر است قبل از شروع توسعه ی کراس پلتفرم خوب فکر کنید که اپ شما قرار است چه کاری انجام دهد.- UI و UX نا مطلوبمشکل بعدی مربوط میشود به رابط کاربری و تجربه ی کاربردی اپلیکیشن های کراس پلتفرم . اگر با دقت اپلیکیشن های Android و iOS را بررسی کنید متوجه خواهید شد که در برخی قسمت های رابط کاربری متفاوت هستند مثلا navigation, buttons, lists .در توسعه ی اپلیکیشن های cross platform توسعه دهنده باید تفاوت ها و اختلافات رابط کاربری بین سیستم عامل را در نظر بگیرد و سعی کند محصول نهایی برای کاربران هر دو سیستم عامل کاربرپسندتر باشد.در هر صورت اگر این تفاوت ها و اختلافات در نظر گرفته نشود UI و UX نامطلوب خواهد بود و اگر هم در نظر گرفته شود وقت بیشتری میگیرد تا توسعه دهنده محصول خود را ارائه دهد که این هم در تضاد با شعار صرفه جویی در زمان، ابزارهای توسعه ی کراس پلتفرم است.فریمورک های توسعه ی اپ بصورت کراس پلتفرم در سال 2020در قسمت های بالا مزایا و معایب توسعه ی اپلیکیشن های موبایل بصورت کراس پلتفرم را دیدیم و اگر شما در حال مطالعه ی ادامه ی این مقاله هستید به احتمال زیاد مزایای این روش از توسعه اپ های موبایل بر معایب آن پیشی گرفته است.برخی مزیای برنامه نویسی کراس پلتفرم برای اپ های موبایل موارد زیر بودکاهش فرآیند توسعه ی اپکاهش هزینه ها و مدت زمانکاهش بار کاریشباهت رابط کاربری به اپ های Nativeو ...تقاضای زیاد برای برنامه نویسی کراس پلتفرم برای اپ های موبایل از سوی توسعه دهندگان موبایل یا شرکت های فعال در این زمینه باعث شده که فریمورک های فراوانی برای انجام این کار بوجود بیاید.به دلیل اینکه دچار سردرگمی نشوید ما تعدادی از پراستفاده ترین فریمورک های توسعه ی اپلیکیشن های کراس پلتفرم را برای شما آماده کرده ایم.بهترین و محبوب ترین آنها React Native, Flutter, NativeScript و Xamarin هستند.برای اینکه دید کلی نسبت به اینها داشته باشید و ببینید که کدام گزینه برای برنامه نویسی موبایل بصورت cross platform در سال 2020 مناسب است بررسی را بر اساس معیار های زیر در نظر خواهیم گرفت.جامعه ی پشتیبانزبان های برنامه نویسی که برپایه ی ان استوار هستندقابلیت استفاده ی مجدد کدهاپرفرمنسرابط کاربرینمونه اپ های برجسته که با آنها ساخته شده اندفریمورک React Nativeفریمورک React Native یک فریمورک توسعه ی اپلیکیشن های موبایل است که متن باز و کراس پلتفرم میباشد و در سال 2015 توسط شرکت فیسبوک معرفی شده است.این فریمورک بعنوان یک محصول در رویداد داخلی هکاتون سال 2013 زاده شد و به زودی به یکی از جایگزین های برنامه نویسی Native تبدیل شد که با 2043 مشارکت کننده و 82900 star در سایت گیتهاب از محبوبیت خوبی برخوردار است.جامعه ی در حال رشد React Native این اطمینان را به شرکت ها و گروه های برنامه نویسی میدهد که شما میتوانید در آینده برنامه نویس های بیشتری پیدا کنید که با React Native کار میکنند.فلسفه ی یکبار بیاموزید و همه جا کدنویسی کنید.فریمورک React Native همانند React.js از زبان برنامه نویسی جاوا اسکریپت استفاده میکند که طبق آمار 2019 Stack Overflow’s survey محبوب ترین زبان برنامه نویسی جهان است .در فریمورک React Native شما براساس نیاز خود میتوانید از ماژول های Native که با زبان های Java , Objective-C و Swift ارائه میشود، استفاده کنید و این نکته ی متمایز کننده ی فریمورک ReactNative از دیگر فریمورک هاست.شما میتوانید با این ماژول ها عملیات پیچیده مثل ویرایش تصویر و ویدیو و ... را انجام دهید.شاید شما قبلا شنیده اید که<< یکبار بنویسید و همه جا استفاده کنید >>ما این شعار را اینجا تغییر میدهیم به<<‌ یکبار بیاموزید همه جا استفاده کنید >>‌چون با یادگیری ReactNative شما بصورت خودکار زبان برنامه نویسی جاوااسکریپت را هم یاد گرفته اید.جاوا اسکریپت و React هر جایی مثل توسعه ی سایت ، بازی سازی ، توسعه ی اپ های iOS ، توسعه اپ های Android و... استفاده میشود.اگر نگران GUI هستید باید بدانید که ReactNative به لطف استفاده از کنترلرهای Native سیستم عامل iOS یا Android تجربه ای را فراهم میکند که اپ های Native ایجاد میکردند.البته اگر کتابخانه ی ReactJS را استفاده کنید روند طراحی UI اپ شما سرعت بیشتری پیدا میکند. یکی دیگر از ویژگی های این فریمورک hot reloading هست که اجازه میدهد تغییرات رابط کاربری را سریعا طراحی کنید.اپلیکیشن های مشهور که با React Native ساخته شده اندبا وجود تمام مزایا و معایب که ممکن است برای React Native وجود داشته باشد بسیاری از شرکت های بزرگ و اپلیکیشن های پیچیده از فریمورک React Native استفاده کرده اند از جمله Facebook, Instagram, Tesla, Uber, Pinterest و Skypeمزایای استفاده از React Native شامل موارد زیر است:زمان و راندمان هزینهرابط کرابری و UX تقریبا مشابه اپ های Nativeپرفرمنس نزدیک به اپ های Nativeجامعه ی پشتیبانی قویهمه این موارد باعث می شود که این فریمورک نه تنها برای مبتدیان که مایل به ساختن یک اپ کاربردی هستند ، صرف نظر از کاهش بودجه ، بلکه برای شرکتهای بزرگتر نیز انتخابی مناسب باشد.فریمورک Flutterدومین فریمورک توسعه ی اپ های پلتفرم در سال 2020 فریمورک Flutter است.این فریمورک در مراسم Google I/O 2017 معرفی شد و سال 2018 منتشر شد و هنوز یک فریمورک تازه کار است.این فریمورک در Github بیش از 80500 استار دریافت کرده است و در آمارهای معروف StackOverflow survey سال 2019 یکی از سه فریمورک محبوب در بین برنامه نویسان جهان است پس بدون شک Flutter یکی از گزینه هاست که برنامه نویسان حتما باید در نظر بگیرند.زبان برنامه نویسی Dartپشت صحنه ی فریمورک Flutter زبان برنامه نویسی Dart است و شرکت Google این زبان را بهینه سازی شده برای کلاینت و ساخته شده برای تولید اپ های سریع و کراس پلتفرم معرفی میکند.این زبان برنامه نویسی در سال 2011 منتشر شده است. یک زبان شی گرا استهمچنین لازم به ذکر است که dart دارای مخزن قابل توجهی از بسته های نرم افزاری سازگار با flutter است که به شما امکان می دهد که امکانات برنامه ی خود را زیاد کنید.یکی از مهمترین مزایای Flutter این است که عملکرد بهتری نسبت به بیشتر فریمورک های توسعه تلفن همراه دارد و این را می توان به کامپایلرهای بومی Dart و Flutter که دارای ویجت های خاص خود هستند ، نسبت داد.نتیجه؟ ارتباط سریعتر و مستقیم با این پلتفرم که ناشی از عدم نیاز به JavaScript Bridge است (مانند مثال با React Native).همانطور که قبلاً گفته شد ، Flutter به جای تکیه بر مجموعه ای از اجزای Native ، از ابزارک های تصویری ، ساختاری ، پلتفرم و تعاملی برای Material Material و Cupertino استفاده می کند ، که همه آنها توسط موتور گرافیکی این فریمورک ارائه شده اند.علاوه بر این ، flutter بر جزئیات بصری تأکید می کند ، اگر به دنبال طراحی یک رابط کاربری عالی هستید ، این فریمورک به انتخاب خوبی تبدیل می شود.نمونه اپلیکیشن های ساخته شده با FlutterFlutter یک فریم ورک نوپا برای ساخت اپلیکیشن های موبایل است و جای تعجب هم ندارد که تعداد استفاده کنندگان React Native از آن بیشتر باشد و این هم به معنی ضعف flutter نیست.از دسامبر 2019 ،فریمورک Flutter فقط هسته اصلی اپلیکیشن های Alibaba ، Google Ads ، Groupon ، Philips Hue یا Hamilton را تشکیل می دهد.مزایا و معایب فریمورک Flutterاگر قصد دارید برای توسعه ی اپ های اندرویدی بصورت cross platform فریمورک Flutter را انتخاب کنید مزایای زیر را در نظر داشته باشید :مستندات جامع.پاسخگویی بالا.ویژگی hot reloading که کار توسعه را بسیار راحت تر میکند.رابط کاربری pixel-perfect و ویجت های قابل تنظیم که حس بومی بودن اپ را منتقل میکند.همانند دیگر فریمورک ها ، Flutter هم کاملا بی عیب و نقص نیست.یکی از مشکلات flutter ممکن است این باشد که اندازه ی اپ های خروجی بزرگتر از بقیه فریمورک ها باشدو این بیشتر بستگی به تیم توسعه دارد که چطور کدنویسی کنند و کارها را انجام دهند.مسئله ی بعدی که ممکن است با آن مواجه شوید کم بودن بعضی کتابخانه هاست که ممکن است ناشی از جدید بودن این فریمورک باشد.با وجود این مسائل ، مزایای Flutter بیشتر است و این اطمینان را منتقل میکند که یکی از بهترین فریمورک های توسعه ی اپ بصورت کراس پلتفرم در سال 2020 است.فریمورک NativeScriptاگر قصد دارد اپ کراس پلتفرم خود را تولید کنید گزینه های پیش روی شما فقط Flutter یا React Native نیست.فریمورک NativeScript یک گزینه ی جایگزین برای این فریمورک ها در سال 2020 است.NativeScript یک فریمورک متن باز است که در مارچ 2015 بصورت عمومی عرض شد و در مدت زمان کم توانست محبوبیت خود را به دست بیاورد.برای مثال تنها دو ماه بعد از انتشار ، در گیتهاب 3000 استار دریافت کرد.همچنین حدود 1500 فالور در توییتر بدست آورد و تا به امروز هم حدود 700 پلاگین برایش ساخته شده است.هم اکنون وضعیت NativeScript در سال 2020 در گیتهاب به شکل زیر است.زمانی که با NativeScript کار میکنید ابتدا کدهای خود را به Javascript و مجموعه ی عالی TypeScript مینویسید.سپس کدها به کدهای Native کامپایل میشود که مورد پذیرش پلتفرم است.این فریمورک نه تنها با جاوااسکریپت بلکه با Vue.js و Angular.js هم قابل برنامه نویسی و استفاده است.توسعه دهندگانی که با NativeScript کار میکنند میتوانند از کتابخانه های جانبی ( CocoaPods و Android SDKs ) استفاده کنند.همانند React Native ، فریمورک NativeScript هم اجازه ی دسترسی به API های Native پلتفرم را میدهد که یک نکته ی مثبت برای فریمورک های توسعه ی کراس پلتفرم است.نمونه اپلیکیشن های ساخته شده با NativeScriptهمانند ReactNative شرکت هایی هستند که این روزها برای تووسعه ی اپ های خود از NativeScript استفاده میکنند مثل اپلیکیشن های Sennheiser Smart Control, MyPUMA, California Court Access App یا Portable North Pole.خی از ویژگی های خوب NativeScript بعنوان یک محیط توسعه ی اپ های کراس پلتفرم :‌پرفرمنس عالی به لطف دسترسی کامل به API بومیرابط کاربری یا UI بومی پلتفرمآسانی یادگیریفریمورک Xamarinاگر قصد دارید اپلیکیشن کراس پلتفرم خود را توسعه بدهید فریمورک هایی مثل React Native و Flutter برای این کار وجود دارد ولی این ها تنها گزینه ی پیش روی شما نیستند. در سال 2020 یک فریمورک دیگری به نام Xamarin برای توسعه ی اپ های موبایل وجود دارد.این فریمورک بصورت متن باز در سال 2011 ارائه شده است که فکر کنم در این مقاله قدیمی ترین فریمورک توسعه ی اپلیکیشن های اندرویدی است.اما مشکل اصلی این فریمورک خرید شدن آن توسط مایکروسافت بود و از لحظه ای که مایکروسافت آنرا تصاحب کرده است هیچ پیشرفتی نکرده است مایکروسافت همه چیز را خراب میکند.جامعه ی این فریمورک حدود 60 هزار نفر است.برای کار کردن با Xamarin شما باید در دو تکنولوژی خوب باشید و آنها دات نت و زبان سی شارپ هستند.Xamarin با استفاده از زبان برنامه نویسی C# و با استفاده از API های اصلی پلتفرم دستگاه به توسعه دهنده امکان برنامه نویسی اپ را میدهد.C# یک زبان برنامه نویسی شی گرا و کامل است که یادگیری آن کمی سخت تر از JavaScript است.Xamarin.Native و Xamarin.Forms دو رویکرد متفاوتچیزی که Xamarin را از دیگر فریمورک های برنامه نویسی کراس پلتفرم متمایز میکند این است که دو روش برای توسعه ی اپ های کراس پلتفرم در آن وجود دارد.Xamarin Native (که به آن Xamarin.Android/iOS نیز گفته می شود) و Xamarin.Forms.در حالی که Xamarin.Android/iOS به توسعه دهندگان اجازه می دهد تا با کنترل ها و چیدمان های Native کار کنند ، Xamarin.Forms بر اساس عناصر UI استاندارد است ، که امکان طراحی برنامه ها را از یک API واحد فراهم می کند.بررسی محبوبیت Xamarinفریمورک Xamarin در طی سالهای گذشته محبوبیت خود را به دست آورده است و در دل برند های مختلف جای گرفته است.همانطور که در تصویر بالا هم میبینید اپ های OLO, MRW, Storyo, and Captio از Xamarin استفاده میکنند. برخی از مزیت های استفاده از Xamarin را در زیر میبینید:اکوسیستم کامل توسعهپشتیبانی کامل از سخت افزارهاتعداد بالای استفاده مجدد از کد و UX تقریباً بومیثبات توسط پشتیبانی مایکروسافت تضمین می شوداگر به دنبال یک فریمورک توسعه اپ موبایل، مولتی پلتفرم برای سازمان یا شرکت ها هستید ، Xamarin خوب است.آیا سال 2020 سال توسعه ی کراس پلتفرم است ؟هم بله هم خیر !پاسخ به این سوال به معیارهایی مانند میزان بودجه ، محدودیت های زمانی ، اهداف تجاری شما بستگی خواهد داشت.با این حال برنامه نویسی کراس پلتفرم ارزش خود را دارد و در جایگاه خود عالی است.همانطور که دیدیم فریمورک های توسعه ی اپ های کراس پلتفرم از زبان های برنامه نویسی بسیار محبوب و قدرتمندی استفاده میکنند و جامعه ی بزرگ و پشتیبانی خوبی هم دارند.فناوری توسعه ی کراس پلتفرم یک فناوری جوان و در حال پیشرفت است که در حال حاضر باعث تسخیر بسیاری از پروژه های بزرگ شده اند.برای انتخاب در بین فریمورک های کراس پلتفرم هم باید معیارهایی را در نظر داشته باشید . هیچ کدام نسبت به دیگری بصورت مطلق خوب یا بد نیستند بلکه باید ببینید کدام مناسب شما و پروژه ی شماست.منبع : توسعه ی کراس پلتفرم اپلیکیشن های موبایل