PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que...

40
PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt Sandro Andrade – IFBA/KDE [email protected]

Transcript of PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que...

Page 1: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt Sandro Andrade – IFBA/[email protected]

Page 2: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

OLÁ!

whoamiIFBA/KDE/KDE [email protected] / @andradesandrohttp://sandroandrade.org

Page 3: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar
Page 4: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar
Page 5: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar
Page 6: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar
Page 7: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar
Page 8: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar
Page 9: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

Qt - POR QUE USAR?

Page 10: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

Qt - POR QUE USAR?TECNOLOGIA MADURA (desenvolvido há 22 anos)

Page 11: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

Qt - POR QUE USAR?TECNOLOGIA MADURA (desenvolvido há 22 anos)ALTA PRODUTIVIDADE (mesmo com C++, melhor ainda com QML/JS)

Page 12: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 13: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 14: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 15: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 16: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 17: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 18: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

1.Qt E MOBILE http://www.qt.io

Page 19: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 20: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 21: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?

Page 22: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMAS

Page 23: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera ão via GPU)ç

Page 24: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

Qt - POR QUE USAREM PLATAFORMAS MÓVEIS?UM CODEBASE, MÚLTIPLAS PLATAFORMASALTO DESEMPENHO (nativo + acelera ão via GPU)çBOA DOCUMENTA ÃOÇ

Page 25: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 26: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 27: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 28: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

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 29: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

2.ONDE PODEMOS AVANÇAR?

Page 30: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

ALGUMAS DEFICIÊNCIAS DO Qt NO DESENVOLVIMENTO PARA MOBILE

▸ Ausência de frameworks que implementem solu ões arquiteturais reutilizáveis e modularesç

▸ KDE Frameworks 5 provavelmente disponibiliza mais do que você precisa e é uma nova dependência para gerenciar

▸ Ausência de componentes de UI que implementam os principais workflows atuais (KDE Kirigami?)

Page 31: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

ALGUMAS DEFICIÊNCIAS DO Qt NO DESENVOLVIMENTO PARA MOBILE

▸ Ausência de um JSONListModel▸ Não possui suporte nativo a opera ões ç

desconectadas (com sincroniza ão após re-çestabelecimento da conexão)

▸ Problemas com implanta ão de arquivos read-çwrite entre plataformas mobile diferentes

Page 32: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

3.O MEG

Page 33: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

TEMOS TRABALHADO COM ALGUNS PROJETOS MOBILE PARA ANDROID E iOS NOS ÚLTIMOS ANOS

TAIS LACUNAS DO Qt NOS MOTIVOU A INVESTIGAR ATÉ QUE PONTO ESTES PROBLEMAS PODEM SER RESOLVIDOS UTILIZANDO BOAS ARQUITETURAS E FERRAMENTAS DE PRODUTIVIDADE

Page 34: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

=

+

Meg

Arquitetura leve, baseadaem QML, para

Aplicaçõesmobile multiplataforma

Gerador de códigoQue viabiliza a criação

produtiva e modular declientes e servidores

RESTful, com foco em Qt

Page 35: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

CLI IMPLEMENTADO EM RUBY, UTILIZANDO O THOR

TEMPLATES SÃO ESPECIFICADOS EM Embedded RuBy (ERB)

OS GERADORES SÃO MODULARES (Thor with Modules)

INCLUI UM JSONListModel

DOWNLOAD AUTOMÁTICO DE ÍCONES DO GOOGLE MATERIAL ICONS

Page 36: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

TEMPLATES ATUALMENTE DISPONÍVEIS:

▸ Servidor RESTful Sinatra com arquitetura modular▸ Plug-in para servidor RESTful Sinatra▸ Aplicativo Qt simples com arquitetura baseada em plug-ins▸ Aplicativo Qt RESTful com arquitetura baseada em plug-ins▸ Plug-in para aplicativo Qt RESTful

Page 37: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

INSTALANDO O Meg:

▸ git clone https://github.com/sandroandrade/meg.git▸ Instale e ruby▸ Execute ‘gem install bundler’▸ Execite ‘bundle install’▸ CLI está em ‘./bin/meg’

Page 38: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

4.DEMO

Page 39: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

TRABALHOS FUTUROS:

▸ Templates para CRUD▸ Templates para aplica ões Qt baseadas no Kirigamiç▸ Suporte a relacionamento entres modelos▸ Suporte a push notification▸ ...

Page 40: PROJETO ARQUITETURAL DE SOLUÇÕES MOBILE COM Qt · melhor gerenciamento de memÓria. qt - por que usar ... android e ios nos Últimos anos tais lacunas do qt nos motivou a investigar

OBRIGADO!

[email protected] / @andradesandrohttp://sandroandrade.org