19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA...

27
Qt + POS: do zero ao release em 6 meses 19/08/2017 JOÃO GABRIEL JARDIM

Transcript of 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA...

Page 1: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

Qt + POS: do zero ao

release em 6 meses

19/08/2017

JOÃO GABRIEL JARDIM

Page 2: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

SOBRE MIM

Page 3: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

STONE

Page 4: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês
Page 5: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

MAMBA

Page 6: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

• Sistema projetado para suportar POS de diferentes

fabricantes.

• Suporte a aplicações Web(HTML, JavaScript, CSS)

• API Web aberta para desenvolvimento de terceiros

• Loja de aplicativos

• Facilidade no desenvolvimento de UIs mais modernas

AGOSTO DE 2017

MAMBA

Page 7: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

MOTIVAÇÃO

Page 8: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

• Dificuldade de contratação

• Uma aplicação diferente por fabricante

• Repetição de código

AGOSTO DE 2017

MOTIVAÇÃOMamba

Page 9: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

O INÍCIO

Page 10: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

Objetivo• Camada de abstração de fabricante

Sonho• UI baseada em HTML, CSS, JavaScript

• Framework para criação de aplicativos web

• Loja de aplicativo

AGOSTO DE 2017

O INÍCIOMamba

API MAMBA

FABRICANTE 1 FABRICANTE 2 FABRICANTE 3

Page 11: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

• Como? E quando?

• Dificuldade para estimar tempo de projeto

• Com certeza 1,5+ anos de projeto (O que não tínhamos)

AGOSTO DE 2017

O INÍCIOMamba

Page 12: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

EXPERIMENTANDO GUIS

Page 13: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

μGUI

https://embeddedlightning.com/ugui/

μGFX

https://ugfx.com

libRocket

http://librocket.com

AGOSTO DE 2017

EXPERIMENTANDO GUIsMamba

Page 14: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

Finalmente Qt! \o/

Prometia resolver todos nossos problema!

AGOSTO DE 2017

EXPERIMENTANDO GUIsMamba

“Uma grande ideia resolve vários problemas de uma só vez.”

Shigeru Miyamoto

Page 15: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

SAGA DO BUILD

Page 16: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

AGOSTO DE 2017

SAGA DO BUILDMamba

PERTO VELOH

Cortex A8

600 MHz

256 RAM

512 FLASH

Linux

PAX S920

ARM 11

400 MHz

64 RAM

128 FLASH

Linux

Page 17: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

1. Desafios • Conhecimento quase zero de Linux

• Sopa de letrinha(ROOTFS, SYSROOT, CROSS COMPILER, HOST, BUILD, TARGET)

• Sem OpenGL

• Build demorava demais (Poucas tentativas por dia de trabalho)

2. Como superar?• Tentativa e erro, madrugadas acordado

• Stack Overflow

• qt.io

AGOSTO DE 2017

SAGA DO BUILDMamba

Page 18: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

Primeiro Build• Perto Veloh

• Qt 5.7 + QtWebEngine

• 1 mês e meio até o sucesso

• 08/2017

AGOSTO DE 2017

SAGA DO BUILDMamba

Page 19: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

Segundo Build• PAX S920

• Downgrade de versões até achar uma compatível e com bom desempenho

• Enfim 4.8.7

Por que?

• Compatível com C++03

• Opção para rotação de tela built-in

• Funciona bem com hardwares antigos

• QtWebkit com melhor performance

Limitações:

• Implementação de touch e gesto

• Não possuir suporte ao ES6

AGOSTO DE 2017

SAGA DO BUILDMamba

Page 20: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

DESENVOLVIMENTO

Page 21: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

Madrugada de planejamento

• Estimativa 10/2016 até 03/2017

• MVP com funcionalidades básicas de um POS

Desenvolvimento de plugins(Touch, Keyboard)

Reuniões de implementação além das de acompanhamento

Contratação de front HTML/CSS/JS

AGOSTO DE 2017

DESENVOLVIMENTOMamba

Page 22: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

ProblemasPerformance

• Upgrade de memória no POS

• Upgrade no QtWebkit

Planejamento

• Mais gente alocada

• Mais contratação

AGOSTO DE 2017

DESENVOLVIMENTOMamba

Page 23: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

PILOTO

Page 24: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

• Aproximadamente 200 máquinas

• Boa receptividade

• Alguns probleminhas em relação a performance

• Lançamento no próximo mês

AGOSTO DE 2017

PILOTOMamba

Page 25: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

FUTURO

Page 26: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

• Integrar com outros módulos do Qt

• Qt 5.8 nos próximos hardwares

• Suporte a apps escritos em QML

• POS Android

• Open source

AGOSTO DE 2017

FUTURO

Page 27: 19/08/2017 Qt + POS: do zero ao release em 6 meses• Stack Overflow • qt.io AGOSTO DE 2017 SAGA DO BUILD Mamba Primeiro Build • Perto Veloh • Qt 5.7 + QtWebEngine • 1 mês

OBRIGADO.JOÃO GABRIEL JARDIM

[email protected]