NativeScriptテクノロジは、ランタイム、コアモジュール、CLI、プラグインなど、いくつかの主要部分に基づいて構築されたものとして表せます。次の図を見てください。
ランタイムにより、JavaScriptコードを使用してAndroidおよびiOSフレームワークのAPIを呼び出すことができます。 そのためには、JavaScript Virtual Machines(GoogleのAndroid用V8、およびiOS 7.0以上で配布されているWebKitのJavaScriptCoreの実装)を使用します。 詳細については、Android Runtime OverviewおよびiOS Runtime Overviewを参照してください。
コアモジュールは、基盤となるネイティブプラットフォームへのアクセスを抽象化します。 例えばGesturesモジュールは、ランタイムによって、アプリケーションのTypeScript/JavaScriptコードをネイティブのGesture API呼び出しに変換する一般的なJS APIを定義しています。
コアモジュールが提供するもう1つのことは、UI、データバインディング、およびナビゲーションを定義するための基本的なXMLベースの方法です。 それと共に、AngularとVue.jsをApplication Frameworkテクノロジとして使用できます。 詳しくはモジュールのドキュメントを参照してください。
これは、NativeScriptを使用してアプリを作成、構築、および実行できるようにするコマンドラインインターフェイスです。 CLIはWindows、macOS、またはLinux上で動作します。詳細については、NativeScript CLIレポジトリを参照してください。
NativeScriptプラグインは、いくつかの機能をカプセル化し、開発者がアプリをより速く構築するのを支援するブロックを構築しています(NativeScriptコアモジュールはプラグインです)。 ほとんどはコミュニティ構築型で、TypeScript / JavaScriptで書かれています。 ランタイムライブラリのおかげでTS / JSコードから呼び出されるネイティブライブラリを含めることができます。 より詳しい情報はPluginsのドキュメントにあります。