SlideShare a Scribd company logo
Qtではじめるクロスプラットフォーム
アプリケーション開発OSC2019 Nagoya
13 Jul 2019
本日の内容
>Qt概要
>Qtの特徴
>最新のQtをつかってみよう
>もっとQt
Qt概要
Qtとは
高速な動作と、簡単でわかりやすい
C++ / Python クラスライブラリと
アプリケーション開発ツール
Qtで作られているもの
Kindle Desktopアプリ LINE Desktopアプリ
adobe element organizer
LeME(電子書籍の作成)
Bitcoin Core Guitar(Gitクライアント)
Qtで作られているもの
Panasonic Avionics
飛行機設備Tesla Model S UI
Medec Benelux
手術室麻酔人口呼吸器
DMG MORI
工作機械の制御端末
Wittenborg
コーヒーメーカー UI
Hasselbland
カメラ UI
LG smartTV
webOSアプリ
Qt3
Qtの歴史
Trolltech社からリリースされ、ここからちゃくちゃ
くとプラットフォームをふやしていく事になる。
1st Public Versionをリリース
NokiaがMicrosoftと携帯電話事業を提携。
Windows Phoneの採用を進める事からQtい
らない子に!
$153Mで買収される。Nokiaの携帯電話プ
ラットフォームのSymbian/MeeGoの開発ツール
としてサクッと売られる.....。
NokiaによってTrolltech買収される
DigiaのQt事業部を分社化して、Qt開発に専
念する独立した会社を立ち上げる。
Qt Projectの立ち上げ
2016
1995 2012
2008 2014
DigiaによってQt関連事業を
Nokiaから買収される
Qtによる開発支援・プロダクトの強化として設
立。今まで英語でしか対応できなかったQAが
日本語でも対応可能に!
The Qt Company
日本支店設立
親会社のDigiaからスピンオフしてQtの開発に
専念する事。このときから、Webサイトも
www.qt.ioになる。
The Qt Company発足
1999 2001 2005 2012
5.6.3LTS 5.9.8LTS
5.12.4LTS
(2019/6/17)
2016 2017
Qt1 Qt2 Qt4 Qt5
2018
12/6
2019
5.13.1
Qtのライセンス体系
Qt オープンソース ライセンス
> GNU LGPL v3が適用
> RTOS関連(QNX , INTEGRITY, RTEMS)を
使うにはオープンソース版はちょっと苦しい。
Qt 商用(Commercial) ライセンス
> 有償(1開発者当り、毎年発生)
(オープンソースライセンスとの違い)
> 付帯機能に対してもLGPL v3除外
> 組み込み関連のサポート/便利機能
> Qt Companyのサポート
オープンソースライセンスについては、
[Qt ライセンスについて – Qiita @yunma](https://qiita.com/ynuma/items/e8749233677821a81fcc)
Qtライセンスの詳細は、
[Get Qt](https://www.qt.io/download)
Qt Communityの現状
参照: https://www.macieira.org/blog/qt-stats/
> 歴史が長いCommunityだが
Total Commit数(上) / Commitユニークユーザー数(下)は継続的にある。
(表は、qt-baseの変更履歴)
Qt Communityの現状(直近16週)
参照: https://www.macieira.org/blog/qt-stats/
直近16週分のCommittersドメイン毎の比率
> 5~15%は、個人(Community)によるCommit=赤
> The Qt Companyが継続的にCommit=青
> qbc.io(Qtのコンサルタント会社)がんばってる! Commit=黄
qt.ioについて
>最近、ローカライズされるようになり、
www.qt.ioの上部から、日本語を選択できるようになりました。
Englishのコンテンツと内容が大きく異なるので、
併用で見てもらう方がいいかもしれません。
Qtの特徴
Qtはマルチプラットフォーム対応
デスクトップ(C++ / Python)
> Windows, Linux Mac OS X
モバイル (C++)
> Android, iOS, Universal Windows Platform
組み込み関連 (C++)
> Embedded Linux, Windows Embedded
QNX, INTEGRITY, RTEMS, VxWorks
サポートしているプラットフォーム詳細 : [Supported Platforms](http://doc.qt.io/qt-5/supported-platforms.html)
各種ソフトウェア機能安全にも対応
機能安全認証 詳細 :
[Released and Certified: Qt Safe Renderer ? An ASIL-D Functional Safety Solution]
(https://blog.qt.io/blog/2018/05/31/function-safety-certified-qt-safe-renderer/)
IEC 61508:2010-3 7.4.4(SIL3) - 電気/電子/プログラマブル
機能安全プログラミング言語を含む支援ツールの要求
ISO26262:2011-6/2011-8 ASIL D - 自動車ソフト機能安全
IEC62304:2015 – 医療機器ソフト機能安全
EN50128:2011 6.7.4(SIL4) - 鉄道用ソフト機能安全
> Qt Safe Rendererを利用して機能安全認証を取得した
アプリケーションUIの作成が可能。
C++で利用できるたくさんのモジュール
QtCore
QtGui
QtWidgets
QtMultimedia
QtSql
QtXml
QtSerialPort
QtNetwork
QtNetworkAuth
QtWebEngine
Qt Quick
Qt 3D
QtPositioning
QtSensors
QtBluetooth
QtNfc
QtLocation
QtTest
など
[All Classes by Module](https://doc.qt.io/qt-5.10/modules-cpp.html)
[All Classes](https://doc.qt.io/qt-5.10/classes.html)
PythonでもC++と同じモジュールが使用可能
PyPI(PythonのPackage管理マネージャー)でインストール可能
> pip install PySide2 (2019.6.27から、Qt5.13に対応しています!)
サポートPythonバージョン
> Python 2系 - 2.7(Windowsの場合はサポートしていない)
> Python 3系 - 3.5以上
Qt for PythonのAPIについて
> ほとんどのQt API用のPythonラッパーを提供。
> Qt C++ユーザーがPythonに移行しやすいように、Pythonはスネーク記法が
一般的だがQtのC++ APIキャメル記法のままにしている。
Qt for Python 5.12詳細 : [Qt for Python 5.12 Released](https://blog.qt.io/blog/2018/12/18/qt-python-5-12-released/)
QMLで、よりリッチなUIとマルチメディアをサポート
QtQml
QtQuick
QtGraphicalEffects
QtChart
QtMultimedia
QtAudioEngine
QtLocation
QtBluetooth
QtNfc
QtPurchasing
Qt3D
QtWebEngine
など
[All QML Modules](https://doc.qt.io/qt-5/modules-qml.html)
QML(Qt Meta-Object Language)とは?
> ビジュアルを重視したGUIやアニメーションフレームワーク、マルチメディア機能などを
提供し、ユーザーエクスペリエンスを向上させる事ができる表現豊かなQt同時の言語。
> CSSに似たシンタックスで、JSON風のシンタックス構文の言語
学習コストが低く、最近ではDesign toolで自動生成も可能となっている。
柔軟で分かりやすいTool群
Qt Creator - IDE
柔軟で分かりやすいTool群
Qt Design Studio
> 以前は、商用版しか使用できませんでしたが、
Open Source版でも使用可能に!
柔軟で分かりやすいTool群
Qt 3D Studio
最新のQtをつかってみよう
Qtのロードマップ
Qtリリース間隔
> 半年に1回のリリース。継続的な機能Up / バグ修正あり。
QtのLTS(Long Time Support)長期サポート版 (マイナー番号が3の倍数が該当)
> 3年のサポート。バグ/セキュリティ修正が行われる。
> Qt for Pythonはリリースされたばかりなので 1年間のサポートのみ。(LTSから除外)
→ 今使用するなら、リリースされたばかりの Qt5.12LTSがお勧め!
Qt Version Release Schedule
Qt5.12.4 LTS 2019/2/1 v5.12.4は、2019/6/17リリース
Qt5.13 2019/6/19
Qt5,14 2019/ 11予定
Qt5.15LTS 2020/5 かも?
Qt5.12 LTSリリース内容(抜粋)
Qtリリース内容
> UDPサポート上のDTLS(Datagram Transport Layer Security)を追加。
> QMLにてJavaScriptエンジンはECMAScript 7をサポート。
> CANハードウェアなしでシミュレーション用の仮想CANバスプラグインを追加。
> Qt Webエンジン Chrome69対応。
> Virtual Keyboardを48ヶ国対応。
> Qt Quickパフォーマンス改善。
[Qt Quick Performance Improvements with Qt 5.12 LTS (Updated for Qt 5.12.3)](https://blog.qt.io/blog/2019/05/03/qt-quick-performance-improvements-qt-5-12-lts-updated-qt-5-12-3/)
[Qt 5.12 LTS ? The road to faster QML application startup](https://blog.qt.io/blog/2019/01/11/qt-5-12-lts-road-faster-qml-application-startup/)
Installerのダウンロード(Open Source 版)
> http://www.qt.io の右上
“Download Try. Buy” をクリック
> Get Qt のページから
Open Sourceの”Go open source”
をクリック
Installerのダウンロード(Open Source 版)
> Install Qt のページから
Open Sourceの”Go open source”
をクリック
Installerのダウンロード(Open Source 版)
> 最新版のアーカイブ場所
http://download.qt.io
/archive/online_installers/3.1/
からも直接ダウンロード可能
Demo
Qtの提供しているYoctoレイヤーのboot2qtを使用して
Qt5.12のパフォーマンスを見てみましょう!
もっとQtで開発
Qt開発インフラ
> Wiki
http://wiki.qt.io
> メーリングリスト
http://lists.qt-project.org/mailman/listinfo
> bugトラッカー
https://bugreports.qt.io/
> Code reviewシステム
https://codereview.qt-project.org
Qt開発にかかわるガイドラインの詳細は、
[Category:Developing Qt::Guidelines](http://wiki.qt.io/Category:Developing_Qt::Guidelines)
[コントリビューションしてみたよ! – Qiita @helicalgear](https://qiita.com/helicalgear/items/ba97890ac7b5ddf8d9ed)
日本Qtユーザー会
http://qt-users.jp/
> Qtを日本での普及をさせるために設立。
各地で活躍しているQtユーザーによって
作られたコミュニティーです。
> 実は本WebサイトもQtのQMLで描かれ
てます。
> メーリングリストに参加してみてください。
http://qt-users.jp/mailman/listinfo/qt-users
日本Qtユーザー会の歴史
[Qtユーザー会のご紹介 – 緑之庵(緑之杜) @hermit4](http://blog.hermit4.info/2015/12/qt.html)
Qt勉強会
https://qt-users.connpass.com/
> IT勉強会支援Siteの connpass にて
募集を行っています。(無料)
> 東京/名古屋で、毎月(第3土曜)に
開催しています。関西は不定期開催。
> ハッシュタグ #qtjp や、
で” Qt勉強会” と検索すると
勉強会の雰囲気がつかめます。
Qt 名古屋勉強会 7/27開催!
<プチセミナー実施予定>
> Yoctoを使用してBoot2Qtを
raspberry pi用に構築してみよう。
> Qt Creatorを使用して、raspberry pi
で動作するQtアプリのリモートデバック
をしてみよう。
Qt 日本語 書籍 いろいろあります
> や
で見つけることができます。
まとめ
>Qtはアプリケーション開発フレームワーク
>>いろんな所に使われている
>オープンソースプロジェクトで活発に今も開発が進められている
>>たくさんのC++ / Pythonモジュールを提供
>>開発環境も含め、マルチプラットフォームで提供
>Qt熱い
>>日本でも勉強できる場と、気軽に学べるたくさんの日本語の
書籍が常に提供され続けている。
Any questions?
Thanks!

More Related Content

PDF
Linux女子部 iptables復習編
PPTX
超軽量経路探索 for Unity
PDF
Gitはじめの一歩
ODP
xrdpで変える!社内のPC環境
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
GoによるiOSアプリの開発
PDF
ホワイトボックス・スイッチの期待と現実
 
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Linux女子部 iptables復習編
超軽量経路探索 for Unity
Gitはじめの一歩
xrdpで変える!社内のPC環境
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
GoによるiOSアプリの開発
ホワイトボックス・スイッチの期待と現実
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)

What's hot (20)

PDF
.NET Core 3.0時代のメモリ管理
PPT
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
PPTX
エンジニアライクにドキュメントを作成してみた件
PDF
ARM Trusted FirmwareのBL31を単体で使う!
PDF
リーン開発の本質 公開用
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
PDF
Linux女子部 systemd徹底入門
PPTX
凝集度と責務
PDF
ファイルシステム比較
PDF
Gitops: the kubernetes way
PDF
Dockerからcontainerdへの移行
PDF
イミュータブルデータモデルの極意
PPTX
マイクロサービスにおける 結果整合性との戦い
PPTX
5分で出来る!イケてるconfluenceページ
PDF
Akkaとは。アクターモデル とは。
PDF
テスト文字列に「うんこ」と入れるな
PPTX
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
PDF
Machine learning CI/CD with OSS
PDF
例外設計における大罪
.NET Core 3.0時代のメモリ管理
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
エンジニアライクにドキュメントを作成してみた件
ARM Trusted FirmwareのBL31を単体で使う!
リーン開発の本質 公開用
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Linux女子部 systemd徹底入門
凝集度と責務
ファイルシステム比較
Gitops: the kubernetes way
Dockerからcontainerdへの移行
イミュータブルデータモデルの極意
マイクロサービスにおける 結果整合性との戦い
5分で出来る!イケてるconfluenceページ
Akkaとは。アクターモデル とは。
テスト文字列に「うんこ」と入れるな
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
Machine learning CI/CD with OSS
例外設計における大罪
Ad

Similar to Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 Nagoya (20)

PDF
Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 hamanako
PDF
it's Qt!
PDF
Qt5 の新機能 2012/12/15
PDF
PyQtではじめるGUIプログラミング
ODP
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
PDF
NGK2018B マルチプラットフォームQtと日本Qtユーザー会の紹介
ODP
Introduction of Python
PPTX
Golang tokyo #7 qtpm
PPTX
20171219 / phpway / BASE,Inc.
PDF
Qt5のセンサーAPIを使ってみたい
PDF
TreeFrog Frameworkの紹介
ODP
PySide/QtWebkitで楽々 slideshare Hack
KEY
ここが変わったTizen sdk2.0alpha
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PDF
Io t,ai時代のソフトウェア
PDF
QtとC++でGUIプログラミング
PDF
Qt developer day 2014 LT
PDF
qmake入門
ODP
みんな大好き! Hello, World
PDF
Make a graph at Qt(used Qwt library)
Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 hamanako
it's Qt!
Qt5 の新機能 2012/12/15
PyQtではじめるGUIプログラミング
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
NGK2018B マルチプラットフォームQtと日本Qtユーザー会の紹介
Introduction of Python
Golang tokyo #7 qtpm
20171219 / phpway / BASE,Inc.
Qt5のセンサーAPIを使ってみたい
TreeFrog Frameworkの紹介
PySide/QtWebkitで楽々 slideshare Hack
ここが変わったTizen sdk2.0alpha
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Io t,ai時代のソフトウェア
QtとC++でGUIプログラミング
Qt developer day 2014 LT
qmake入門
みんな大好き! Hello, World
Make a graph at Qt(used Qwt library)
Ad

Qtではじめるクロスプラットフォームアプリケーション開発 osc2019 Nagoya