| パラダイム | マルチパラダイム:関数型、ジェネリック、宣言型、オブジェクト指向、静的型 |
|---|---|
| 開発者 | Huawei、OpenAtom Foundation、Eclipse Foundationオープンソース貢献者 |
| 初登場 | 2021年9月30日 |
| 安定リリース | 5.0.0.71 / 2024年9月29日 |
| タイピングの規律 | アヒル、段階的、構造的 |
| OS | HarmonyOS、OpenHarmony、Oniro OS、macOS、Windows、Android、iOS |
| ライセンス | Apache ライセンス プロプライエタリ(HarmonyOS 3.1 まで) |
| ファイル名拡張子 | .ets、.ts |
| 影響を受けた | |
| TypeScript、Swift、Objective-C、JavaScript、C#、F#、Java、ActionScript、AtScript、AssemblyScript | |
ArkTSは、Huaweiが開発した高レベルの 汎用、マルチパラダイム、コンパイル済み、宣言的、静的型 プログラミング言語であり、オープンソースのTypeScriptの拡張スーパーセットです。TypeScriptは、 2022年7月のHarmonyOS 3.0バージョンで以前使用されていたJavaScriptのスーパーセットであり、その進化した前身である拡張TypeScript(eTS)とともに、宣言型プログラミングへの移行としてHarmonyOS開発用に構築されました。[1] ArkTSは、事前コンパイルArk Compilerを介してマシンコードにコンパイルされます。ArkTSは、2021年9月30日にOpenHarmonyで最初にリリースされ、ArkTSツールチェーンは2022年にリリースされたバージョン3.1以降、DevEco Studioに同梱されています。 [2] 2023年10月26日のOpenHarmony 4.0リリース以降、ArkTS APIがオープンソースコミュニティに追加され、貢献しています。[3]
Huaweiは、ArkTSがTypeScriptに基づく拡張TypeScript(eTS)に関連する多くのコアコンセプトをサポートし、ArkUI宣言型UIアプリ開発とJavaと並行した2.0命令型アプリ開発により、HarmonyOS 3.0の以前のバージョンのJavaScriptをサポートすることを意図していました。ArkTSは、2022年11月にHuaweiの開発者会議(HDC)2022でHarmonyOS 3.1リリース時に発表されました。[4]
HDC 2023ではHarmonyOS 4.0 API 10へのアップグレードが行われ、2024年1月18日のHarmonyOSエコロジー開発者会議では、Huaweiが発表した新しいCangjieプログラミング言語とともにメジャーアップグレードが行われ、両方のプログラミング言語がHarmonyOSオペレーティングシステムの反復的なHarmonyOS NEXTシステムバージョンの主要言語になりました。[5] [6]
ArkTSの現在のバージョンは、2023年8月4日のHarmonyOS 4.0リリース後、DevEco Studio 4.0 Canaryビルドを介して、新しいArkTS APIを備えたオープンソースのOpenHarmony 4.0 API 10として2023年10月26日にリリースされました。[7]現在の安定版リリースに続いて、2024年1月にOpenHarmony 4.1 Beta 1 API 11を含むプレビューがリリースされました。それと並行して、最新バージョンのOpenHarmonyに基づく最新のAPI 11-12プレビューを備えた内部HarmonyOS NEXT開発者プレビュー1および2は、構文的に厳密で、以前のバージョンと比較してより完全で豊富な機能を提供するDevEco Studio IDEのバージョン5.0で成熟した高度な構文を備えています。[8]
歴史
ArkTSの開発は、HarmonyOSの創設者である王成禄氏によって2015年に開始され、最終的には当時のHuaweiの多くのプログラマーの協力を得て、2012年から数年間社内のR&Dラボでインキュベートされた後、HarmonyOSの開発が開始されました。ArkTSは、Huaweiの以前のプログラミング言語であるJavaの代替品の必要性から生まれました。Javaは法的な問題だけでなく、パフォーマンスの問題、HarmonyOS 1.0 Vision TV、IoT、HarmonyOS 2.0拡張バージョンの両方に同梱されていた弱いSDKでの未開発のアプリケーション、HarmonyOS 3.0 eTS/JS開発にまだ欠けていた改善点などがありました。HarmonyOSアプリ開発では、最新のオペレーティングシステム向けの最新機能が欠けていました。ArkTSは、 TypeScript、Swift、Rust、JavaScriptなどの言語のアイデアを取り入れました。 2022年11月、ファーウェイはプログラミング言語がHarmonyOS 3.0のeTSからHarmonyOS 3.1アップデートのArkTSに進化したことを明らかにした。プログラミング言語のベータ版はカンファレンスで登録済みのファーウェイ開発者にリリースされ、 2021年9月にファーウェイが以前はeTSと呼ばれていたHarmonyOS 3.0のArkTSコードとAPIを提供したOpenAtom Foundationの下のOpenHarmony 3.0 API 7時代までオープンソース化されていませんでした。[9]
2021年10月のHDC 2021で、HuaweiはHarmonyOS 3.0時代向けのDevEco Studio 3.0を搭載したArkUIを発表しました。これは、 eTS開発のためのすべてのHuaweiデバイスにわたる宣言型UI構造設計のフレームワークを提供し、HDC 2022までにHarmonyOS 3.1向けのArkTS開発に進化しました。ArkTSは、2021年12月31日にOpenAtomのOpenHarmony 3.1ベータ版でドキュメントとともに初めて登場しました。[10] 2023年12月以降、ArkUIはOpenHarmony 4.0に進化しており、 ArkTSプログラミング言語サポートとAPIを備えたEclipse FoundationのグローバルOpenHarmonyベースのOniro OSでもあります。また、ファーウェイは、ArkUIをArkUI-Xと呼ばれるクロスプラットフォーム宣言型UIに進化させ、Android、iOS、Microsoft Windows、macOSなどの複数のプラットフォームに導入することで、アプリの開発時間とコストを削減すると発表しました。HarmonyOSアプリケーションソフトウェアスタックテクノロジーを共有するコンテナにEulerOSを含めることで、相互運用性が容易になります。[11] [12]
バージョン履歴
OpenHarmony (API 7) と HarmonyOS (API 8) コンバージェンス SDK を使用した ArkTS リリースのバージョン履歴。
[13]
プラットフォーム
ArkTS がサポートするプラットフォームは、HarmonyOS、Linux、Windows、macOS、iOS、Android です。
ArkTS設計の重要な側面は、HarmonyOS設計言語システム、グラフィカルユーザーインターフェイスシステムなど、HarmonyOSの以前のバージョンよりもHuawei製品向けに開発された既存のeTSおよびJavaScriptコードの膨大な量と相互運用できることです。HarmonyOSを実行しているHuaweiデバイスでは、eTSランタイムライブラリとリンクしており、 DevEco StudioテンプレートのネイティブAPI、C、C ++、およびArkTSコードを1つのプログラム内で実行できます。[14]
特徴
ArkTS は、最新のプログラミング言語理論の概念を採用し、シンプルでありながら強力な構文を提供することを目指した汎用プログラミング言語です。ArkTS は、さまざまなプログラミング言語の革新と慣習を取り入れており、HarmonyOS の主要な開発言語として置き換えられた TypeScript から大きな影響を受けています。
ArkTSは、速度を犠牲にすることなく、初心者プログラマーにとって安全で使いやすいように設計されています。デフォルトでは、ArkTSはすべてのメモリを自動的に管理し、変数が使用前に常に初期化されるようにします。配列アクセスは範囲外エラーがないかチェックされ、整数演算はオーバーフローがチェックされます。パラメータ名により、明確なAPIを作成できます。プロトコルは型が採用できるインターフェースを定義し、拡張機能により開発者は既存の型に機能を追加できます。ArkTSは、クラス、サブタイプ、メソッドオーバーライドをサポートし、オブジェクト指向プログラミングを可能にします。オプションにより、nil値を明示的に安全に処理できます。並行プログラムはasync/await構文を使用して記述でき、アクターは共有された可変状態を分離してデータ競合を排除します。[15]
例
以下は、単純なHello Worldプログラムの例です。ArkTSプログラミング言語を使用したArkUIでは、アプリケーションの構造体とビューを別の構造体に分離し、メインビューを と名付けるのするのが標準的な方法ですIndex。[16]
ArkTSをインポート// Index.ets
'@ohos.router'からルーターをインポートします。
@Entry
@Component
構造体 Index { @State message : string = 'Hello World'
build () { Row () { Column () { Text ( this . message ) . fontSize ( 50 ) . fontWeight ( FontWeight . Bold ) // ユーザーのクリックに応答するボタンを追加します。Button () { Text ( 'Next' ) . fontSize ( 30 ) . fontWeight ( FontWeight . Bold ) } . type ( ButtonType . Capsule ) . margin ({ top : 20 }) . backgroundColor ( '#0D9FFB' ) . width ( '40%' ) . height ( '5%' ) // onClick イベントを Next ボタンにバインドして、ボタンをクリックするとユーザーが 2 ページ目にリダイレクトされるようにします。. onClick (() => { router . pushUrl ({ url : 'pages/Second' }) }) } . width ( '100%' ) } .高さ( '100%' ) } }
ArkUI-X
ArkUI-Xは、Huaweiが開発したArkTS開発用のArkUIの拡張であるオープンソースのUI ソフトウェア開発キットです。Android、iOS、OpenHarmony、Oniro OS、HarmonyOSなどのあらゆるプラットフォーム向けに、単一のコードベースからクロスプラットフォームアプリケーションを開発するために使用され、2023年8月4日のCanary 1ビルドの後、2023年12月8日にリリースされました。[17] ArkUIは、古いInterface Builderパラダイムを新しい宣言型開発パラダイムに置き換えます。
Ark TypeScript ランタイム
ARK TypeScript ランタイムは、OpenHarmony 上の旧 HarmonyOS 3.0/OpenHarmony 3.1 API 8 eTS (extendedTypeScript) から派生した ArkTS アプリケーションや、カスタム OpenHarmony ベースの HarmonyOS NEXT コア オペレーティング システムを活用した HarmonyOS アプリで使用されるランタイムです。これには、ArkTS/JS オブジェクト用のアロケータとガベージ コレクター (GC)、ECMAScript 仕様に準拠した標準ライブラリ、ARK フロントエンド コンポーネントによって生成された ARK バイトコード (abc) を実行するためのインタープリター、高速化のためのインライン キャッシュ、静的に型付けされたコンパイラ、実行時のネイティブ API (NAPI) アプリケーション開発用の C++/C 関数インターフェイス、およびHarmonyOS 3.1 SDK と OpenHarmony 3.2 SDK API 9 の両方でバージョン 3.1.1 以降 DevEco Studio を介して事前コンパイルされるその他のモジュールが含まれています。 [18]
ets_フロントエンド
ets_frontendは、ETSプログラミング言語ファイルをARKバイトコードファイルに変換することをサポートするace-ets2bundleコンポーネントを組み合わせたARKランタイムサブシステムのフロントエンドツールです。これらは、OpenHarmonyでのArkTSアプリ開発とHarmonyOS NEXTシステムでのHarmonyOS開発に対応しています。[19]
デバッグ用のArkCompilerツールチェーン
ArkCompilerツールチェーンは、デバッガ、CPUProfiler、HeapProfilerなどのArkTSアプリケーション開発用のデバッグツールを開発者に提供します。Arkツールチェーンが提供するデバッグおよびチューニング機能は、ArkCompilerランタイムに依存して開発者にランタイム関連の情報を提供するDevEco Studio IDEを通じて使用されます。[20]
開発ツール
コンパイラ
Ark Compilerは、 JS、TS 、ArkTSなどのさまざまな動的および静的プログラミング言語をサポートしています。これは、OpenHarmonyとHarmonyOS NEXTをスマートデバイス、携帯電話、PC、タブレット、テレビ、自動車、ウェアラブルなどの複数のデバイス形式で実行できるようにするコンパイルおよびランタイムベースです。ArkCompilerは、コンパイラツールチェーンとランタイムの2つの部分で構成されています。[21]
IDEとエディターのサポート
デフォルトの宣言型ArkUIを使用したHarmonyOS開発用のDevEco Studio、OpenHarmony SDK上の他のサードパーティUIフレームワーク、AndroidとiOSをサポートするArkUI-Xクロスプラットフォーム開発。[22]
参照
参考文献
- ^ 徐, 礼文. HarmonyOS オペレーティングシステム统应用开発行实战(JavaScript版)[ HarmonyOS オペレーティングシステムを使用した実践的なアプリケーション開発 (JavaScript 版) ]。清華大学出版局。ISBN 9787302600312。
- ^ Amit (2022年11月14日). 「速報:Huawei HarmonyOS 3.1のタイムラインが発表されました[開発者プレビューがリリースされました]」. Huawei Update . 2024年2月12日閲覧。
- ^ 「ArkTSを使い始める」。OpenAtom OpenHarmony 。 2024年2月12日閲覧。
- ^ Amit (2022年11月14日). 「速報:Huawei HarmonyOS 3.1のタイムラインが発表されました[開発者プレビューがリリースされました]」. Huawei Update . 2024年2月12日閲覧。
- ^ NYAME, FREDERICK (2023年7月26日). 「HARMONYOS 4.0に備えよう: 8月4日に公式発表」GIZMOCHINA . 2024年2月12日閲覧。
- ^ Paul, Peter. 「HarmonyOS NEXT 発表: Android APK に依存しないスタンドアロン OS!」GIZGUIDE . 2024 年2 月 12 日閲覧。
- ^ Li, Deng (2023年10月28日). 「OpenHarmony 4.0リリースバージョンがAPI 10とともにリリースされました」. HC Newsroom . 2024年2月12日閲覧。
- ^ Li, Deng (2024年1月). 「オープンソースのHarmonyOS 4.1リリースベータ1、API 11インターフェース付き」. HC Newsroom . 2024年2月12日閲覧。
- ^ Zhang, Phate Zhang (2020年9月25日). 「HuaweiのHarmonyOS誕生の裏側」. CNTechPost . 2024年2月12日閲覧。
- ^ “OpenHarmony 3.1 ベータ版”. OpenAtom OpenHarmony 。2024 年2 月 15 日に取得。
- ^ 「HarmonyOS 3.0およびOpenHarmony 3.1ベータ版リリース用のDevEco Studio 3.0がリリースされました」。Develop Know 。 2024年2月12日閲覧。
- ^ Li, Deng (2022年11月17日). 「Huawei DevEco Studio 3.1 Canary のロールアウト」. HC Newsroom . 2024年2月12日閲覧。
- ^ “OpenHarmony 5.0.0 リリース”.ぎてぃ。 OpenAtom OpenHarmony 。2024 年10 月 13 日に取得。
- ^ 「 HarmonyOS 3.0.0 開発者プレビュー」。HarmonyOS 。 2024年2月12日閲覧。
- ^ 「ArkTSチュートリアル」(PDF) . OpenAtom Gitee . 2024年2月12日閲覧。
- ^ 「ステージモデルでのArkTS入門 - ページリダイレクトの実装」。HarmonyOS 。2024年2月12日閲覧。
- ^ 「ArkUI-X リリースノート」。ArkUI -X GitHub 。 2024年2月12日閲覧。
- ^ 「ArkCompiler JS Runtime - ets Runtime」。OpenAtom Gitee 。 2024年2月12日閲覧。
- ^ "ets_frontend". OpenAtom Gitee . 2024年2月12日閲覧。
- ^ 「Ark ツールチェーン コンポーネント」。OpenAtom Gitee。2024年2 月 12 日閲覧。
- ^ 「ArkCompiler Runtime」。OpenAtom Gitee 。2024年2月12日閲覧。
- ^ 「ArkUI-X SDK」。ArkUI -X GitHub 。 2024年2月12日閲覧。
外部リンク
- [1]
- ArkTS 言語仕様
