SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
  IX Conferência Latino-Americana de Software Livre – Out/2012
Desenvolvendo Widgets QML
para o KDE Plasma Sandro Andrade
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEAgenda
● Novos requisitos para UX's
● Qt e QML
● KDE Plasma
● Plasma Widgets
● Seu Plasma Widget em 20 minutos
● O Futuro
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDE
Cross-platform
Interfaces flúidas
Desempenho em mobile
Adaptabilidade
Alta produtividade
Novos requisitos para
UXs
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
● 17 anos de história
● Criado pela Trolltech
● Mais de 900 classes e funcionalidades em diversas áreas,
além de GUIs
● Adquirido pela Nokia em 2008
● LGPL,Free Qt Foundation e Open Governance
● Adquirido pela Digia em 2012
● Versão 5.0 Beta 2 já disponível
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
● Porque Qt ?
● Cross-platform
● Excelente produtividade
● Excelente desempenho
● Ampla documentação
● Comunidade ativa e parte de um grande ecossistema
● Utilizado pelo Skype,Autodesk,Google,VLC,VirtualBox,dentre
muitos outros
● Possibilidade de uso com outras linguagens
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
UXs com Qt - Opção 1 (Qt Widgets)
gridLayout = new QGridLayout(Form);
label = new QLabel(Form);
gridLayout->addWidget(label,0,0,1,2);
lineEdit = new QLineEdit(Form);
gridLayout->addWidget(lineEdit,0,2,1,2);
horizontalSpacer = new QSpacerItem(121,20,QSizePolicy::Expanding,QSizePolicy::Minimum);
gridLayout->addItem(horizontalSpacer,1,0,1,1);
pushButton = new QPushButton(Form);
gridLayout->addWidget(pushButton,1,1,1,2);
pushButton_2 = new QPushButton(Form);
gridLayout->addWidget(pushButton_2,1,3,1,1);
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
UXs com Qt - Opção 2 (QML)
Rectangle {
width:360;height:180;color:"#343434"
Grid {
columns:2
spacing:10
Text {
id:text
text:"Enter your password:";color:"white";font.bold:true
}
...
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
● Porque QML ?
● Maior produtividade
● Fácil de aprender
● Excelente desempenho
● Boa documentação
● Melhor integração com o trabalho dos designers
● Facilmente integrável com C++,se necessário
● Componentes mais complexos para UXs ainda estão sendo
desenvolvidos
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● O que é o Plasma ?
Para o desenvolvedor
Application Framework
para desenvolvimento
de UXs
Para o usuário final
Workspace padrão do KDE
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Plasma Desktop
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Plasma Netbook
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Plasma Active
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Porque KDE Plasma ?
● Extremamente configurável
– Seis layouts diferentes
● Excelente desempenho
● Amplo uso de QML
● 90% do código é compartilhado entre os diferentes“flavours”
● Diversas plataformas-alvo:
– Desktops,netbooks,tablets
– No futuro:GPS's,setup boxes,TVs,veículos,geladeiras,...
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEPlasma Widgets
● O que são Plasma Widgets ?
● Mini-aplicações que podem ser executadas no workspace,panel
ou qualquer outro containment do Plasma
● 128 widgets diferentes oficialmente distribuídos pelo KDE
● Muitos outros desenvolvidos pela comunidade
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEPlasma Widgets
● Histórico do desenvolvimento de Plasma Widgets:
● 1a geração:
– Desenvolvidos em C++
● 2a geração:
– Desenvolvidos em JavaScript,Python ou Ruby
● 3a geração (recomendação atual do KDE):
– Desenvolvidos em QML + JavaScript
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● Estrutura geral de um Plasma Widget:
● <seu-widget>/metadata.desktop
● <seu-widget>/contents/main/ui/main.qml
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● metadata.desktop
[Desktop Entry]
Name=Hello QML
Comment=A hello world widget in QML
Icon=chronometer
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/main.qml
X-Plasma-DefaultSize=200,100
X-KDE-PluginInfo-Author=Frederik Gladhorn
X-KDE-PluginInfo-Email=gladhorn@kde.org
X-KDE-PluginInfo-Website=http://br.kde.org/
X-KDE-PluginInfo-Category=Examples
X-KDE-PluginInfo-Name=org.kde.hello-qml
X-KDE-PluginInfo-Version=0.0
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
X-KDE-ServiceTypes=Plasma/Applet
Type=Service
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● main.qml
import QtQuick 1.0
import org.kde.plasma.graphicswidgets 0.1 as PlasmaWidgets
Item {
width:64
height:64
PlasmaWidgets.IconWidget {
id:icon
Component.onCompleted:setIcon("flag-red")
anchors.centerIn:parent
}
}
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● Testando seu widget:
● plasmoidviewer <caminho-para-raiz-do-widget>
● Instalando:
● Plasmapkg -i (-u) <caminho-para-raiz-do-widget>
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● Um leitor simples de feeds RSS
● Data Sources
● plasmaengineexplorer
Plasma
Data Engine
Plasma
Widget 1
Plasma
Widget 2
Plasma
Widget 3
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEO Futuro
● QML como tecnologia promissora para interfaces flúidas
cross-platform
● KDE Plasma como application framework para
desenvolvimento de UXs em diversos form factors
● Muitas novidades com o KDE Frameworks 5:
● Melhor modularização
● Melhor desempenho
● Número ilimitado de dispositivos-alvo
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEMini-curso de QML
● Amanhã
● 10h as 13h
● Espaço Argentina – Laboratório 2
● Lamarque Souza
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDE
Perguntas ?
sandroandrade@kde..org / @andradesandro
http://www.kde.org / http://br.kde.org

Mais conteúdo relacionado

Mais procurados

Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João PessoaOpenBossa
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresTchelinux
 
Overview de Grails: O Java em alta produtividade
Overview de Grails: O Java em alta produtividadeOverview de Grails: O Java em alta produtividade
Overview de Grails: O Java em alta produtividadeCleórbete Santos
 
Aula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - WebschoolAula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - WebschoolBruno Orlandi
 
Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Julio Cesar Eiras Melanda
 
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyPython Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyJulio Cesar Eiras Melanda
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubBruno Orlandi
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018Jonh Wendell
 
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux EmbarcadoTDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux EmbarcadoCleiton Bueno
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterRicardo Ogliari
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010Wagner Reck
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Renato Groff
 
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoTO Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoTSandro Andrade
 

Mais procurados (20)

Introdução ao Qt
Introdução ao QtIntrodução ao Qt
Introdução ao Qt
 
Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João Pessoa
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila Ayres
 
Qt Apresentação
Qt ApresentaçãoQt Apresentação
Qt Apresentação
 
Overview de Grails: O Java em alta produtividade
Overview de Grails: O Java em alta produtividadeOverview de Grails: O Java em alta produtividade
Overview de Grails: O Java em alta produtividade
 
Introdução ao qt
Introdução ao qtIntrodução ao qt
Introdução ao qt
 
Aula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - WebschoolAula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - Webschool
 
Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015Apresentação Python e Games - Python Brasil 11 - 2015
Apresentação Python e Games - Python Brasil 11 - 2015
 
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - KivyPython Nordeste 2016 - Aplicações multiplataforma - Kivy
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHub
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018
 
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux EmbarcadoTDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
 
Git para Designers
Git para DesignersGit para Designers
Git para Designers
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Hack Thursday - NodeJS
Hack Thursday - NodeJSHack Thursday - NodeJS
Hack Thursday - NodeJS
 
Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e Flutter
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
 
Apresentação QtConBr
Apresentação QtConBrApresentação QtConBr
Apresentação QtConBr
 
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoTO Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
 

Destaque

Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Sandro Andrade
 
Minuet - the KDE approach to music education
Minuet - the KDE approach to music educationMinuet - the KDE approach to music education
Minuet - the KDE approach to music educationSandro Andrade
 
SASO2013 - PechaKucha version
SASO2013 - PechaKucha versionSASO2013 - PechaKucha version
SASO2013 - PechaKucha versionSandro Andrade
 
QtModeling - bringing metamodeling features into the KDE world
QtModeling - bringing metamodeling features into the KDE worldQtModeling - bringing metamodeling features into the KDE world
QtModeling - bringing metamodeling features into the KDE worldSandro Andrade
 
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...Sandro Andrade
 
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e SociaisKDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e SociaisSandro Andrade
 
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...Sandro Andrade
 
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...Sandro Andrade
 
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...Sandro Andrade
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataSandro Andrade
 

Destaque (10)

Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
 
Minuet - the KDE approach to music education
Minuet - the KDE approach to music educationMinuet - the KDE approach to music education
Minuet - the KDE approach to music education
 
SASO2013 - PechaKucha version
SASO2013 - PechaKucha versionSASO2013 - PechaKucha version
SASO2013 - PechaKucha version
 
QtModeling - bringing metamodeling features into the KDE world
QtModeling - bringing metamodeling features into the KDE worldQtModeling - bringing metamodeling features into the KDE world
QtModeling - bringing metamodeling features into the KDE world
 
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...
 
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e SociaisKDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
 
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
 
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
 
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigData
 

Semelhante a Desenvolvendo Widgets QML para o KDE Plasma

Todos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOTodos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOFernando Rizzato
 
KDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projeto
KDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projetoKDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projeto
KDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projetoPotiLivre Sobrenome
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
 
FLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First ImpactFLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First ImpactMichel Alves
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Renato Groff
 
Games Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEGames Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEJogos Digitais, PUC - SP
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Renato Groff
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoreRogério Moraes de Carvalho
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...Rodrigo Missiaggia
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 

Semelhante a Desenvolvendo Widgets QML para o KDE Plasma (20)

Todos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOTodos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIO
 
KDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projeto
KDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projetoKDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projeto
KDE Mobile: Leve o KDE Plasma para o seu Android e codifique nesse projeto
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
FLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First ImpactFLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First Impact
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
 
Games Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEGames Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDE
 
Kde comunidade
Kde comunidadeKde comunidade
Kde comunidade
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Bricklayer
BricklayerBricklayer
Bricklayer
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
 
2006 - SegundaAula.ppt
2006 - SegundaAula.ppt2006 - SegundaAula.ppt
2006 - SegundaAula.ppt
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
KDE EDU - Linux Educacional
KDE EDU - Linux EducacionalKDE EDU - Linux Educacional
KDE EDU - Linux Educacional
 

Desenvolvendo Widgets QML para o KDE Plasma

  • 1.   IX Conferência Latino-Americana de Software Livre – Out/2012 Desenvolvendo Widgets QML para o KDE Plasma Sandro Andrade
  • 2.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEAgenda ● Novos requisitos para UX's ● Qt e QML ● KDE Plasma ● Plasma Widgets ● Seu Plasma Widget em 20 minutos ● O Futuro
  • 3.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDE Cross-platform Interfaces flúidas Desempenho em mobile Adaptabilidade Alta produtividade Novos requisitos para UXs
  • 4.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML ● 17 anos de história ● Criado pela Trolltech ● Mais de 900 classes e funcionalidades em diversas áreas, além de GUIs ● Adquirido pela Nokia em 2008 ● LGPL,Free Qt Foundation e Open Governance ● Adquirido pela Digia em 2012 ● Versão 5.0 Beta 2 já disponível
  • 5.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML ● Porque Qt ? ● Cross-platform ● Excelente produtividade ● Excelente desempenho ● Ampla documentação ● Comunidade ativa e parte de um grande ecossistema ● Utilizado pelo Skype,Autodesk,Google,VLC,VirtualBox,dentre muitos outros ● Possibilidade de uso com outras linguagens
  • 6.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML UXs com Qt - Opção 1 (Qt Widgets) gridLayout = new QGridLayout(Form); label = new QLabel(Form); gridLayout->addWidget(label,0,0,1,2); lineEdit = new QLineEdit(Form); gridLayout->addWidget(lineEdit,0,2,1,2); horizontalSpacer = new QSpacerItem(121,20,QSizePolicy::Expanding,QSizePolicy::Minimum); gridLayout->addItem(horizontalSpacer,1,0,1,1); pushButton = new QPushButton(Form); gridLayout->addWidget(pushButton,1,1,1,2); pushButton_2 = new QPushButton(Form); gridLayout->addWidget(pushButton_2,1,3,1,1);
  • 7.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML UXs com Qt - Opção 2 (QML) Rectangle { width:360;height:180;color:"#343434" Grid { columns:2 spacing:10 Text { id:text text:"Enter your password:";color:"white";font.bold:true } ...
  • 8.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML ● Porque QML ? ● Maior produtividade ● Fácil de aprender ● Excelente desempenho ● Boa documentação ● Melhor integração com o trabalho dos designers ● Facilmente integrável com C++,se necessário ● Componentes mais complexos para UXs ainda estão sendo desenvolvidos
  • 9.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● O que é o Plasma ? Para o desenvolvedor Application Framework para desenvolvimento de UXs Para o usuário final Workspace padrão do KDE
  • 10.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Plasma Desktop
  • 11.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Plasma Netbook
  • 12.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Plasma Active
  • 13.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Porque KDE Plasma ? ● Extremamente configurável – Seis layouts diferentes ● Excelente desempenho ● Amplo uso de QML ● 90% do código é compartilhado entre os diferentes“flavours” ● Diversas plataformas-alvo: – Desktops,netbooks,tablets – No futuro:GPS's,setup boxes,TVs,veículos,geladeiras,...
  • 14.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEPlasma Widgets ● O que são Plasma Widgets ? ● Mini-aplicações que podem ser executadas no workspace,panel ou qualquer outro containment do Plasma ● 128 widgets diferentes oficialmente distribuídos pelo KDE ● Muitos outros desenvolvidos pela comunidade
  • 15.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEPlasma Widgets ● Histórico do desenvolvimento de Plasma Widgets: ● 1a geração: – Desenvolvidos em C++ ● 2a geração: – Desenvolvidos em JavaScript,Python ou Ruby ● 3a geração (recomendação atual do KDE): – Desenvolvidos em QML + JavaScript
  • 16.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● Estrutura geral de um Plasma Widget: ● <seu-widget>/metadata.desktop ● <seu-widget>/contents/main/ui/main.qml
  • 17.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● metadata.desktop [Desktop Entry] Name=Hello QML Comment=A hello world widget in QML Icon=chronometer X-Plasma-API=declarativeappletscript X-Plasma-MainScript=ui/main.qml X-Plasma-DefaultSize=200,100 X-KDE-PluginInfo-Author=Frederik Gladhorn X-KDE-PluginInfo-Email=gladhorn@kde.org X-KDE-PluginInfo-Website=http://br.kde.org/ X-KDE-PluginInfo-Category=Examples X-KDE-PluginInfo-Name=org.kde.hello-qml X-KDE-PluginInfo-Version=0.0 X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true X-KDE-ServiceTypes=Plasma/Applet Type=Service
  • 18.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● main.qml import QtQuick 1.0 import org.kde.plasma.graphicswidgets 0.1 as PlasmaWidgets Item { width:64 height:64 PlasmaWidgets.IconWidget { id:icon Component.onCompleted:setIcon("flag-red") anchors.centerIn:parent } }
  • 19.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● Testando seu widget: ● plasmoidviewer <caminho-para-raiz-do-widget> ● Instalando: ● Plasmapkg -i (-u) <caminho-para-raiz-do-widget>
  • 20.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● Um leitor simples de feeds RSS ● Data Sources ● plasmaengineexplorer Plasma Data Engine Plasma Widget 1 Plasma Widget 2 Plasma Widget 3
  • 21.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEO Futuro ● QML como tecnologia promissora para interfaces flúidas cross-platform ● KDE Plasma como application framework para desenvolvimento de UXs em diversos form factors ● Muitas novidades com o KDE Frameworks 5: ● Melhor modularização ● Melhor desempenho ● Número ilimitado de dispositivos-alvo
  • 22.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEMini-curso de QML ● Amanhã ● 10h as 13h ● Espaço Argentina – Laboratório 2 ● Lamarque Souza
  • 23.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDE Perguntas ? sandroandrade@kde..org / @andradesandro http://www.kde.org / http://br.kde.org