O Qt E SUA ATUAÇÃO NO
DESENVOLVIMENTO
DESKTOP, MOBILE,
EMBARCADO E PARA IoT
Sandro Andrade – IFBA/KDE
sandroandrade@kde.org
OLÁ!
whoami
IFBA/KDE/KDE e.V.
sandroandrade@kde.org / @andradesandro
1.
SOBRE O Qt
http://www.qt.io
“O Qt é um toolkit para
desenvolvimento multiplataforma
de aplicações em diversos
domínios, com foco em execução
nativa, excelente desempenho e
produtividade
O Qt
▸ Desenvolvido desde 1995
▸ Toolkit multiplataforma
▸ Trolltech NOKIA→ →
Digia The Qt Company→
▸ Licenciamento LGPL ou comercial
▸ Nos últimos anos, seu foco tem sido
mobile + embedded + automotivo + IoT
▸ Não só C++, mas também QML + JS e
bindings para Python, C#, Go, Haskell e
Ruby
QUEM USA O Qt?
QUEM USA O Qt?
B2Open
Qt - POR QUE USAR?
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
RICO EM FUNCIONALIDADES (47 módulos, 1647 classes)
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
RICO EM FUNCIONALIDADES (47 módulos, 1647 classes)
EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
RICO EM FUNCIONALIDADES (47 módulos, 1647 classes)
EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA
EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
RICO EM FUNCIONALIDADES (47 módulos, 1647 classes)
EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA
EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ
EXCELENTE DESEMPENHO (acelera ão via hardware no QML)ç
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
RICO EM FUNCIONALIDADES (47 módulos, 1647 classes)
EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA
EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ
EXCELENTE DESEMPENHO (acelera ão via hardware no QML)ç
DIVERSAS BIBLIOTECAS DE TERCEIROS (KF5, inqlude.org)
Qt - POR QUE USAR?
TECNOLOGIA MADURA (desenvolvido há 22 anos)
ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
RICO EM FUNCIONALIDADES (47 módulos, 1647 classes)
EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA
EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ
EXCELENTE DESEMPENHO (acelera ão via hardware no QML)ç
DIVERSAS BIBLIOTECAS DE TERCEIROS (KF5, inqlude.org)
OPEN GOVERNANCE COM LICEN A DUAL (LGPL e comercial)Ç
Qt – TECNOLOGIAS PARA UI/UX
▸ QtWiddgets: C++ (oficial), Python, C#, Go Haskell, Ruby
▸ QtQuick: QML + JavaScript
▸ QtWebEngine: HTML + CSS + JavaScript
▸ QtCharts/QtDataVisualization
Qt – TECNOLOGIAS PARA UI/UX
▸ QtWiddgets: C++ (oficial), Python, C#, Go Haskell, Ruby
▸ QtQuick: QML + JavaScript
▸ QtWebEngine: HTML + CSS + JavaScript
▸ QtCharts/QtDataVisualization
QtQuick X QtWidgets X QtWebEngine
QtQuick QtWidgets QtWebEngine
Linguagem QML/JS C++ HTML/CSS/JS
Look’n’feel nativo ✓ ✓
Look’n’feel
customizado
✓ ✓ ✓
UI animadas e
fluidas
✓ ✓
Suporte a touch
screen
✓ ✓
QtQuick X QtWidgets X QtWebEngine
QtQuick QtWidgets QtWebEngine
Widgets padrão da
indústria
✓
Model/View ✓ ✓
Prototipagem
rápida de UX
✓✓ ✓ ✓
Acelera ão viaç
hardware
✓ ✓ ✓
QtQuick X QtWidgets X QtWebEngine
QtQuick QtWidgets QtWebEngine
Efeitos gráficos
(partículas, etc)
✓
Rich text ✓ ✓
Integra ão deç
conteúdo web
existente
✓
3.
Qt E DESKTOP
BIG CONCEPT
Bring the attention of your audience over a key
concept using icons or illustrations
kdenlive.org
krita.org
marble.kde.org
minuet.kde.org
KDE games
lxqt.org
3.
Qt E MOBILE
2006
Qt/Embedded + Qtopia
2006
Qtopia em milhares
de dispositivos
(Sharp/Motorola)
2009
Lan amento do QMLç
2010-2011
Qt no Symbian e
MeeGo
Qt MOBILE - UMA LONGA HISTÓRIA
2011
Projeto Necessitas
(KDE) e o primeiro port
do KDE para Android
2015
QML Qt Location e
QtQuick Controls for
Embedded
2013
Primeiro tech-preview
oficial do suporte a
Android e iOS
(BlackBerry,
Sailfish/Jolla e
Ubuntu Mobile)
2016
QtQuickControls 2,
KDE Kirigami e
Android services com
Qt
2014
API QtPurchasing
multiplataforma e
suporte a Bluetooth
LE
Qt MOBILE - UMA LONGA HISTÓRIA
Qt - POR QUE USAR
EM PLATAFORMAS MÓVEIS?
Qt - POR QUE USAR
EM PLATAFORMAS MÓVEIS?
UM CODEBASE, MÚLTIPLAS PLATAFORMAS
Qt - POR QUE USAR
EM PLATAFORMAS MÓVEIS?
UM CODEBASE, MÚLTIPLAS PLATAFORMAS
ALTO DESEMPENHO (nativo + acelera ão via GPU)ç
Qt - POR QUE USAR
EM PLATAFORMAS MÓVEIS?
UM CODEBASE, MÚLTIPLAS PLATAFORMAS
ALTO DESEMPENHO (nativo + acelera ão via GPU)ç
BOA DOCUMENTA ÃOÇ
Qt - POR QUE USAR
EM PLATAFORMAS MÓVEIS?
UM CODEBASE, MÚLTIPLAS PLATAFORMAS
ALTO DESEMPENHO (nativo + acelera ão via GPU)ç
BOA DOCUMENTA ÃOÇ
ESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇ
Qt - POR QUE USAR
EM PLATAFORMAS MÓVEIS?
UM CODEBASE, MÚLTIPLAS PLATAFORMAS
ALTO DESEMPENHO (nativo + acelera ão via GPU)ç
BOA DOCUMENTA ÃOÇ
ESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇ
MELHOR GERENCIAMENTO DE MEMÓRIA
Qt - POR QUE USAR
EM PLATAFORMAS MÓVEIS?
UM CODEBASE, MÚLTIPLAS PLATAFORMAS
ALTO DESEMPENHO (nativo + acelera ão via GPU)ç
BOA DOCUMENTA ÃOÇ
ESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇ
MELHOR GERENCIAMENTO DE MEMÓRIA
MESMA API E FUNCIONALIDADES EM VÁRIAS VERSÕES DO ANDROID
MÓDULOS DO Qt ESPECIFICAMENTE
CRIADOS PARA MOBILE
Qt Bluetooth (QML e C++)
Android, iOS, Linux (BlueZ 4.x/5.x) e OS X
Qt Graphical Effects (QML)
Qt Positioning (QML e C++)
Android, iOS, Linux (com GeoClue) e WinRT
Qt Sensors (QML e C++)
Android, iOS, SailFish e WinRT
Qt Quick Extras
Qt Android Extras
Qt Notifier
Qt Mac Extras
BIG CONCEPT
Bring the attention of your audience over a key
concept using icons or illustrations
BIG CONCEPT
Bring the attention of your audience over a key
concept using icons or illustrations
http://puri.sm/
4.
Qt E EMBARCADOS
Desenvolvendo Sistemas
Embarcados com o Qt
▸ Foco em mobile desde 2000
▸ Greenphone (2006)
▸ QPA (2012) + plataformas embarcadas
▸ Boot2Qt (2013)
▸ QtQuickControls2 (2016)
▸ Qt Automotive Suite (2016)
▸ Qt 3D Studio (2017)
▸ Qt Safe Renderer (2017)
▸ Módulo Qt IVI (In-Vehicle Infotainment)
BIG CONCEPT
Bring the attention of your audience over a key
concept using icons or illustrations
Mercedez Benz
Qt Concept Car
Mercedez Benz – Qt Concept Car
Mercedez Benz – Qt Concept Car
Mercedez Benz – Qt Concept Car
Mercedez Benz – Qt Concept Car
Panasonic Avionics – In-Flight Entertainment System
5.
Qt E IoT
Desenvolvendo Sistemas para
IoT com o Qt
▸ Projeto QtLite (2015)
▸ Footprint até 80% menor
▸ 60% menor que builds estáticos
▸ Startup mais rápido
▸ Flexibilidade para customiza ãoç
6.
QtCon (Brasil)
OBRIGADO!
Perguntas?
IFBA/KDE/KDE e.V.
sandroandrade@kde.org / @andradesandro

O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT

  • 1.
    O Qt ESUA ATUAÇÃO NO DESENVOLVIMENTO DESKTOP, MOBILE, EMBARCADO E PARA IoT Sandro Andrade – IFBA/KDE sandroandrade@kde.org
  • 2.
  • 3.
  • 4.
  • 5.
    “O Qt éum toolkit para desenvolvimento multiplataforma de aplicações em diversos domínios, com foco em execução nativa, excelente desempenho e produtividade
  • 6.
    O Qt ▸ Desenvolvidodesde 1995 ▸ Toolkit multiplataforma ▸ Trolltech NOKIA→ → Digia The Qt Company→ ▸ Licenciamento LGPL ou comercial ▸ Nos últimos anos, seu foco tem sido mobile + embedded + automotivo + IoT ▸ Não só C++, mas também QML + JS e bindings para Python, C#, Go, Haskell e Ruby
  • 7.
  • 8.
    QUEM USA OQt? B2Open
  • 9.
    Qt - PORQUE USAR?
  • 10.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos)
  • 11.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos) ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
  • 12.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos) ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS) RICO EM FUNCIONALIDADES (47 módulos, 1647 classes)
  • 13.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos) ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS) RICO EM FUNCIONALIDADES (47 módulos, 1647 classes) EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA
  • 14.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos) ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS) RICO EM FUNCIONALIDADES (47 módulos, 1647 classes) EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ
  • 15.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos) ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS) RICO EM FUNCIONALIDADES (47 módulos, 1647 classes) EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ EXCELENTE DESEMPENHO (acelera ão via hardware no QML)ç
  • 16.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos) ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS) RICO EM FUNCIONALIDADES (47 módulos, 1647 classes) EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ EXCELENTE DESEMPENHO (acelera ão via hardware no QML)ç DIVERSAS BIBLIOTECAS DE TERCEIROS (KF5, inqlude.org)
  • 17.
    Qt - PORQUE USAR? TECNOLOGIA MADURA (desenvolvido há 22 anos) ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS) RICO EM FUNCIONALIDADES (47 módulos, 1647 classes) EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMA EXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ EXCELENTE DESEMPENHO (acelera ão via hardware no QML)ç DIVERSAS BIBLIOTECAS DE TERCEIROS (KF5, inqlude.org) OPEN GOVERNANCE COM LICEN A DUAL (LGPL e comercial)Ç
  • 18.
    Qt – TECNOLOGIASPARA UI/UX ▸ QtWiddgets: C++ (oficial), Python, C#, Go Haskell, Ruby ▸ QtQuick: QML + JavaScript ▸ QtWebEngine: HTML + CSS + JavaScript ▸ QtCharts/QtDataVisualization
  • 19.
    Qt – TECNOLOGIASPARA UI/UX ▸ QtWiddgets: C++ (oficial), Python, C#, Go Haskell, Ruby ▸ QtQuick: QML + JavaScript ▸ QtWebEngine: HTML + CSS + JavaScript ▸ QtCharts/QtDataVisualization
  • 20.
    QtQuick X QtWidgetsX QtWebEngine QtQuick QtWidgets QtWebEngine Linguagem QML/JS C++ HTML/CSS/JS Look’n’feel nativo ✓ ✓ Look’n’feel customizado ✓ ✓ ✓ UI animadas e fluidas ✓ ✓ Suporte a touch screen ✓ ✓
  • 21.
    QtQuick X QtWidgetsX QtWebEngine QtQuick QtWidgets QtWebEngine Widgets padrão da indústria ✓ Model/View ✓ ✓ Prototipagem rápida de UX ✓✓ ✓ ✓ Acelera ão viaç hardware ✓ ✓ ✓
  • 22.
    QtQuick X QtWidgetsX QtWebEngine QtQuick QtWidgets QtWebEngine Efeitos gráficos (partículas, etc) ✓ Rich text ✓ ✓ Integra ão deç conteúdo web existente ✓
  • 23.
  • 24.
    BIG CONCEPT Bring theattention of your audience over a key concept using icons or illustrations
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    2006 Qt/Embedded + Qtopia 2006 Qtopiaem milhares de dispositivos (Sharp/Motorola) 2009 Lan amento do QMLç 2010-2011 Qt no Symbian e MeeGo Qt MOBILE - UMA LONGA HISTÓRIA
  • 33.
    2011 Projeto Necessitas (KDE) eo primeiro port do KDE para Android 2015 QML Qt Location e QtQuick Controls for Embedded 2013 Primeiro tech-preview oficial do suporte a Android e iOS (BlackBerry, Sailfish/Jolla e Ubuntu Mobile) 2016 QtQuickControls 2, KDE Kirigami e Android services com Qt 2014 API QtPurchasing multiplataforma e suporte a Bluetooth LE Qt MOBILE - UMA LONGA HISTÓRIA
  • 34.
    Qt - PORQUE USAR EM PLATAFORMAS MÓVEIS?
  • 35.
    Qt - PORQUE USAR EM PLATAFORMAS MÓVEIS? UM CODEBASE, MÚLTIPLAS PLATAFORMAS
  • 36.
    Qt - PORQUE USAR EM PLATAFORMAS MÓVEIS? UM CODEBASE, MÚLTIPLAS PLATAFORMAS ALTO DESEMPENHO (nativo + acelera ão via GPU)ç
  • 37.
    Qt - PORQUE USAR EM PLATAFORMAS MÓVEIS? UM CODEBASE, MÚLTIPLAS PLATAFORMAS ALTO DESEMPENHO (nativo + acelera ão via GPU)ç BOA DOCUMENTA ÃOÇ
  • 38.
    Qt - PORQUE USAR EM PLATAFORMAS MÓVEIS? UM CODEBASE, MÚLTIPLAS PLATAFORMAS ALTO DESEMPENHO (nativo + acelera ão via GPU)ç BOA DOCUMENTA ÃOÇ ESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇ
  • 39.
    Qt - PORQUE USAR EM PLATAFORMAS MÓVEIS? UM CODEBASE, MÚLTIPLAS PLATAFORMAS ALTO DESEMPENHO (nativo + acelera ão via GPU)ç BOA DOCUMENTA ÃOÇ ESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇ MELHOR GERENCIAMENTO DE MEMÓRIA
  • 40.
    Qt - PORQUE USAR EM PLATAFORMAS MÓVEIS? UM CODEBASE, MÚLTIPLAS PLATAFORMAS ALTO DESEMPENHO (nativo + acelera ão via GPU)ç BOA DOCUMENTA ÃOÇ ESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇ MELHOR GERENCIAMENTO DE MEMÓRIA MESMA API E FUNCIONALIDADES EM VÁRIAS VERSÕES DO ANDROID
  • 41.
    MÓDULOS DO QtESPECIFICAMENTE CRIADOS PARA MOBILE Qt Bluetooth (QML e C++) Android, iOS, Linux (BlueZ 4.x/5.x) e OS X Qt Graphical Effects (QML) Qt Positioning (QML e C++) Android, iOS, Linux (com GeoClue) e WinRT Qt Sensors (QML e C++) Android, iOS, SailFish e WinRT Qt Quick Extras Qt Android Extras Qt Notifier Qt Mac Extras
  • 48.
    BIG CONCEPT Bring theattention of your audience over a key concept using icons or illustrations
  • 49.
    BIG CONCEPT Bring theattention of your audience over a key concept using icons or illustrations
  • 50.
  • 51.
  • 52.
    Desenvolvendo Sistemas Embarcados como Qt ▸ Foco em mobile desde 2000 ▸ Greenphone (2006) ▸ QPA (2012) + plataformas embarcadas ▸ Boot2Qt (2013) ▸ QtQuickControls2 (2016) ▸ Qt Automotive Suite (2016) ▸ Qt 3D Studio (2017) ▸ Qt Safe Renderer (2017) ▸ Módulo Qt IVI (In-Vehicle Infotainment)
  • 53.
    BIG CONCEPT Bring theattention of your audience over a key concept using icons or illustrations
  • 54.
  • 56.
    Mercedez Benz –Qt Concept Car
  • 57.
    Mercedez Benz –Qt Concept Car
  • 58.
    Mercedez Benz –Qt Concept Car
  • 59.
    Mercedez Benz –Qt Concept Car
  • 60.
    Panasonic Avionics –In-Flight Entertainment System
  • 69.
  • 70.
    Desenvolvendo Sistemas para IoTcom o Qt ▸ Projeto QtLite (2015) ▸ Footprint até 80% menor ▸ 60% menor que builds estáticos ▸ Startup mais rápido ▸ Flexibilidade para customiza ãoç
  • 71.
  • 74.