NativeScript یک چارچوب منبع باز برای توسعه برنامههای تلفن همراه برروی پلتفرم های iOSو Android است این چارچوب ابتدا توسط شرکت پروگرس طراحی و توسعه یافت
در پایان سال 2019، مسئولیت پروژه NativeScript به عهده شریک دیرینه پروگرس nStudioگرفته شد
در دسامبر 2020 nStudio نیز نظارت بر ورود NativeScript به بنیاد OpenJS به عنوان یک پروژه در دوره انکوبیتوررا برعهده داشت
برنامههای NativeScript با استفاده از JavaScript ساخته میشوند یا با استفاده از هر زبان برنامهنویسی که به JavaScript ترجمه میشود مانند NativeScript
TypeScript از چارچوبهای جاوااسکریپت Angular و Vue نیز پشتیبانی میکند
برنامههای تلفن همراه ساخته شده با NativeScript منجر به برنامههای کاملاً native که از همان API استفاده میکنند اگر در XCode یا AndroidStudio توسعه داده شده باشند
علاوه بر این، توسعه دهندگان نرمافزار میتوانند کتابخانههای شخص ثالث از CocoaPods و Maven و npm.js را در برنامه های تلفن همراه خود باز استفاده کنند بدون نیازبه wrappers
توسعه
NativeScript برای اولین بار در مارس 2015 به صورت عمومی منتشر شد
نسخه 1.0.0 دو ماه بعد منتشر شد. این چارچوب به سرعت محبوبیت کسب کرد و به زودی پس از انتشار عمومی، بیش از 3000 ستاره در گیتهاب و بیش از 1500 دنبالکننده در توییتر به دست آورد
در همین حال، بیش از 700 پلاگین موجود است که یا به صورت رسمی توسط پروگرس پشتیبانی میشوند یا از جامعه منبع باز نشات گرفتهاند
استفاده از Angular یک رویکرد توسعه اختیاری است که اجازه میدهد کدهای منبع برنامه را بین پلتفرم وب و پلتفرم موبایل به اشتراک گذاشت
ساختار
NativeScript و تمام پلاگینهای مورد نیاز از طریق مدیر بسته npm نصب میشوند
پروژهها از طریق خط فرمان یا ابزار GUI به نام NativeScript Sidekick ایجاد، پیکربندی و کامپایل میشوند
رابطهای کاربری مستقل از پلتفرم با استفاده از فایلهای XML تعریف میشوند سپس NativeScript از انتزاعات مشخص شده در فایلهای XML برای فراخوانی عناصر رابط کاربری اصلی هر پلتفرم استفاده میکند
منطق برنامهنویسی توسعه یافته در Angular و TypeScript همچنین مستقل از پلتفرم مقصد قابل توسعه است
یک برنامه تلفن همراه NativeScript با استفاده از runtime و ابزار node.js ساخته میشود
Progress به نسبت 90% کد مشترک بین پلتفرمهای iOS و Android هدف گذاری میکند
دسترسی مستقیم به APIها و کنترلهای پلتفرم اصلی
رابطهای کاربری مستقل از پلتفرم با استفاده از فایلهای XML تعریف می شوند
NativeScript از ساختارهای داده XML که نمایانگر انتزاع مستقل از پلتفرم هستند برای فراخوانی کدهای وابسته به پلتفرم استفاده میکند که به طور مستقیم با عناصر اصلی سیستم عامل مقصد تعامل دارند
این به این معنی است که فراخوانی API دکمه NativeScript یک انتزاع رابط کاربری برای دکمه ایجاد میکند که به طور مستقیمUIButtonرا در iOS یا com.android.widget.Button رادر Android فراخوانی میکند
هر چند که منبع کد برنامه به زبان JavaScript و TypeScript و Angular یا Vue.js نوشته میشود، اما منبع کد به هیچ وجه کامپایل یا تغییر شکل نمیشود
منبع کد به صورت مستقیم بر روی دستگاه اجرا میشود. این انتخاب معماری نیاز به کامپایل یا تغییر شکل متقابل را از بین میبرد
علاوه بر این، در حالی که منبع کد برنامه به زبانهای معمولاً در مرورگر یا در یک برنامه تلفن همراه حاوی WebView نوشته میشود، برنامههای NativeScript به طور مستقیم بر روی دستگاه اجرا میشوند. هیچ تلاشی برای تغییر DOM یا هرگونه تعامل مرورگر الزامی نیست
ویژگیهای قابل توجه
انعکاس API
یکی از ویژگیهای قابل توجه NativeScript استفاده از انعکاس برای کنترل نقاط پایانی API محلی است به جای نیاز به لایههای پیوند جداگانه بین NativeScript و هر پلتفرم موبایل API، NativeScript از انعکاس برای به دست آوردن اطلاعات و فراداده در مورد APIهای پلتفرم محلی استفاده میکند
ویژگیهای جدیدی که به هر API پلتفرم محلی اضافه میشود، به طور فوری در دسترس قرار میگیرند
روش دیگر استفاده از ویژگی انعکاس در کار با کتابخانههای شخص ثالث است. زیرا JavaScript (یا TypeScript/Angular) میتواند به طور مستقیم با کد محلی ارتباط برقرار کند، نیازی به نوشتن لایههای پیوند در Objective-C، Swift، Java یا Kotlin وجود ندارد.
ادغام Angular
با راهاندازی NativeScript 2.0، امکان استفاده از Angular برای ساخت برنامههای تلفن همراه چندپلتفرمی وجود دارد. علاوه بر این، هنگام استفاده از Angular با NativeScript، شما قادر خواهید بود قسمتهای بزرگی از کد خود را بین برنامههای وب و تلفن همراه خود به اشتراک بگذارید.
ادغام Vue.js
چارچوب Vue.js از طریق افزونه nativescript-vue در NativeScript پشتیبانی میشود.
ابزارها و خدمات پشتیبانیکننده
NativeScript Sidekick یک رابط کاربری گرافیکی است که از قابلیتهای ارائه شده توسط NativeScript CLI بهره میبرد
با استفاده از Sidekick، یک توسعهدهنده میتواند از قالبهای برنامه، ساختهای مبتنی بر ابر برای iOS و Android و انتشار برنامهها در فروشگاههای عمومی برای خود بهره ببرد
NativeScript Playground به توسعهدهندگان امکان میدهد تا با NativeScript در یک محیط مبتنی بر وب آزمایش کنند و برنامهها را در دستگاههای فیزیکی پیشنمایش دهند
NativeScript Marketplace یک منبع منتخب از افزونههای NativeScript، قالبهای برنامههای پیشساخته و برنامههای نمونه قابل اجرا است.