クロスプラットフォームライブラリとAPI
Qt Creator IDEと生産性向上ツール
UI compositionのためのUIデザインツール
Qtプロジェクト向け
モバイルアプリのデジタル広告
受託開発、トレーニング、サポート等
組み込み向けユーセージ分析
Qtは、UIデザインやソフトウェア開発から品質保証、展開に至るまで、製品開発ライフサイクル全体で生産性を向上させます。あなたのニーズに最も適したソリューションを見つけてください。
最新のリソースを入手し、今後のイベントを確認しましょう。
理想的な学習リソースを見つけたり、コミュニティと交流したりして、Qtのスキルを向上させましょう。
初心者であろうとベテランのQtプロであろうと、成功するために必要なサポートと助けがすべて揃っています。
11月 29, 2022 by Qt Group 日本オフィス | Comments
このブログ記事は「https://www.qt.io/blog/qt-webassembly-qa-part-1」の翻訳です。
WebAssemblyは、C++などの高級プログラミング言語がターゲットとするバイトコード表現で、ブラウザ上の仮想マシン内部で実行されることを想定しています。これにより、組込み機器やアプリケーションなどのソフトウェアの設計方法が大きく変わるでしょう。Qt for WebAssembly は、Google Chrome や Mozilla Firefox などの一般的な Web ブラウザで C++ アプリケーションを実行することができ、さらに多くのブラウザをサポートするための努力も続けています。
WebAssemblyについてもっと知りたいけど、誰に聞けばいいのかわからない?私たちはシニアプロダクトマネージャのVeli-Pekka Heinonenに、開発者コミュニティから送られてきた11の質問を投げかけてみました。これは継続的なシリーズなので、次号でもコミュニティからの質問に回答していきます。
Q1: SQLモジュールに対応しますか?
VP: 現在SQLiteはQtSQLモジュールの一部としてサポートされています。
Q2: Qt WebAssembly は Qt 6 でどのようなライセンスが必要ですか?
VP: WebAssemblyプラットフォームは、GPLv3ライセンスと商用ライセンスの両方で提供されています。言い換えればオープンソースとコマーシャルの両方の顧客が利用可能です。現在のところWebAssemblyのこのデュアルライセンスモデルを変更する予定はありません。
とはいえ、DesignViewer のような付加価値のある商用のみのモジュールや Qt Charts のような GPLv3 のモジュールは、WebAssembly に加えて、商用のみ、またはモジュールがサポートするすべてのプラットフォームで GPLv3 であることを覚えておくとよいでしょう。
Q3: WebAssembly が iOS のポップアップキーボードをサポートするようになるのはいつですか??
VP: Qt 6.4 では iOS キーボードを実験的にサポートしていますがこの機能はまだ完成していません。
Q4: Qt は特にローカルのハードウェア(オーディオなど)にアクセスする際に、安全な WebAssembly アプリケーションの開発および配備をサポートするために、どのような取り組みを行っていますか?
VP: WebAssemblyプラットフォームは、Webアプリができることに制限を設けるJavaScriptサンドボックスなどの基本的なセキュリティ機能を提供します。またQt はローカルファイルアクセスなどの機能にも取り組んでいます。詳細はこちらをご覧ください。
Q5: Qt Widget Appは、WebAssemblyで作成できますか?
VP: しかし、アプリケーションの要件によっては、JavaScriptのサンドボックスと WebAssemblyのプラットフォームに対応するために、いくつかの点を微調整する必要があるかもしれません。例えば、サポートされるQtモジュール、マルチスレッド、ネットワーキング、ローカルファイルアクセスなどがあります。全容はこちらでご覧になれます。
Q6: 私たちのアプリケーションが VTK、ITK、boost などの他のサードパーティライブラリを使用する場合、Qt 6.4 を使用すると WebAssembly での展開処理はどのくらい簡単になりますか?
VP: ダイナミックリンクはいくつかのプラットフォームの制限により現在サポートされていません。しかし次期バージョンでこれを変更するための作業が進行中です。静的リンクはすでに使用可能です。
Q7: WASMのマルチスレッド化、QT_EMSCRIPTEN_ASYNCIFYを有効にすべきですか?
VP: QDialog::exec() のようなメインスレッドをブロックする API 呼び出しを行う場合、Asyncify を有効にすることができます。マルチスレッドは、アプリケーションがメインスレッドに加えて複数のスレッドを使用する必要がある場合、またはそれによって利益を得ることができる場合に有効にすることができます。
Q8: QMLなしでWebAssembly(UIを含む)を使用することは現在(あるいは将来)可能ですか?
VP: Qt for WebAssembly は、低レベルではありますが、UIに様々な機能を提供するウィジェットもサポートしています。また、スクリーンリーダベースのサポートは、(6.4にはない)開発ブランチのウィジェットに用意されており、必要に応じて活用することができます。
Q9: Qt 5.xでWebAssemblyは完全にサポートされていますか?
VP: Qt 5.15 は WebAssembly をターゲットとしてサポートしていますが、いくつかの機能制限がありQt 6 で対処される予定です。プロフェッショナルサービスではQt 6 から Qt 5 への機能移植をサポートします。
Q10: Qt for WebAssemblyアプリは、JavaScriptを通してlocalstorageやindexedDBのようなWeb APIブラウザストレージにアクセスすることができるのでしょうか?
VP: ファイルシステムへのアクセスはウェブ上でサンドボックス化されており、これはアプリケーションがファイルを扱う方法に影響を及ぼします。Web プラットフォームは、ユーザーの制御下にある方法でローカル ファイル システムにアクセスするための API と、永続的なストレージにアクセスするための API を提供します。EmscriptenとQtはこれらの機能をラップし、C++やQtベースのアプリケーションから使いやすいAPIを提供します。詳細はこちらをご覧ください。
Q11: Qt 6.4は、WebAssemblyのQOpenGLWidgetをサポートしますか?
VP: Qt 6.4でQOpenGLWidgetが動作するようになりました。
Download the latest release here: www.qt.io/download.
Qt 6.7 focuses on the expansion of supported platforms and industry standards. This makes code written with Qt more sustainable and brings more value in Qt as a long-term investment.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
10 3, 2024
本稿は「Qt for Android Automotive 6.7.3 is released」の抄訳です。..
10 2, 2024
本稿は「Qt Creator 14.0.2 released」の抄訳です。 Qt Creator 14.0.2のリリースをお知らせいたします。..
9 28, 2024
本稿は「Qt 6.7.3 Released」の抄訳です。 Qt 6.7.3 をリリースしました。パッチリリースである Qt 6.7.3..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.