[HarmonyOS 開発] ArkUI-X クロスプラットフォーム フレームワーク (ArkTs を使用した Android および IOS の開発)

写真

ArkUI-X クロスプラットフォーム フレームワークは、ArkUI 開発フレームワークを複数の OS プラットフォームにさらに拡張し、現在 OpenHarmony、HarmonyOS、Android、iOS をサポートしていますが、将来的にはさらに多くのプラットフォームのサポートが追加される予定です。開発者は 1 つのマスター コードに基づいて、複数のプラットフォームをサポートする美しく高性能なアプリケーションを構築できます。

1. クロスプラットフォーム フレームワークとは何ですか?

1、リアクトネイティブ

  • React Native は、JavaScript と React をベースにしたオープンソース フレームワークで、Facebook によって開発および保守されています。

  • JSX と呼ばれる構文を使用して、コンポーネントの構造と動作を宣言コードとして記述します。

  • React Native は、デバイスのネイティブ機能にアクセスする機能を提供し、組み込みのネイティブ コンポーネントとモジュールを使用することで、開発者はネイティブのユーザー エクスペリエンスを備えたアプリケーションを作成できます。

  • React Native コードは複数のプラットフォーム間で共有および再利用できるため、クロスプラットフォーム アプリケーションの開発と保守がより効率的になります。

2、フラッター

  • Flutter は、高性能のクロスプラットフォーム モバイル アプリケーションを構築するために Google によって開発されたオープンソース フレームワークです。

  • Flutter は、強力な型指定、非同期プログラミング、ホット リロードなどの最新の構文と機能を備えた Dart 言語を使用します。

  • Flutter は、高パフォーマンスのユーザー インターフェイスを実装するための独自のレンダリング エンジンを提供し、iOS、Android、および Web プラットフォームで実行できます。

  • Flutter を使用すると、開発者は単一のコード ベースから、美しく応答性の高いネイティブのようなアプリケーションを作成できます。

3、Xamarin

  • Xamarin は、Microsoft によって開始されたクロスプラットフォームのモバイル アプリケーション開発フレームワークです。

  • C# 言語と .NET プラットフォームを使用しており、開発者は共有コード ベースを使用して、iOS、Android、Windows などのネイティブ アプリケーションを構築できます。

  • Xamarin は、デバイス関数とネイティブ API へのアクセスを提供します。開発者は、Xamarin.Essentials を使用して、カメラやセンサーなどの一般的に使用されるデバイス関数にアクセスできます。

  • Xamarin は、開発の生産性を向上させ、クロスプラットフォーム アプリケーションの作成を簡素化するためのツールとコンポーネントの豊富なライブラリも提供します。

4、イオン性

  • Ionic は、クロスプラットフォームのモバイル アプリケーションを構築するための Web テクノロジーに基づくオープン ソース フレームワークです。

  • HTML、CSS、JavaScript を使用してアプリケーションを構築し、WebView を使用してさまざまなプラットフォームで実行します。

  • Ionic は、Angular フレームワークと Cordova プラグインを組み合わせて、豊富な UI コンポーネントとネイティブ機能へのアクセスを提供します。

  • Ionic を使用すると、開発者は単一のコード ベースを使用してモバイル アプリケーションを作成し、iOS、Android、および Web プラットフォームに展開できます。

5、ネイティブスクリプト

  • NativeScript は、開発者が JavaScript、TypeScript、または Angular を使用してネイティブ アプリケーションを構築できるようにする、オープン ソースのクロスプラットフォーム モバイル アプリケーション フレームワークです。

  • ネイティブ コンポーネントと API、および組み込みの JavaScript ランタイムを使用して、JavaScript コードをネイティブ コードに変換します。

  • NativeScript はデバイス機能へのアクセスを提供し、開発者はプラグインを使用してアプリケーションの機能を拡張できます。

  • NativeScript は、開発者のさまざまなニーズを満たすために、Angular、Vue.js、および React フレームワークもサポートしています。

6、睡眠アプリ

  • UniApp は、Vue.js を主要な開発フレームワークとして使用し、Vue.js に基づいた一連のコンポーネントと API を提供するため、開発者は使い慣れた開発方法を使用してクロスプラットフォーム アプリケーションを構築できます。開発者はコードを一度記述するだけで、コンパイルと変換のプロセスを経て、さまざまなプラットフォーム上で対応するネイティブ アプリケーションを生成できます。

  • UniApp は、デバイス機能とネイティブ API にアクセスする機能を提供します。開発者は、プラグインまたは組み込み API を使用して、カメラ、位置情報、センサーなどへのアクセスなど、デバイスと対話できます。さらに、UniApp は、より優れたユーザー エクスペリエンスとパフォーマンスを提供するために、いくつかのプラットフォーム固有の拡張機能と最適化オプションも提供します。

2. OpenHarmony のクロスプラットフォーム ArkUI-X

1. C++ を使用してバックエンド エンジン コード全体を記述し、複数のプラットフォーム間での移植性を維持し、プラットフォームへの依存を最小限に抑え、プラットフォームの移植コストを削減します。 

2. 全体的な描画には、プラットフォームへの依存を軽減し、描画効果の一貫性をさらに向上させるための自己レンダリング メカニズムが採用されています。 

3. 異なるプラットフォームの適応を容易にするために、プラットフォーム アダプテーション層とプラットフォーム ブリッジング層を抽象化します。

写真

1. DevEco Studo 4.0 beta2+ をダウンロード

IDE ダウンロードアドレスwidth=device-width,initial-scale=1.0 icon-default.png?t=N7T8https://docs.openharmony.cn/pages/v4.0/zh-cn/release-notes/OpenHarmony-v4.0-release.md/#% E9%85%8D%E5%A5%97%E5%85%B3%E7%B3%BB

写真

2.ArkUI-X SDKをインストールする

2.1 OpenHarmony API10のインストール

写真

2.1 ArkUI-X SDKのインストール

写真

3.ArkUI-Xプロジェクトを作成する

3.1 新規 => インポート => サンプルプロジェクトをインポート

写真

3.2 サンプル Hello World プロジェクトに基づいて ArkUI-X を開発する

Harmony をOpenHarmony変更しArkUI-Xの下のサンプル プロジェクトを選択します。

写真

3.3 作成後、システム環境を自動的にチェックし、依存関係をインストールします

写真

4. カタログの説明

コンパイルが完了したら、.arkui-x内のAndroid / IOSを対応するプラットフォームに直接インポートします。

ArkUI-X アプリケーション プロジェクト
  ∴── .arkui-x 
  │ §── android // Android プラットフォーム関連コード
  │ └── ios // iOS プラットフォーム関連コード
  §── .hvigor 
  §── .idea 
  §── AppScope 
  §── ─ エントリ
  §── hvigor 
  ├── oh_modules 
  §── build-profile.json5 
  §── hvigorfile.ts 
  §── local.properties 
  └── oh-package.json5

写真

Linux、Windows など、より多くのプラットフォームとの互換性を期待しています。

3.拡張機能: XComponent (動的ロード/ EGL/OpenGLES レンダリング)

スキャン機能の開発時に面白いコンポーネントを見つけたので使用したので記録します。

描画コンポーネントとして、 XComponentコンポーネントは通常、カメラ プレビュー ストリームの表示やゲーム画面の描画など、開発者のより複雑なカスタム描画ニーズを満たすために使用されます。 

type フィールドを指定することでさまざまな機能を実装することができ、主に「surface」フィールドと「component」フィールドの 2 つから選択できます。

「サーフェス」タイプの場合、開発者は、XComponent が別途所有する「サーフェス」に関連データを渡して画面をレンダリングできます。 

「コンポーネント」タイプは、主にコンテンツを動的にロードして表示するために使用されます。

名前 説明する
表面 EGL/OpenGLESやメディアデータの書き込みに使用され、開発者がカスタマイズした描画内容を個別に画面上に表示します。
成分 XComponent はコンテナ コンポーネントになり、その中で非 UI ロジックを実行して表示コンテンツを動的にロードできます。
テクスチャ EGL/OpenGLES およびメディア データの書き込みに使用され、開発者がカスタマイズした描画コンテンツが XComponent コンポーネントのコンテンツと合成され、画面に表示されます。

例証します:

type が COMPONENT (「コンポーネント」) の場合、XComponent はコンテナーとして機能し、サブコンポーネントは垂直方向にレイアウトされます。

  • フォーマットを垂直方向に整列: FlexAlign.Start

  • 水平方向に整列された形式: FlexAlign.Center

@Builder
function addText(label: string): void {
  Text(label)
    .fontSize(40)
}

@Entry
@Component
struct Index {
  @State message: string = 'Hello XComponent'
  @State messageCommon: string = 'Hello World'
  build() {
    Row() {
      Column() {
        XComponent({ id: 'xcomponentId-container', type: 'component' }) {
          addText(this.message)
          Divider()
            .margin(4)
            .strokeWidth(2)
            .color('#F1F3F5')
            .width("80%")
          Column() {
            Text(this.messageCommon)
              .fontSize(30)
          }
        }
      }
      .width('100%')
    }
    .height('100%')
  }
}

@BuilderaddText関数を動的にロードする

おすすめ

転載: blog.csdn.net/qq_23334071/article/details/135411746