Qt Jenny 1.0 リリース

このブログは「Qt Jenny 1.0 Released」の抄訳です。

「Jenny」をご存知でしょうか?今回ご紹介するのは、情報時代の新しいツール、コードジェネレーターとしてのJennyです。Qtで開発をされている方、特にクロスプラットフォーム開発でGoogle Playにアプリをデプロイされている方は、ぜひこの先をお読みください!

Qt Jennyは、Java/Android JNI用グルー/プロキシQtコード生成ツールです。Maven Centralから入手可能です。Qt Jennyは、LanderlYoungによるJennyのフォーク版です。オリジナルとの主な違いは、QJni(QJniObjectなどのクラス)を用いたJNI呼び出しのグルーイングをサポートしている点です。これにより、Qt for Androidの強力な機能とAndroid JavaネイティブAPIの魔法がQtにもたらされます!

Qt Jennyは、2つのMavenアーティファクトで構成されています:コンパイラアノテーションプロセッサです。前者のコンパイラは、Javaアノテーションプロセッサであり、AndroidのJavaネイティブクラスに基づいてJNI(Java Native Interface)呼び出し用のQt C++ APIを生成します。必要なグルーコードの作成を自動化し、Android JavaアプリケーションとQt C++ライブラリやアプリケーションの統合を容易にします。後者のアノテーションプロセッサは、JNIバインディングを必要とするメソッドやクラスをJavaアノテーションでマークします。これらのアノテーションが提供するメタデータをもとに、コンパイラが適切なQt C++コードを生成します。

画期的なQt Jennyでは、バッテリー管理APIなど任意のAndroid Javaネイティブ管理インターフェースを選択し、Qt Jenny内で生成対象インターフェースとして設定できます。これによりQt C++ APIの自動生成が可能となり、JNIを介したQt C++コードとAndroid Javaの接続処理を一切行わずに、ネイティブAndroid Java APIへ容易にアクセスできます。コールバックや通知(どちらの用語を使用される場合でも)も同様にサポートされています。これは非常に優れた機能です。JNIでの実装はかなり困難なためです。

Qt 6.10.0および6.9.3以降では、他のQtサンプルと同様に、QtオンラインドキュメントQt Creator内のデモとしてJennyのサンプルをご覧いただけます。こちらのサンプルでは、AndroidネイティブマネージャーインターフェースであるBatteryManagerPowerManagerVibratorManagerAudioManagerの使用方法を実演しています。Qt JennyのドキュメントはオンラインおよびQt Creator内でもご覧いただけます。ドキュメントでは機能の説明に加え、インストール方法、設定方法、ジェネレーターの内部動作といった「How-to」も解説しています。文書説明はこの程度とし、実際の動作や使用方法については以下の動画をご覧ください!

 

魅力的だと思いませんか?ぜひお試しください!

ご意見がありましたら、https://bugreports.qt.io/projects/QTTAにて修正提案または機能要望をお寄せください。コンポーネントとして「QtJenny: General」を指定することを忘れずにお願いします。


Blog Topics:

Comments