MENU

NativeScript — JavaScriptから直接ネイティブAPIを叩く独自路線

NativeScript アイキャッチ
NativeScript

NativeScriptはブルガリアのTelerik社(後にProgress Software傘下、現在は独立コミュニティ運営)が2014年に公開したクロスプラットフォーム開発フレームワークです。iOSのObjective-C/SwiftやAndroidのJava/KotlinのAPIを、JavaScript/TypeScriptから直接呼び出せる点が最大の特徴で、WebViewやブリッジを介さずにJS上のオブジェクトがそのままネイティブクラスにマッピングされる仕組みになっています。Angular、Vue、Svelte、素のJSの各環境で利用でき、現在はOpenJS Foundationのインキュベーション下で開発が続けられています。

目次

この記事の目次

  1. JSランタイムとメタデータ橋渡し
  2. Telerikからコミュニティへの移行
  3. 現場での使われ方
  4. React Native・Flutterとの違い
  5. まとめ

JSランタイムとメタデータ橋渡し

JSランタイムとメタデータ橋渡し

NativeScript最大の発明は、ネイティブAPIをJavaScript側へ「自動射影」する仕組みです。iOS側ではJavaScriptCoreを、Android側ではV8を組み込み、ビルド時にOSのSDKをスキャンして全クラス・全メソッドのメタデータを抽出します。実行時は、JS側で書いた「new UIButton()」のようなコードが、その場でUIKitやandroid.widgetの実体に変換されるため、本物のネイティブAPIをまるでJSライブラリのように使えます。WebViewもブリッジ仕様も介在しません。

UI記述は独自のXML(または各フレームワーク流のテンプレート)で行い、Vue・Angular・Svelte向けのプラグインが用意されています。Vue.jsで書く場合は