
NativeScriptはブルガリアのTelerik社(後にProgress Software傘下、現在は独立コミュニティ運営)が2014年に公開したクロスプラットフォーム開発フレームワークです。iOSのObjective-C/SwiftやAndroidのJava/KotlinのAPIを、JavaScript/TypeScriptから直接呼び出せる点が最大の特徴で、WebViewやブリッジを介さずにJS上のオブジェクトがそのままネイティブクラスにマッピングされる仕組みになっています。Angular、Vue、Svelte、素のJSの各環境で利用でき、現在はOpenJS Foundationのインキュベーション下で開発が続けられています。
この記事の目次
- JSランタイムとメタデータ橋渡し
- Telerikからコミュニティへの移行
- 現場での使われ方
- React Native・Flutterとの違い
- まとめ
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で書く場合は内に
Telerikからコミュニティへの移行

NativeScriptは2014年3月にTelerik社が初期プレビューを公開し、2015年6月にバージョン1.0を正式リリースしました。Telerikは2014年12月にProgress Softwareに買収され、NativeScriptもしばらくProgress傘下で開発が続きました。Angular公式チームと連携してNativeScriptをAngular対応させた「NativeScript with Angular」が広まったのもこの時期です。
2019年〜2020年頃からProgressのモバイル戦略変更を受け、コミュニティ主導の運営体制へ移行が進みました。2022年にOpenJS Foundationの「Incubating Project」として迎え入れられ、現在はvalor-softやnStudioなどの企業・有志が中心となってメンテナンスを継続しています。Vue・Angular連携の更新、Apple Silicon対応、新しいAndroid/iOSのAPI追従などが進められており、活発さでは全盛期に及ばないものの、JSからネイティブを直接呼べる独自路線として安定した立ち位置を保っています。
現場での使われ方

NativeScriptが選ばれる典型は「Angularでフロントが組まれている」「ネイティブAPIを細かく叩きたいが、SwiftやKotlinの専門人材は足りない」というケースです。Angular Universalとの組み合わせや、業務アプリの内製化で採用が見られました。VueやSvelteユーザーにとっても、Webコンポーネントの作法を保ったままモバイルに展開できる選択肢として一定の支持を集めています。
一方で、React Native・Flutter・Capacitorが圧倒的なシェアを取った2020年代後半においては、新規採用は限定的です。ただし、JS側のコードがほぼ無加工でiOS/AndroidのSDKドキュメントどおりに動かせる体験は他にないため、「特定のネイティブSDK(BLE、地図、独自ハードウェア)に深く接続したい」「すでにあるAngular資産を最小工数でモバイル化したい」といった条件下で、現実的な選択肢として今も検討に上ります。
React Native・Flutterとの違い

React Nativeと比べると、両者ともOS標準UIを使う点は同じですが、NativeScriptは「ブリッジを介さずJSから直接APIを叩く」設計のため、ネイティブモジュールを別途C++やJavaで書かなくても、JS側でiOS/AndroidのSDKをそのまま呼べる柔軟性があります。ただし、コミュニティ規模・採用事例の多さ・人材の確保しやすさではRNが大きくリードしており、現実的にはRNを選ぶ組織が圧倒的です。
Flutterと比べると、NativeScriptはOS標準UIに寄せる方針、Flutterは自前描画でデザイン統一を取る方針という対比になります。また、Flutterはツールチェーンの完成度とパフォーマンス、Googleの強力なバックアップという点で優位ですが、「JSで書ける」「Angular資産を流用できる」という条件が必須ならばNativeScriptが残された数少ない選択肢になります。現代の主流からは外れたものの、ニッチで明確な強みを持つフレームワークとして、知っておく価値のある存在です。
まとめ
NativeScriptは「JavaScriptから直接ネイティブAPIを叩く」という独自路線で、ハイブリッドアプリとは一線を画す技術を提供してきました。主流の座はReact NativeやFlutterに譲りましたが、Angular/Vue/Svelteとの相性とAPIアクセスの柔軟性は依然として独自の魅力です。OpenJS Foundation下で開発が続く今、特定の条件で現実解となる選択肢のひとつとして覚えておきたい技術です。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント