ネイティブスクリプト

Open-source framework to develop native mobile apps
ネイティブスクリプト
原作者Progress SoftwareTelerik[1]
開発者コミュニティ
初回リリース2014 (2014)
安定版リリース
8.8.3 [2]  / 2024年10月23日; 13か月前 (23 October 2024)
リポジトリ
  • github.com/NativeScript/NativeScript
書かれたJavaScriptTypeScript
プラットフォームクロスプラットフォーム
ライセンスApacheライセンス2.0
Webサイトネイティブスクリプト

NativeScriptは、 iOSVisionOSAndroidプラットフォーム向けアプリを開発するための、JavaScriptベースのクロスプラットフォーム・オープンソース開発フレームワークです。プラットフォームAPIをJavaScriptランタイムに直接接続し(強力な型付けを使用)、CSSやビューテンプレートといった使い慣れたWebアプローチと、一般的なプラットフォーム言語(SwiftKotlinObjective-CJava)を組み合わせています。

NativeScriptはもともとブルガリアの企業Telerikによって考案・開発され、後にProgress Softwareに買収されました[3] 2019年末[4]、 NativeScriptプロジェクトの責任はProgressの長年のパートナーであるnStudioに引き継がれました。 2020年12月、nStudioはNativeScriptをOpenJS Foundationのインキュベーティングプロジェクトとして導入することも監督しました。[5] NativeScriptアプリはJavaScript、またはTypeScriptなどのJavaScriptにトランスパイルするプログラミング言語を使用して構築されます。NativeScriptはAngular [6]Vue JavaScriptフレームワークをサポートしています。[7] NativeScriptで構築されたモバイルアプリケーションは完全にネイティブなアプリになり、 XcodeAndroid Studioで開発されたかのようと同じAPIを使用します[8]さらに、ソフトウェア開発者はCocoaPodsMavennpm.jsのサードパーティライブラリをラッパーなしでモバイルアプリケーションで再利用できます。 [9] [10] [11]

発達

NativeScriptは2015年3月に初めて公開され、バージョン1.0.0は2か月後に続きました。[12]このフレームワークは公開後すぐに人気を博し、GitHubスターが3000個、Twitterのフォロワーが1500人を超えました。[13]一方、700以上のプラグインが利用可能で、これらはProgressによって公式にサポートされているか、オープンソースコミュニティから生まれました。[14] [15] Angularの使用は、アプリケーションのソースコードをWebプラットフォームとモバイルプラットフォーム間で共有できるようにするオプションの開発アプローチです。[16]

構造

NativeScriptと必要なプラグインはすべて、パッケージマネージャーnpmを使用してインストールされます。プロジェクトはコマンドラインまたはNativeScript Sidekickと呼ばれるGUIツールを介して作成、設定、コンパイルされます。[17]

プラットフォームに依存しないユーザーインターフェースはXMLファイルを用いて定義されます。NativeScriptはXMLファイルに記述された抽象化を用いて、各プラットフォームのネイティブUI要素を呼び出します。AngularやTypeScriptで開発されたアプリケーションロジックも、ターゲットプラットフォームに依存しない形で開発可能です。NativeScriptモバイルアプリケーションは、Node.jsのランタイムとツールを使用して構築されます。[18] Progressは、iOSプラットフォームとAndroidプラットフォーム間で90%の共通コード比率を目指しています。[1]

ネイティブプラットフォームAPIとコントロールへの直接アクセス

プラットフォームに依存しないユーザーインターフェースは、 XMLファイルを用いて定義されます[19] NativeScriptは、クロスプラットフォーム抽象化を表すXMLデータ構造を用いて、対象オペレーティングシステムのネイティブ要素と直接やり取りするプラットフォーム固有のコードをトリガーします。つまり、NativeScript Button APIを呼び出すと、ButtonのUI抽象化が提供され、iOSではUIButton [20]、Androidではcom.android.widget.Button [21]が直接呼び出されます。

アプリケーションのソースコードはJavaScript、TypeScript、Angular、またはVue.jsで記述されますが、コンパイルやその他の変更は行われません。ソースコードはそのままデバイス上で直接実行されます。このアーキテクチャの選択により、クロスコンパイルやトランスパイルが不要になります。[11]さらに、アプリケーションのソースコードはブラウザ(またはWebViewを含むモバイルアプリケーション)で一般的に使用される言語で記述されますが、NativeScriptアプリケーションはネイティブデバイス上で直接実行されます。DOM操作やブラウザとの強制的なインタラクションは発生しません。[6]

注目すべき機能

ネイティブAPIリフレクション

もう一つの注目すべき機能は、ネイティブAPIエンドポイントの処理にリフレクションを使用していることです。NativeScriptと各モバイルプラットフォームAPIの間に個別のバインディングレイヤーを必要とするのではなく、NativeScriptはリフレクションを使用してネイティブプラットフォームAPIに関する情報とメタデータを取得します。ネイティブプラットフォームAPIに追加された新機能は、すぐに利用できます。[6]

リフレクション機能のもう一つの用途は、サードパーティのライブラリとの連携です。JavaScript(またはTypeScript/Angular)はネイティブコードと直接通信できるため、Objective-C、Swift、Java、Kotlinでバインディングレイヤーを記述する必要はありません。[11] [22]

Angular統合

NativeScript 2.0のリリースにより、Angularを使用してクロスプラットフォームのモバイルアプリケーションを構築することが可能になりました。[23]さらに、AngularをNativeScriptと併用することで、Webアプリとモバイルアプリ間で大量のコードを共有できるようになります。[24]

Vue.js 統合

Vue.jsフレームワークは nativescript-vueプラグインを介してNativeScriptでサポートされています。[7]

サポートツールとサービス

  • NativeScript Sidekickは、 NativeScript CLIが提供する機能をベースに構築されたグラフィカルユーザーインターフェースです。Sidekickを使用することで、開発者はアプリテンプレート、iOSおよびAndroid向けのクラウドベースのビルドを活用し、アプリをパブリックアプリストアに公開できます。
  • NativeScript Playground を使用すると、開発者は Web ベースの環境で NativeScript を試し、物理デバイスでアプリをプレビューできます。
  • NativeScript Marketplace は、NativeScript プラグイン、事前に構築されたアプリ テンプレート、実行可能なサンプル アプリの厳選されたソースです。

参考文献

  1. ^ ab 「NativeScriptに関するよくある質問」NativeScript.org . 2016年3月18日時点のオリジナルよりアーカイブ2016年3月20日閲覧。
  2. ^ https://github.com/NativeScript/NativeScript/releases/tag/8.8.4-core. {{cite web}}:欠落または空|title=(ヘルプ)
  3. ^ 「NativeScriptを使ってJavaScriptでモバイルネイティブアプリを作成する」InfoQ。2022年6月19日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧
  4. ^ Saripella, Surya. 「NativeScriptの次なる章:nStudio」. NativeScript. 2021年1月16日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧
  5. ^ Romoff, Rachel (2020年12月7日). 「NativeScriptがOpenJS Foundationのインキュベーティングプロジェクトに参加」. The Linux Foundationプロジェクト. OpenJS Foundation. 2021年1月25日時点のオリジナルよりアーカイブ。 2021年3月4日閲覧
  6. ^ abc Krill, Paul (2015年3月10日). 「JavaScriptはiOS、Android、Windows Phoneアプリでネイティブ化」. InfoWorld . 2022年1月3日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧
  7. ^ ab "NativeScript-Vue". Nativescript-vue.org . 2017年10月31日閲覧
  8. ^ 「NativeScriptフレームワークがクロスプラットフォームアプリ開発の悩みを軽減」searchcloudcomputing.techtarget.com . 2021年8月6日時点のオリジナルよりアーカイブ。 2021年8月6日閲覧
  9. ^ Krill, Paul (2016年5月6日). 「NativeScript、モバイル開発におけるAngularJSへの関心を高める」InfoWorld . 2022年6月12日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧
  10. ^ “SD Times GitHub Project of the Week: NativeScript”. 2016年3月18日. 2022年3月27日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧
  11. ^ abc 「TelerikのNativeScriptはクロスプラットフォームのモバイル開発を一元化することを目指している」Visual Studio Magazine。2017年11月7日時点のオリジナルよりアーカイブ。 2016年11月21日閲覧
  12. ^ “NativeScript 1.0.0 リリース”. www.i-programmer.info . 2022年6月11日時点のオリジナルよりアーカイブ2022年7月12日閲覧。
  13. ^ “NativeScript 1.0.0が利用可能になりました”. NativeScript.org . 2016年10月5日時点のオリジナルよりアーカイブ2016年11月4日閲覧。
  14. ^ “NativeScript Marketplace”. market.nativescript.org . 2018年3月15日時点のオリジナルよりアーカイブ2018年3月14日閲覧。
  15. ^ "nativescript - npm search". www.npmjs.com . 2017年2月11日時点のオリジナルよりアーカイブ。 2016年11月21日閲覧
  16. ^ “Getting to Know Angular 2”. mobile.htmlgoodies.com . 2016年11月15日. 2019年9月27日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧
  17. ^ 「NativeScript Sidekick - アプリ開発の忠実な相棒」NativeScript.org . 2017年11月7日時点のオリジナルよりアーカイブ。 2017年10月31日閲覧
  18. ^ ハンナ、タム (2016 年 8 月 9 日)。 「JavaScript を使用して: NativeScript」。開発者。 2021年7月25日のオリジナルからアーカイブ2022-07-12に取得
  19. ^ 「The Basics - NativeScript Docs」. docs.nativescript.org . 2016年11月21日時点のオリジナルよりアーカイブ2016年11月21日閲覧。
  20. ^ “NativeScript/NativeScript”. github.com . 2022年6月20日時点のオリジナルよりアーカイブ2022年6月20日閲覧。
  21. ^ “NativeScript/NativeScript”. github.com . 2022年6月20日時点のオリジナルよりアーカイブ2022年6月20日閲覧。
  22. ^ 「JavaScript 経由でネイティブ API にアクセスする - NativeScript ドキュメント」. docs.nativescript.org . 2016年11月24日時点のオリジナルよりアーカイブ2016年11月21日閲覧。
  23. ^ 「NativeScript 2.0 - クロスプラットフォームネイティブモバイルアプリ構築のベストな方法」NativeScript.org . 2016年12月20日時点のオリジナルよりアーカイブ。 2016年11月21日閲覧
  24. ^ Witalec, Sebastian (2018年8月24日). 「Webとモバイルでネイティブに動作するアプリ」. Medium . 2022年1月3日時点のオリジナルよりアーカイブ2021年8月6日閲覧。
  • 公式サイト
Retrieved from "https://en.wikipedia.org/w/index.php?title=NativeScript&oldid=1304693552"