Desenvolvendo Aplicações Android com Qt

778 visualizações

Publicada em

Desenvolvendo Aplicações Android com Qt - workshop realizado no Instituto Federal de Educação, Ciência e Tecnologia (IFBA), dia 27/02/2016.

Publicada em: Software
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
778
No SlideShare
0
A partir de incorporações
0
Número de incorporações
19
Ações
Compartilhamentos
0
Downloads
25
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendo Aplicações Android com Qt

  1. 1. Desenvolvendo Aplicações Android com Qt Sandro Andrade sandroandrade@kde.org | sandroandrade.org | @andradesandro
  2. 2. Objetivos ● Apresentar o Qt e os benefícios da sua utilização ● Apresentar uma visão geral das funcionalidades do Qt para desenvolvimento multiplataforma para dispositivos móveis e embarcados ● Apresentar os avanços mais recentes do Qt nesta área ● Proporcionar uma vivência prática ao desenvolver uma aplicação Android com Qt
  3. 3. whoami ● Professor no Instituto Federal de Educação, Ciência e Tecnologia da Bahia – IFBA ● Desenvolvedor, projetista e arquiteto de software ● Pesquisador: engenharia de software + sistemas distribuídos ● Colaborador nos projetos de Software Livre Qt e KDE – QtModeling – KDevelop, Plasma e Minuet ● Foi membro do KDE Marketing Working Group ● Membro do Board de Diretores do KDE e.V.
  4. 4. O Qt ● Toolkit multiplataforma para desenvolvimento de aplicações (www.qt.io) ● Oferece um amplo conjunto de funcionalidades para multimídia, programação em rede, banco de dados, testes, Bluetooth, OpenGL, programação multi-threaded, scripting, XML, web channel, etc ● Oferece três tecnologias principais para desenvolvimento de GUI: – Qt Widgets: C++ (oficial), Python, C#, Go, Haskell, Ruby – Qt Quick: QML + JS – Qt Webkit: HTML + CSS + JS
  5. 5. O Qt ● Comparação entre as três tecnologias para GUI: Qt Widgets Qt Quick Qt Webkit Linguagens utilizadas C++ QML/JS HTML/CSS/JS Look n feel nativo’ ’ ✔ ✔ Look n feel customizado’ ’ ✔ ( )✔ GUI fluidas e animadas ✔ Suporte a touch screen ✔ Widgets padrao da industria ✔
  6. 6. O Qt ● Comparação entre as três tecnologias para GUI: Qt Widgets Qt Quick Qt Webkit Model/View programming ✔ (✔) Rapid UI development ✔ ( )✔ Aceleracao por hardware ✔ Efeitos graficos ✔ Processamento de rich text ✔ ✔ Integracao de conteudo web existente ✔
  7. 7. O Qt ● Por que usar? – É uma tecnologia madura (20 anos de existência) – É um toolkit extremamente produtivo (mesmo com C++ e melhor ainda com QML/JS) – É um toolkit bastante completo – É efetivo no suporte ao desenvolvimento multiplataforma: ● Linux/X11 ● Windows ● OS X ● Android ● IOS ● WinCE
  8. 8. O Qt ● Por que usar? – Excelente documentação e comunidade bastante ativa – Excelente desempenho (aceleração via hardware no QML) – Diversas bibliotecas de terceiros baseadas no Qt (inqlude.org) – Open governance com licença dual: ● LGPL ● Comercial
  9. 9. O Qt ● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE – Setores automotivo, IoT, médico e industrial
  10. 10. O Qt ● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE – Setores automotivo, IoT, médico e industrial
  11. 11. O Qt ● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE – Setores automotivo, IoT, médico e industrial
  12. 12. O Qt ● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE – Setores automotivo, IoT, médico e industrial
  13. 13. O Qt e o Mundo Mobile ● É uma longa história, na verdade … – 2000: Qt/Embedded + Qtopia – 2006: Qtopia em milhares de dispositivos (Sharp / Motorola)
  14. 14. O Qt e o Mundo Mobile ● É uma longa história, na verdade … – 2009: lançamento do QML – 2010-2011: Qt no Symbian e MeeGo
  15. 15. O Qt e o Mundo Mobile ● É uma longa história, na verdade … – 2011: projeto Necessitas (KDE) e o primeiro port do Qt para Android – 2013: primeiro technical-preview do suporte ao Android e iOS oficial do Qt ● Inclusão das plataformas BlackBerry, Sailfish/Jolla and Ubuntu Mobile – 2014: cross-platform Qt Purchasing API e Bluetooth LE – 2015: QML Qt Location e Qt Quick Controls for Embedded
  16. 16. O Qt e o Android ● Solução: QPA + JNI ● O Qt Creator gera o arquivo .apk pra você ● Uma aplicação Qt para Android consiste de duas partes: – A aplicação em si, criada pelo desenvolvedor – Um laucher da aplicação Android, gerada automaticamente pelo Qt Creator
  17. 17. O Qt e o Android ● O Qt Creator oferece três métodos de implantação: – Todas as dependências Qt empacotadas no .apk, ou – Uso do mecanismo de implantação Ministro para gerenciar dependências Qt – Implantar as bibliotecas do Qt em um diretório temporário (somente para propósitos de desenvolvimento) ● Start-up da aplicação: – No começo é apenas uma aplicação Java – Ocorre a carga das libs do Qt e o plugin do QPA – A função main da aplicação é invocada em uma nova thread
  18. 18. O Qt e o Android ● Configuração do ambiente (passo-a-passo): – Criar um novo usuário (ex: android-devel) – Instalar os pacotes básicos de desenvolvimento: ● pacman -S --needed base-devel qt5 jdk jre git gdb wget – Baixar (www.qt.io) e instalar, no home do usuário android- devel, o Qt para Android – Após a instalação, executar o Qt Creator: ● Caminho “Tools/QtCreator/bin/qtcreator” na instalação do Qt
  19. 19. O Qt e o Android ● Configuração do ambiente (passo-a-passo): – No Qt Creator, ir em Tools Options Android:→ → ● Clique nos botões de download do Android SDK e Android NDK ● Realize o download ● Informe o caminho das instalações nos respectivos campos – Encontre o número de API correspondente à versão do Android no seu dispositivo – Execute o Android SDK Manager (caminho “tools/android” na instalação do Android SDK) e selecione somente o grupo referente ao número de API do seu dispositivo – Instale os pacotes
  20. 20. O Qt e o Android ● Configuração do ambiente (passo-a-passo): – Inicie o adb server (como root, sem usar o sudo): caminho “platform-tools/adb start-server” na instalação do Android SDK – Verifique se o seu dispositivo está com o modo developer ativado. Ative caso não esteja – Ligue seu dispositivo na porta USB do computador e confirme o pedido de permissão para depuração USB – Pronto: ao executar um projeto Qt com o kit do Android selecionado, o Qt Creator irá perguntar em qual dispositivo você deseja executar a aplicação (incluindo emuladores)
  21. 21. O Qt e o Android ● Módulos Qt de uso específico em dispositivos móveis (a maioria é multiplataforma): – 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 ● Fontes de posicionamento (ex: satélite, wifi, arquivos) são plugins – Qt Sensors (QML e C++): Android, iOS, SailFish e WinRT ● Acelerômetro, orientação, luz ambiente, dentre outros – Qt Quick Extras – Qt Android Extras: Qt Notifier – Qt Mac Extras
  22. 22. Qt e Material Design ● Conjunto de diretrizes de design (linguagem visual) de UX do Google ● Três esforços diferentes relacionados ao Qt: – qml-material: https://github.com/papyros/qml-material – Technical preview no Qt 5.6, esperado para o Qt 5.7 – Plasma Components
  23. 23. Qt e Material Design ● qml-material:
  24. 24. Qt e Material Design ● qml-material: IFBA’s SICAD Mobile
  25. 25. Qt e Material Design ● Hands-on: Niftly - RSS Reader
  26. 26. Conclusões ● O Qt para Android já é bem estável para uso em produção ● A possibilidade do uso de um mesmo codebase para escrever aplicações para diversas plataformas móveis faz do Qt uma das soluções mais interessantes nesta área atualmente ● O QML não pára de evoluir ● qml-material x Qt 5.6 x plasma components (o que usar ?)
  27. 27. Junte-se a nós! ● http://br.kde.org ● Lista de discussão: – https://mail.kde.org/mailman/listinfo/kde-br ● Canal de IRC: freenode #kde-brasil ● O KDE e.V. apoia a sua contribuição ● Participe do Google Summer of Code e do KDE Season of Code
  28. 28. Desenvolvendo Aplicações Android com Qt OBRIGADO ! sandroandrade@kde.org | sandroandrade.org | @andradesandro

×