| 原作者 | Progress SoftwareのTelerik。[1] |
|---|---|
| 開発者 | コミュニティ |
| 初回リリース | 2014 |
| 安定リリース | 8.8.1 / 2024年7月11日[2] |
| リポジトリ |
|
| 書かれた | JavaScript、TypeScript |
| プラットフォーム | クロスプラットフォーム |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | ネイティブスクリプト |
NativeScript は、リッチな TypeScript 開発エクスペリエンスのために、JavaScript ランタイム (強力な型を使用) に直接プラットフォームAPI を提供します。iOS 、visionOS、Androidプラットフォーム向けアプリを開発するためのオープンソースフレームワークとして、CSS やビュー テンプレートなどの使い慣れた Web アプローチと一般的なプラットフォーム言語 (Swift、Kotlin、Objective-C、Java) を組み合わせた最高のアプローチを組み合わせて、開発者に解放的なツールセットを提供します。もともとはブルガリアの会社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で構築されたモバイルアプリケーションは、 XcodeやAndroid Studioで開発されたのと同じAPIを使用する完全なネイティブアプリになります。[8]さらに、ソフトウェア開発者は、ラッパーを必要とせずに、 CocoaPods、Maven、npm.jsのサードパーティライブラリをモバイルアプリケーションで再利用できます。 [9] [10] [11]
発達
NativeScriptは2015年3月に初めて公開されました。バージョン1.0.0は2か月後に続きました。[12]このフレームワークはすぐに人気を博し、公開後すぐに3000のgithubスターと1500人以上のTwitterフォロワーを獲得しました。[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]
リフレクション機能のもう1つの使用方法は、サードパーティのライブラリと連携することです。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 プラグイン、事前に構築されたアプリ テンプレート、実行可能なサンプル アプリの厳選されたソースです。
参考文献
- ^ ab 「NativeScript に関するよくある質問」NativeScript.org。2016 年 3 月 18 日時点のオリジナルよりアーカイブ。2016 年 3 月 20 日閲覧。
- ^ “Releases · NativeScript/NativeScript”. GitHub . 2021-08-31時点のオリジナルよりアーカイブ。2024-07-11取得。
- ^ 「NativeScript を使用して JavaScript でモバイル ネイティブ アプリを作成する」。InfoQ。2022年 6 月 19 日時点のオリジナルよりアーカイブ。2022 年 7 月 12 日閲覧。
- ^ Saripella, Surya. 「NativeScript の次の章: nStudio」。NativeScript。2021 年 1 月 16 日時点のオリジナルよりアーカイブ。2022 年 7 月 12 日閲覧。
- ^ Romoff, Rachel (2020年12月7日). 「NativeScriptがOpenJS Foundationのインキュベーティングプロジェクトに参加」. Linux Foundationプロジェクト. OpenJS Foundation. 2021年1月25日時点のオリジナルよりアーカイブ。 2021年3月4日閲覧。
- ^ abc Krill, Paul (2015年3月10日). 「JavaScript が iOS、Android、Windows Phone アプリでネイティブ化」. InfoWorld . 2022年1月3日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧。
- ^ ab "NativeScript-Vue". nativescript-vue.org . 2017年10月31日閲覧。
- ^ 「NativeScriptフレームワークがクロスプラットフォームアプリ開発の悩みを軽減」searchcloudcomputing.techtarget.com。2021年8月6日時点のオリジナルよりアーカイブ。 2021年8月6日閲覧。
- ^ Krill, Paul (2016年5月6日). 「NativeScript がモバイル開発向け AngularJS に追いつく」InfoWorld . 2022年6月12日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧。
- ^ “SD Times GitHub Project of the Week: NativeScript”. 2016年3月18日. 2022年3月27日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧。
- ^ abc 「Telerik の NativeScript はクロスプラットフォーム モバイル開発の集中化を目指しています -」。Visual Studio Magazine。2017年 11 月 7 日時点のオリジナルよりアーカイブ。2016年 11 月 21 日閲覧。
- ^ 「NativeScript 1.0.0 リリース」www.i-programmer.info。2022年6月11日時点のオリジナルよりアーカイブ。2022年7月12日閲覧。
- ^ 「NativeScript 1.0.0 が利用可能になりました」NativeScript.org。2016 年 10 月 5 日時点のオリジナルよりアーカイブ。2016年 11 月 4 日閲覧。
- ^ 「NativeScript Marketplace」。market.nativescript.org。2018年3月15日時点のオリジナルよりアーカイブ。2018年3月14日閲覧。
- ^ "nativescript - npm search". www.npmjs.com . 2017年2月11日時点のオリジナルよりアーカイブ。2016年11月21日閲覧。
- ^ “Getting to Know Angular 2”. mobile.htmlgoodies.com . 2016年11月15日. 2019年9月27日時点のオリジナルよりアーカイブ。 2022年7月12日閲覧。
- ^ 「NativeScript Sidekick - アプリ開発の忠実な相棒」NativeScript.org。2017 年 11 月 7 日時点のオリジナルよりアーカイブ。2017年 10 月 31 日閲覧。
- ^ ハンナ、タム。 「JavaScript を使用して: NativeScript」。開発者。 2021年7月25日のオリジナルからアーカイブ。2022-07-12に取得。
- ^ 「The Basics - NativeScript Docs」。docs.nativescript.org。2016年11月21日時点のオリジナルよりアーカイブ。2016年11月21日閲覧。
- ^ “NativeScript/NativeScript”. github.com . 2022年6月20日時点のオリジナルよりアーカイブ。2022年6月20日閲覧。
- ^ “NativeScript/NativeScript”. github.com . 2022年6月20日時点のオリジナルよりアーカイブ。2022年6月20日閲覧。
- ^ 「JavaScript 経由でネイティブ API にアクセスする - NativeScript ドキュメント」。docs.nativescript.org。2016年 11 月 24 日時点のオリジナルよりアーカイブ。2016 年 11 月 21 日取得。
- ^ 「NativeScript 2.0 - クロスプラットフォームのネイティブモバイルアプリを構築する最良の方法」NativeScript.org。2016年12月20日時点のオリジナルよりアーカイブ。 2016年11月21日閲覧。
- ^ Witalec, Sebastian (2018-08-24). 「Web とモバイルでネイティブに動作するアプリ」. Medium . 2022-01-03 にオリジナルからアーカイブ。2021-08-06に取得。
外部リンク
- 公式サイト
