DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro...
Embed Size (px)
Transcript of DESENVOLVENDO APLICAÇÕES ANDROID COM Qt · DESENVOLVENDO APLICAÇÕES ANDROID COM Qt Sandro...
-
DESENVOLVENDO APLICAES ANDROID COM QtSandro Andrade KDE/[email protected]
-
AGENDA DESTE TREINAMENTO
O que o Qt? Porque utilizar o Qt no desenvolvimento para mobile? Mdulos do Qt voltados para mobile Anatomia de uma aplica o Qt para Android Hello world com QML e QtQuickControls 2 Acessando sensores e multimdia Construindo um leitor de feeds RSS Comunica o cliente-servidor via RESTful
-
OL!
whoamiIFBA/KDE/KDE e.V.Fale comigo em [email protected] ou @andradesandrohttp://sandroandrade.org
mailto:[email protected]
-
OL!
quem so vocs? :)
-
1.O QUE O Qt? http://www.qt.io
-
O Qt um toolkit para desenvolvimento multiplataformade aplicaes em diversos domnios, com foco em execuo nativa, excelente desempenho e produtividade
-
QUEM USA O Qt?
-
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 mdulos, 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 mdulos, 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 mdulos, 1647 classes)EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMAEXCELENTE 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 mdulos, 1647 classes)EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMAEXCELENTE DOCUMENTA O E COMUNIDADE ATIVAEXCELENTE 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 mdulos, 1647 classes)EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMAEXCELENTE DOCUMENTA O E COMUNIDADE ATIVAEXCELENTE 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 mdulos, 1647 classes)EFETIVO PARA DESENVOLVIMENTO MULTIPLATAFORMAEXCELENTE DOCUMENTA O E COMUNIDADE ATIVAEXCELENTE 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
Looknfeel nativo
Looknfeel customizado
UI animadas e fluidas
Suporte a touch screen
-
QtQuick X QtWidgets X QtWebEngine
QtQuick QtWidgets QtWebEngine
Widgets padro da indstria
Model/View
Prototipagem rpida de UX
Acelera o via hardware
-
QtQuick X QtWidgets X QtWebEngine
QtQuick QtWidgets QtWebEngine
Efeitos grficos (partculas, etc)
Rich text
Integra o de contedo web
existente
-
2.Qt E MOBILE http://www.qt.io
-
2006Qt/Embedded + Qtopia
2006Qtopia em milhares de dispositivos (Sharp/Motorola)
2009Lan amento do QML
2010-2011Qt no Symbian e MeeGo
Qt MOBILE - UMA LONGA HISTRIA
-
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 HISTRIA
-
Qt - POR QUE USAREM PLATAFORMAS MVEIS?
-
Qt - POR QUE USAREM PLATAFORMAS MVEIS?UM CODEBASE, MLTIPLAS PLATAFORMAS
-
Qt - POR QUE USAREM PLATAFORMAS MVEIS?UM CODEBASE, MLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera o via GPU)
-
Qt - POR QUE USAREM PLATAFORMAS MVEIS?UM CODEBASE, MLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera o via GPU)BOA DOCUMENTA O
-
Qt - POR QUE USAREM PLATAFORMAS MVEIS?UM CODEBASE, MLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera o via GPU)BOA DOCUMENTA OEST EM CONSTANTE EVOLU O, COM FOCO NESTAS PLATAFORMAS
-
Qt - POR QUE USAREM PLATAFORMAS MVEIS?UM CODEBASE, MLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera o via GPU)BOA DOCUMENTA OEST EM CONSTANTE EVOLU O, COM FOCO NESTAS PLATAFORMASMELHOR GERENCIAMENTO DE MEMRIA
-
Qt - POR QUE USAREM PLATAFORMAS MVEIS?UM CODEBASE, MLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera o via GPU)BOA DOCUMENTA OEST EM CONSTANTE EVOLU O, COM FOCO NESTAS PLATAFORMASMELHOR GERENCIAMENTO DE MEMRIAMESMA API E FUNCIONALIDADES EM VRIAS VERSES DO ANDROID
-
MDULOS 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
-
ANATOMIA DE UMA APLICAO Qt PARA ANDROID
-
ANATOMIA DE UMA APLICAO 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
-
ANATOMIA DE UMA APLICAO Qt PARA ANDROID
Trs mtodos de implanta o: Todas as dependncias
empacotadas no .apk
Implanta o baseada no servi o Ministro
Implanta o das dependncias em diretrio temporrio (para fins de debugging)
-
3.HELLO Qt ANDROID http://www.qt.io
-
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 necessrio
O QtQuick a biblioteca padro de tipos e funcionalidades bsicas do QML
Excelente desempenho devido execu o em GPU
INTRODUO AO QML
-
INTRODUO 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. }
-
INTRODUO 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. }
-
METAS:
LAB 1 MINI BROWSER
Uso do mdulo WebView Prtica com ncoras e layouts Property bindings Signals e handlers cones e fontes
-
METAS:
LAB 2 ACESSANDO O ACELERMETRO E SENSOR DE PROXIMIDADE
Prtica com sensores Tratando diferentes densidades de pixels Anima es de propriedades Attached properties e signal handlers
-
METAS:
LAB 3 ACESSANDO A CMERA
Uso do mdulo de multimdia
-
METAS:
LAB 4 CONSTRUINDO UM LEITOR DE FEEDS RSS
Prtica com Model-View Acesso remoto via XmlListModel Navigation Drawer
-
METAS:
LAB 5 CONSTRUINDO UMA APLICAO CLIENTE-SERVIDOR COM RESTful
WebServices com RESTful Acesso remoto via JSONListModel SwipeView e StackView
-
QML ROCKS!
Grandes casos de sucesso j esto por a
-
ALGUMAS DICAS
Documenta oConsulte 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
No abuse de bindingsOu sua aplica o ter problemas de desempenho
-
OBRIGADO!
Perguntas?Sandro Andrade KDE/[email protected]
Slide 1THIS IS A SLIDE TITLESlide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28IN TWO OR THREE COLUMNSSlide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37A PICTURE IS WORTH A THOUSAND WORDSSlide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45YOU CAN ALSO SPLIT YOUR CONTENTSlide 47Slide 48Slide 49Slide 50WANT BIG IMPACT? Use big image.LETS REVIEW SOME CONCEPTSSlide 53