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، قالب‌های برنامه‌های پیش‌ساخته و برنامه‌های نمونه قابل اجرا است.