• Nenhum resultado encontrado

Desenvolvendo Aplicações Android com Qt Colaborando com Software Livre no KDE

N/A
N/A
Protected

Academic year: 2021

Share "Desenvolvendo Aplicações Android com Qt Colaborando com Software Livre no KDE"

Copied!
79
0
0

Texto

(1)

Desenvolvendo Aplicações Android com Qt

Colaborando com Software Livre no KDE

(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

● Apresentar o que é o KDE, suas tecnologias e como a comunidade está organizada

● Discutir as tendências atuais do KDE no desenvolvimento para dispositivos móveis

(3)

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

● Apresentar o que é o KDE, suas tecnologias e como a comunidade está organizada

● Discutir as tendências atuais do KDE no desenvolvimento para dispositivos móveis

(4)

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

● Apresentar o que é o KDE, suas tecnologias e como a comunidade está organizada

● Discutir as tendências atuais do KDE no desenvolvimento para dispositivos móveis

(5)

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.

(6)

Parte 1

Desenvolvendo Aplicações Android

com Qt

(7)

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

(8)

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

(9)

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 ✔

(10)

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

(11)

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

(12)

O Qt

● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE

– Setores automotivo, IoT, médico e industrial

(13)

O Qt

● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE

– Setores automotivo, IoT, médico e industrial

(14)

O Qt

● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE

– Setores automotivo, IoT, médico e industrial

(15)

O Qt

● Quem usa? – Guitar Pro – Autodesk Maya – Skype – Virtualbox – VLC – KDE

– Setores automotivo, IoT, médico e industrial

(16)

O Qt e o Mundo Mobile

● É uma longa história, na verdade …

– 2000: Qt/Embedded + Qtopia

(17)

O Qt e o Mundo Mobile

● É uma longa história, na verdade …

– 2009: lançamento do QML

(18)

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

(19)

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

(20)

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

(21)

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:

(22)

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

(23)

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)

(24)

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

(25)

Qt e Material Design

● Conjunto de diretrizes de design (linguagem visual) de UX do Google

● Dois 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

(26)

Qt e Material Design

(27)

Qt e Material Design

(28)

Qt e Material Design

(29)

Parte 2

Contribuindo com Software Livre no

KDE

(30)

(Re)conhecendo o KDE

Pessoas

4151 colaboradores em todo o mundo Quase 20 anos de existência

(31)

O que fazemos?

● Muita coisa :)

● Mas as tecnologias produzidas são:

1) Um workspace moderno e flexível (KDE Plasma) 2) Um conjunto de aplicações (KDE Applications) 3) Um conjunto de bibliotecas (KDE Frameworks)

(32)

KDE Plasma Desktop

(33)

KDE Plasma Mobile

(34)

KDE Plasma Mobile

(35)

KDE Applications

● Mais de 300 aplicações em diversas áreas:

– Jogos

– Aplicações Educacionais – Multimídia

– Ferramentas de Desenvolvimento

– Gerenciamento de Informações Pessoais – Internet

– Editoração gráfica – … e muito mais

(36)

KDE Applications

(37)

KDE Applications

(38)

KDE Applications

(39)

KDE Applications

(40)

KDE Applications

(41)

KDE Frameworks

SO (Linux, Windows, OS X, ...) Servidor Gráfico (X11, Wayland, ...)

C++ / Qt 5 / QML / JavaScript KDE Frameworks 5 KDE Plasma KDE Applications

60 novos módulos para o Qt: Compressão de arquivos Configuração do sistema Novos models e views Plotting Integração e detecção de HW Multithreading System notifications ... http://www.frameworks.org

(42)

A Comunidade e seu Ecossistema

Colaboradores

(desenvolvedores, testadores, tradutores, designers, etc) KDE e.V. (membros da associação) Empre sas KDE Free Qt Foundation Working Groups KDE e.V. Board of Directors Afiliados

(43)

A Comunidade e seu ecossistema

● Principais empresas no ecossistema KDE:

– KDAB

– BasysKom – Blue Systems

– ICS

(44)

A Comunidade e seu ecossistema

● Principais eventos:

– Akademy (encontro mundial dos colaboradores - Europa) – Akademy-ES (Espanha)

– Akademy-FR (França)

– LaKademy (encontro Latino-Americano) – Sprints:

● Randa Meetings (Suíça) ● PIM Sprint

● Plasma Sprint

● KDevelop/Kate Sprint ● ...

(45)

A Comunidade e seu ecossistema

(46)

O KDE no Brasil

● Maior expansão a partir de 2008, com diversas ações de divulgação e incentivo à contribuição

● Maior participação do KDE nas principais conferências de software livre do Brasil (FISL, Latinoware, etc)

● Palestras e minicursos em todo o Brasil

● Alta participação em eventos próprios do KDE no Brasil e no exterior

(47)

A Comunidade e seu ecossistema

(48)

A Comunidade e seu ecossistema

(49)

A Comunidade e seu ecossistema

(50)

A Comunidade e seu ecossistema

(51)

A Comunidade e seu ecossistema

● 4o Lakademy – 2016

– Universidade Federal do Estado do Rio de Janeiro (UNIRIO) – De 26 a 29 de maio de 2016

(52)

E daí ?

Por que eu devo me importar com isso ?

Por que todos devem se importar com isso ?

(53)

Software Livre

(54)

Software Livre

Por quê ?

(55)

Software Livre

(56)

Software Livre

Por quê ?

(57)

Software Livre

(58)

Software Livre – como não contribuir

● “Não tenho tempo e/ou interesse ...” ● “Não estou preparado ainda ...”

● “Não sei programar ...”

● “Eles vão falar mal do meu código-fonte ...” ● “Sou uma pessoa boss-oriented ...”

● “São todos xiitas, comunistas ...”

● “Tenho dificuldades com a língua inglesa ...” ● “Gosto de trabalhar sozinho ...”

(59)
(60)

Nós temos história …

… mas ela está se

perdendo !

(61)

Onde estávamos ?

Onde estivemos ?

(62)

Onde estávamos ?

● *-2000 ● ● ● ● ●

● Embora o Linux tenha chegado na UFBA ~1996

(63)

Onde estivemos ?

Sem a intenção de esgotar o assunto :)

● 2000

– Surgimento do GAVRI-IM / UFBA

● 2003

– Criação do PSL-BA

– 1o Festival GNU/Linux de Salvador

● 2004

– 1o Fórum Baiano de Software Livre – Hugo Braga desenvolve o ROX

(64)

Onde estivemos ?

● 2005

● 2o Festival de Software Livre da Bahia ● 2o Fórum Baiano de Software Livre ● Extinção do GAVRI-IM

● Lucas Rocha integra a equipe de desenvolvedores do GNOME

● 2006:

● Colivre é fundada

● Aurélio integra a equipe de desenvolvedores do Inkscape ● Valéssio começa a realizar contribuições com o Inkscape ● 3o Festival de Software Livre da Bahia

● Ampliação das atividades do GNU-Ruy ● Início do projeto Ekaati

(65)

Onde estivemos ?

● 2008

– Sandro e Tomaz integram a equipe de desenvolvedores do KDE

● 2009

– Sandro e Tomaz participam do Google Summer of Code / KDE – 4o Festival de Software Livre da Bahia / ENSL

● 2010

– Tomaz transforma o ROX (Eclipse) no Rocs (C++/Qt) e o lança mundialmente como parte do KDE

(66)

Onde estivemos ?

● 2011

– Caio Tiago e Krishnamurti Lélis realizam traduções de diversos projetos – Terceiro, Tiago e Tassia integram a equipe de desenvolvedores do Debian – Sandro ministra disciplina sobre desenvolvimento de Software Livre na

UFBa (GNOME, KDE, Drupal, Foswiki, Qt)

– Melissa e Aline participam do GNOME Outreach Program for Women

● 2012

(67)

Onde estivemos ?

● 2014

– Criação do Raul Hacker Club

● 2015

– Acontece, em Salvador, o 3o LaKademy (03-06 de Junho) – Sandro passa a fazer parte do Board de Diretores do KDE

(68)

Onde estamos ?

Período de ressaca / apatia

Falta de interesse / diminuição na procura

Bikeshedding na comunidade brasileira de Software Livre A insalubridade do Software Livre

Falta de incentivo na academia

(69)

Chega de idéias, discussões, planos e ...

(70)

AÇÕ

ES !!

!

(71)

Ações !

● Alunos como agentes catalisadores (SEMPRE) !

● DOJOs abertos de iniciação à contribuição em projetos de Software Livre

● Políticas públicas para adoção e contribuição em projetos de Software Livre

● Empreendedorismo com Software Livre

● Software Livre como oportunidade de carreira

● Divulgação e incentivo à participação em programas tais como o Google Summer of Code

(72)

Ações !

(73)

Ações !

● Top 10 instituições participantes do GSoC 2014:

(74)

Ações !

(75)

Ações !

● Retomada do Festival de Software Livre da Bahia

● Retomada do Encontro Nordestino de Software Livre ● Uso de Software Livre em atividades acadêmicas

● Fortalecimento das comunidades locais e brasileiras

● Divulgação do modus operandi básico de contribuição (rituais, dificuldades, soluções, arranjos sociais, etc)

● Maior presença no FISL, Latinoware, etc ● Sensibilização dos professores

(76)

Oportunidades de Carreira

● Software Livre não é mais somente um hobby de pessoas apaixonadas pelo que fazem

● É perfeitamente possível seguir carreira na área ● Geralmente inicia-se como voluntário, …

● … o software livre passa a ser sua grande vitrine para o mundo … ● … e você então pode trabalhar fazendo o que gosta

(77)

Conclusões

● Temos tradição, temos potencial, mas os últimos três anos foram desanimadores para o Software Livre na Bahia

● Estamos em um momento apático e de ressaca, é necessário mudar !

● O Software Livre abre um mundo de oportunidades de carreira, experiências, trabalhos gratificantes e novos amigos

● Empenhe-se, encontre sua turma e traga toda a sua motivação e força de vontade para o Software Livre na Bahia !

(78)

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

(79)

Desenvolvendo Aplicações Android com Qt

Colaborando com Software Livre no KDE

Referências

Documentos relacionados

Para até 01 (um) dependente de empregado estudante e mediante o atendimento integral dos requisitos previstos nos parágrafos primeiro e segundo, do plano

O tempo ideal para obtenção dos cortes, para liberação de pranchas (bancadas altas) ou de filões (bancadas baixas), deve estar em conformidade com o ritmo de

Sombra “dura” versus sombra “mole” Hard shadows - não realístico + fácil de calcular Soft shadows + mais real - caro.. Umbra: ponto

§ 4.º - Somente será permitida a locação da Sede Social, para não associado, de terça a sexta-feira, cabendo a secretaria da ADPETO divulgar aos associados os dias da

• Para reduzir o risco de lesões para o passageiro numa travagem brusca ou num acidente, este não deve viajar nunca com o encosto excessiva- mente reclinado para trás. A

Com relação à temperatura da água, os pontos antes da barragem apresentaram valores inferiores aos pontos depois da barragem, sendo essa diferença significativa de acordo com o

Os apoios a conceder no âmbito da acção n.º 2.2.1 «Alteração dos modos de produção» e da acção n.º 2.2.4 «Conservação do solo», são cumuláveis com os apoios a conceder

I – processar e julgar, originariamente: (...) d) (...) o habeas data contra atos do Pre- sidente da República, das Mesas da Câmara dos Deputados e do Senado Federal, do Tribunal