Qt 5.12 LTS ベータ版リリース

この記事は The Qt BlogQt 5.12 LTS Beta Released を翻訳したものです。
執筆: Tuukka Turunen, 2018年10月05日

本日 Qt 5.12 LTS のベータ版をリリースいたしました。Qt 5.12 LTS は堅牢な製品開発のベースとして期待されるバージョンで、3年間のサポート期間中にいくつものパッチレベルのアップデートが行われる予定です。今後開発が始まるプロジェクトだけではなく、現在進行中のプロジェクトに関しても、まもなくリリースされる Qt 5.12 LTS へのアップデートを推奨します。オンラインインストーラー経由でのダウンロードにも対応しているため、今回の最初のベータ版を今すぐ試していただく事が可能です。

ここで紹介すべき事はたくさんありますが、まずは Qt 5.12 LTS のハイライトを紹介したいと思います。新機能の概要の一覧は Qt 5.12 の wiki ページ をご覧ください。また、様々な新機能を紹介するためのブログ記事や、ウェブセミナーも予定しています。

長期サポート(LTS)

Qt 5.12 LTS は長期サポートのリリースとなります。今後3年間サポートが行われ、その後も延長サポートの購入が可能となります。LTS ということで、バグフィックスやパフォーマンスの改善、セキュリティホールの修正などを含むパッチリリースが今後継続的に行われます。現時点で新しいプロジェクトを立ち上げる際には Qt 5.12 LTS のプレリリース版をお使いいただくことも可能です。既存のプロジェクトについても、5.12 LTS の正式リリースが行われた際にはそちらへの移行を推奨します。

Qt 5.9 LTS は 2018年2月に ‘Strict’ フェーズ に到達しました。このフェーズでは、Qt 5.9 では深刻なバグの修正やセキュリティの対応を進めていく予定です。今後も Qt 5.9.x のパッチリリースは継続しますが、これまでより更新の間隔は長くなる予定です。Qt 5 系の LTS でもっとも古い Qt 5.6 LTS については、'Very Strict' フェーズ の最後のステップにあり、当面は深刻なセキュリティの修正のみを受け付ける予定です。現時点では、新たなパッチリリースの予定はありません。2018年3月にサポート期限を迎える Qt 5.6 LTS をご利用の方は、新しいバージョンへのアップデートをご計画ください。

LTS 版の Qt に対して行われる変更の量を徐々に減らしている理由は、安定性を担保するためです。個々の変更には取り込むための十分な理由があったとしても、振る舞いの変更や何かを壊してしまうリスクは常に伴います。これを LTS では避けたいと思っています。

パフォーマンス

パフォーマンスの改善と、メモリ消費量の削減は Qt 5.9 LTS の時代より重要なテーマの一つで、Qt 5.12 LTS でも継続的に取り組んでいます。グラフィックスまわりを中心に様々な最適化を行い、今回は特に組み込みデバイス上での Qt 3D と Qt Quick のパフォーマンスが改善されました。

Qt 5.12 LTS には Qt 5.10 と 5.11 で行ったアセットの条件の変更や改善が含まれています。重要な新機能として、フォントの Distance Field のキャッシュの事前生成の対応があげられます。これは、ラテンではない複雑なフォントを利用する際の起動時間の短縮化に寄与します。

QML のエンジンにも改善や最適化がなされました。特に Qt 5.12 LTS ではメモリ消費量の削減に取り組んでいます。

TableView

これまで多くの要望があった TableView が Qt 5.12 LTS でようやく対応いたしました。この TableView エレメントは Qt Quick モジュールで利用可能です。TableView は既存の ListView に複数のカラムの対応がなされたようなコントロールになります。この TableView はパフォーマンスを念頭に置いて開発されたもので、大きなテーブルに対しても効率よく処理を行います。これに関しては TableView のブログ記事 をご覧ください。

Qt 5.12 LTS では、 TableView の導入だけでなく、 Qt Quick Controls 2 や Qt VirtualKeyboard にも様々な改善や新機能の提供もしています。

操作のハンドリング

Qt 5.12 LTS では新たな Input Handler (元々 Pointer Handler と呼ばれていたもの)を正式にサポートしました。これまでに多くの時間を費やしましたが、ようやく納得のいくものに仕上がりました。この新機能は特にマルチタッチやマルチディスプレイのアプリケーションの操作の処理の融通性を改善します。この分野では、これまで提供していた機能では十分な対応ができていませんでした。この新機能では、例えばカメラや照度センサーを用いたハンドジェスチャーといった様々な操作の対応が可能になります。

Input Handler は様々なシーンで並列に動作可能な(プレス、ホールド、リリース、ドラッグ、スワイプ、ピンチといった)基本的なマウス、タッチ、マルチタッチのジェスチャー の QML の API を提供します。複数のアイテムを、同時に、複数のスクリーンで扱うことができます。C++ の API も提供していますが、Qt 5.12 では非公開の API となっています。

Python、Remote Objects、WebGL Streaming Plugin の正式対応

Qt 5.12 LTS を基に、Qt 5.11 をベースにテクノロジープレビューを提供していた Qt for Python のアップデートを行いました。Python のコミュニティはとてもアクティブで拡大しており、Qt 5.12 LTS のすべての機能を網羅した Qt for Python を提供できる事をうれしく思っています。Qt for Python は PyPI(Python Package Index) を利用することで簡単にはじめることができるようになっています。

Python の対応に加え、Qt Remote Objects と Qt WebGL Streaming Plugin も Qt 5.12 LTS で正式対応となりました。Qt for WebAssenbly は Qt 5.12 LTS でも依然としてテクノロジープレビューとなっております。

デザイナーと開発者向けのツール

Qt 5.12 LTS を最大限活かせるように、ツールに関してもアップデートを行っています。まもなくリリース予定の Qt Design Studio 1.0 では Qt 5.12 LTS のプレリリース版を利用しており、正式リリース時にはそちらに移行する予定です。Qt Creator 4.8 も Qt 5.12 LTS とともにリリースする予定で、(新たなプログラミング言語の対応や複数のデバッグセッションの同時対応など)楽しみな新機能が含まれます。Qt Creator 4.8 はいつもどおり、様々なバージョンの Qt に対応可能です。12月には Qt 3D Studio 2.2 をリリースします。このリリースでは Qt 5.12 LTS での 3D 関連の様々な改善をフルに利用する予定です。

正式リリースまでの流れ

Qt 5.12 LTS のベータ1が本日リリースされ、今後もオンラインインストーラーを通じてベータNをいくつかリリースする予定です。これにより、ユーザーが簡単に最新のものを試し、結果をフィードバックいただけると思っています。ベータのフェーズでは、2週間おきに新たなベータ版をリリースする予定をしています。このプロセスで十分なレベルに達した後で、Qt 5.12 LTS のリリース候補版をリリースいたします。こちらもオンラインインストーラーで入手可能になります。今後のベータ版とリリース候補版のリリースに際しては、その都度ブログ記事を書く予定はありません。バイナリだけではなく、ソースパッケージもそれぞれのベータリリースで提供されます。ご自身でビルドしたい方はこちらをお試しください。

Qt 5.12 LTS のベータ版を試してみよう

1人でも多くの方が、Qt 5.12 LTS のベータ版をインストールして、テストを行い、正式版に向けたフィードバックをしていただけることを願っています。不具合を見つけた際には、お手数ですが bugreports.qt.io へバグの報告をお願いします(その際にはどのベータ版かの記載と、既知の問題 の確認をお願いします)。また、Qt Project のメーリングリスト開発者フォーラム での議論や、Qt への貢献 も大歓迎です。

Qt のオンラインインストーラーをお使いでない方は、Qt Account もしくは Qt のダウンロードページ から入手してください。


Blog Topics:

Comments