DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro...
Transcript of DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro...
![Page 1: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/1.jpg)
DESENVOLVENDO APLICAÇÕES ANDROID COM QtSandro Andrade – KDE/[email protected]
![Page 2: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/2.jpg)
AGENDA DESTE TREINAMENTO
▸ O que é o Qt?▸ Porque utilizar o Qt no desenvolvimento para mobile?▸ Módulos do Qt voltados para mobile▸ Anatomia de uma aplica ão Qt para Androidç▸ Hello world com QML e QtQuickControls 2▸ Acessando sensores e multimídia▸ Construindo um leitor de feeds RSS▸ Comunica ão cliente-servidor via RESTfulç
![Page 3: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/3.jpg)
OLÁ!
whoamiIFBA/KDE/KDE e.V.Fale comigo em [email protected] ou @andradesandrohttp://sandroandrade.org
![Page 4: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/4.jpg)
![Page 5: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/5.jpg)
![Page 6: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/6.jpg)
![Page 7: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/7.jpg)
![Page 8: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/8.jpg)
![Page 9: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/9.jpg)
![Page 10: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/10.jpg)
OLÁ!
quem são vocês? :)
![Page 11: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/11.jpg)
1.O QUE É O Qt? http://www.qt.io
![Page 12: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/12.jpg)
“O Qt é um toolkit para desenvolvimento multiplataformade aplicações em diversos domínios, com foco em execução nativa, excelente desempenho e produtividade
![Page 13: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/13.jpg)
QUEM USA O Qt?
![Page 14: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/14.jpg)
Qt - POR QUE USAR?
![Page 15: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/15.jpg)
Qt - POR QUE USAR?TECNOLOGIA MADURA (desenvolvido há 22 anos)
![Page 16: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/16.jpg)
Qt - POR QUE USAR?TECNOLOGIA MADURA (desenvolvido há 22 anos)ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)
![Page 17: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/17.jpg)
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)
![Page 18: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/18.jpg)
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
![Page 19: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/19.jpg)
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 MULTIPLATAFORMAEXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇ
![Page 20: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/20.jpg)
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 MULTIPLATAFORMAEXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇEXCELENTE DESEMPENHO (acelera ão via hardware no QML)ç
![Page 21: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/21.jpg)
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 MULTIPLATAFORMAEXCELENTE DOCUMENTA ÃO E COMUNIDADE ATIVAÇEXCELENTE DESEMPENHO (acelera ão via hardware no QML)çDIVERSAS BIBLIOTECAS DE TERCEIROS (KF5, inqlude.org)
![Page 22: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/22.jpg)
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 MULTIPLATAFORMAEXCELENTE 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)Ç
![Page 23: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/23.jpg)
Qt – TECNOLOGIAS PARA UI/UX
▸ QtWiddgets: C++ (oficial), Python, C#, Go Haskell, Ruby▸ QtQuick: QML + JavaScript▸ QtWebEngine: HTML + CSS + JavaScript▸ QtCharts/QtDataVisualization
![Page 24: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/24.jpg)
Qt – TECNOLOGIAS PARA UI/UX
▸ QtWiddgets: C++ (oficial), Python, C#, Go Haskell, Ruby▸ QtQuick: QML + JavaScript▸ QtWebEngine: HTML + CSS + JavaScript▸ QtCharts/QtDataVisualization
![Page 25: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/25.jpg)
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
✓ ✓
![Page 26: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/26.jpg)
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
✓ ✓ ✓
![Page 27: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/27.jpg)
QtQuick X QtWidgets X QtWebEngine
QtQuick QtWidgets QtWebEngine
Efeitos gráficos (partículas, etc)
✓
Rich text ✓ ✓
Integra ão de çconteúdo web
existente✓
![Page 28: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/28.jpg)
2.Qt E MOBILE http://www.qt.io
![Page 29: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/29.jpg)
2006Qt/Embedded + Qtopia
2006Qtopia em milhares de dispositivos (Sharp/Motorola)
2009Lan amento do QMLç
2010-2011Qt no Symbian e MeeGo
Qt MOBILE - UMA LONGA HISTÓRIA
![Page 30: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/30.jpg)
2011Projeto Necessitas (KDE) e o primeiro port do KDE para Android
2015QML Qt Location e QtQuick Controls for Embedded
2013Primeiro tech-preview oficial do suporte a Android e iOS (BlackBerry, Sailfish/Jolla e Ubuntu Mobile)
2016QtQuickControls 2, KDE Kirigami e Android services com Qt
2014API QtPurchasing multiplataforma e suporte a Bluetooth LE
Qt MOBILE - UMA LONGA HISTÓRIA
![Page 31: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/31.jpg)
Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?
![Page 32: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/32.jpg)
Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMAS
![Page 33: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/33.jpg)
Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera ão via GPU)ç
![Page 34: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/34.jpg)
Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera ão via GPU)çBOA DOCUMENTA ÃOÇ
![Page 35: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/35.jpg)
Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera ão via GPU)çBOA DOCUMENTA ÃOÇESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇ
![Page 36: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/36.jpg)
Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera ão via GPU)çBOA DOCUMENTA ÃOÇESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇMELHOR GERENCIAMENTO DE MEMÓRIA
![Page 37: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/37.jpg)
Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera ão via GPU)çBOA DOCUMENTA ÃOÇESTÁ EM CONSTANTE EVOLU ÃO, COM FOCO NESTAS PLATAFORMASÇMELHOR GERENCIAMENTO DE MEMÓRIAMESMA API E FUNCIONALIDADES EM VÁRIAS VERSÕES DO ANDROID
![Page 38: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/38.jpg)
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 ExtrasQt Notifier
Qt Mac Extras
![Page 39: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/39.jpg)
ANATOMIA DE UMA APLICAÇÃO Qt PARA ANDROID
![Page 40: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/40.jpg)
ANATOMIA DE UMA APLICAÇÃO Qt PARA ANDROID
▸ Solu ão: QPA + JNIç▸ Uma aplica ão Qt para Android é ç
formada por duas partes:
– A aplica ão em si, criada pelo çdesenvolvedor
– Launcher da aplica ão Android, çgerada automaticamente pela IDE oficial do Qt (Qt Creator)
▸ O Qt Creator automatiza todo o processo de gera ão (e assinatura) çdo .apk
![Page 41: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/41.jpg)
ANATOMIA DE UMA APLICAÇÃO Qt PARA ANDROID
▸ Três métodos de implanta ão:ç
– Todas as dependências empacotadas no .apk
– Implanta ão baseada no servi o ç çMinistro
– Implanta ão das dependências çem diretório temporário (para fins de debugging)
![Page 42: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/42.jpg)
3.HELLO Qt ANDROID http://www.qt.io
![Page 43: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/43.jpg)
2009O QML é lan ado pelo çMatthias Etrich no Qt Dev Days em Munique
JavaScriptPrograma ão çimperativa pode ser feita com JavaScript
Baixa curva de aprendizadoÉ uma linguagem declarativa para especifica ão e çprograma ão de UIç
Pode-se integrar com C++ e Java quando/se necessário
O QtQuick é a biblioteca padrão de tipos e funcionalidades básicas do QML
Excelente desempenho devido à execu ão em GPUç
INTRODUÇÃO AO QML
![Page 44: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/44.jpg)
INTRODUÇÃO AO QML
1. import QtQuick 2.32.3. Rectangle {4. width: 2005. height: 1006. color: "red"7.8. Text {9. anchors.centerIn: parent10. text: "Hello, World!"11. }12. }
1. Rectangle {2. width: 2003. height: 1004. color: "red"5.6. Text {7. anchors.centerIn: parent8. text: "Hello, World!"9. }10.11. MouseArea {12. anchors.fill: parent13. onClicked: parent.color = "blue"14. }15. }
![Page 45: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/45.jpg)
INTRODUÇÃO AO QML - PROPERTY BINDING
1. Rectangle {2. width: 4003. height: 2004.5. Rectangle {6. width: parent.width / 27. height: parent.height8. color: "green"9. }10.11. Rectangle {12. width: parent.width / 213. height: parent.height14. x: parent.width / 215. color: "red"16. }17. }
![Page 46: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/46.jpg)
METAS:
LAB 1 – MINI BROWSER
▸ Uso do módulo WebView▸ Prática com âncoras e layouts▸ Property bindings▸ Signals e handlers▸ Ícones e fontes
![Page 47: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/47.jpg)
METAS:
LAB 2 – ACESSANDO O ACELERÔMETRO E SENSOR DE PROXIMIDADE
▸ Prática com sensores▸ Tratando diferentes densidades de pixels▸ Anima ões de propriedadesç▸ Attached properties e signal handlers
![Page 48: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/48.jpg)
METAS:
LAB 3 – ACESSANDO A CÂMERA
▸ Uso do módulo de multimídia
![Page 49: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/49.jpg)
METAS:
LAB 4 – CONSTRUINDO UM LEITOR DE FEEDS RSS
▸ Prática com Model-View▸ Acesso remoto via XmlListModel▸ Navigation Drawer
![Page 50: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/50.jpg)
METAS:
LAB 5 – CONSTRUINDO UMA APLICAÇÃO CLIENTE-SERVIDOR COM RESTful
▸ WebServices com RESTful▸ Acesso remoto via JSONListModel▸ SwipeView e StackView
![Page 51: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/51.jpg)
QML ROCKS!
Grandes casos de sucesso já estão por aí
![Page 52: DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro Andrade – KDE/IFBA sandroandrade@kde.org](https://reader033.fdocumentos.tips/reader033/viewer/2022051206/5bef18bc09d3f2e9788bb29a/html5/thumbnails/52.jpg)
ALGUMAS DICAS
Documenta ãoçConsulte e confie na documenta ão do Qtç
Arquitetura ainda é importanteMuitos projetos QML sofrem de problemas arquiteturais
Aprenda os fundamentosProperty bindings, signals e handlers, propriedades, etc
C++ ainda é importanteQML é uma tecnologia para UI/UX
Dê tempo ao tempoDemora um tempinho até você aprender a pensar de forma declarativa
Não abuse de bindingsOu sua aplica ão terá çproblemas de desempenho