BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース NativeScript 7はES5からES2017+へ

NativeScript 7はES5からES2017+へ

原文(投稿日:2020/09/15)へのリンク

NativeScript 7は、es2017+をターゲットにすることで、最新のJavaScript標準に対応する。さらに、アプリ構成を1つのファイルに統合することで簡素化し、iOSアプリのJavaScriptCoreをV8に置き換える。

ES2017を採用すると、NativeScriptはデフォルトでそれを出力ターゲットとして使用するようになるが、その主な目的は、?? Nullish coalescing operatoroptional chainingなどの言語にもたらされた改善を利用することである。

実際、TypeScriptでサポートされているES2017の機能を以前のNativeScriptバージョンで使用することはすでに可能だったが、コードがES5に変換され、パフォーマンスが低下する可能性があり、コードのステップ実行が困難になった。たとえば、それは「ネイティブ」になったasync/awaitサポートとES2017のclassディレクティブの場合である。

ES2017への切り替えは、JavaScriptCoreランタイムを置換してiOSプラットフォームにもV8エンジンを採用することで可能になった。NativeScriptチームは1つのランタイムのみを維持する必要があるため、この決定により、両方のプラットフォームでのJavaScriptサポートがレベルアップし、メンテナンスコストが削減される。非互換性やその他の問題が発生した場合は、tns-iosを使用することでNativeScriptにJavaScriptCoreの使用を強制できる。

NativeScript 7によってもたらされるもう1つの改善点は、構成ファイルの統合である。これまで、アプリの構成は3つの異なるファイルで指定されていた。ルートpackage.jsonnsconfig.json、およびランタイムフラグを指定するためにソースディレクトリに隠された別のpackage.jsonだ。今、新しいnativescript.config.tsまたはnativescript.config.jsを使用して、アプリ全体の構成を指定できる。新しいファイルにより、コードを使用してアプリの構成を指定できるため、TypeScriptを使用する場合、nativescript.config.tsファイルにはプロジェクトのタイプセーフな定義が実際に含まれる。単純なnativescript.config.tsの例:

import { NativeScriptConfig } from '@nativescript/core';
export default {
  id: 'com.company.app',
  main: 'app.js',
  appResourcesPath: 'App_Resources',
  webpackConfigPath: 'webpack.config.js',
  ios: {
    discardUncaughtJsExceptions: true
  },
  android: {
    discardUncaughtJsExceptions: true,
    v8Flags: '--nolazy --expose_gc',
    "markingMode": "none",
    "suppressCallJSMethodExceptions": false
  }
} as NativeScriptConfig;

ツールの面では、NativeScript CLIはnsに名前が変更された。しかし、必要に応じてnscまたは古いtnsを使用することもできる。新しいCLIには、プロジェクトのファイルをクリーンアップするために使用できる新しいns cleanコマンドが導入されている。

既存のプロジェクトの移行に関する最後の注意。NativeScript CLIは、その目的でns migrateコマンドを提供するが、使用する前に、すべてのプラグインがNativeScript 7と互換性があることを確認する必要である。プラグインを開発している場合は、[調整] (https://nativescript.org/blog/nativescript-7-for-plugin-authors/0) のリストを確認してください。関心を払うことが必要だ。

この記事に星をつける

おすすめ度
スタイル

BT