desenvolvendo aplicações grá cas no linux sem esforçoescrever um script que compila tudo otda...

62

Upload: others

Post on 16-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Desenvolvendo aplicações grá�cas no linux semesforço

(mas não só grá�cas)

Wagner Reck1

1UNIPAMPA-Alegrete

Semana Acadêmica Ulbra, 2010

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 1/44

Page 2: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Who am i?

Wagner de Melo Reck

Aluno graduando de CC - UNIPAMPA - Alegrete

Bolsista de IC - Iniciação Cientí�ca

GESEP - Eng. ElétricaÓtima chance de sentir como é 'trabalhar';Ir além da sala de aula;

Primeiro contato com Linux em 2001;

Uso direto desde 2007;

Contribuidor KDE desde janeiro

Aprovado para o GSoC (Google Summer of Code)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 2/44

Page 3: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Porque eu uso Linux:

Sou pobre e não quero pagar para ter 'porcarias' !;

tenho um lado 'viva la revolucion!' :) ;

Gosto das coisas funcionando quando eu quero, não quandoelas querem;

se gostei de algo, olho o código fonte e vejo como fazer;

Grande sala de aprendizado!

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 3/44

Page 4: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

O que o Linux já me trouxe

O Conhecimento, e isso ninguem me tira!

O KDE

Que me levou a:

Akademy-BR em salvadorGSoC: Google Summer of Code(quase) Akademy em Tampere/Finlândia

Estar aqui palestrando hoje

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 4/44

Page 5: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Como será a palestra?

Primeira parte mostrarei ferramentas linux para devel;

Na segunda parte, ferramentas/códigos para GUI;

Perguntas durante o tema (ou no �nal dele);

Prêmio para perguntas ^_^

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 5/44

Page 6: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como será a palestra?

Primeira parte mostrarei ferramentas linux para devel;

Na segunda parte, ferramentas/códigos para GUI;

Perguntas durante o tema (ou no �nal dele);

Prêmio para perguntas ^_^

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 5/44

Page 7: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

O que é o GCC?

Quem adivinha?

GNU C Compiler?GNU Compiler Collection?GCC Compiler Compiler?

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 6/44

Page 8: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

O que é o GCC?

Quem adivinha?

GNU Compiler Collection

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 7/44

Page 9: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

O que o GCC oferece?

Ferramentas básicas para sobrevivência

Compiladores (C, C++, Fortran, java ...)

Linker

Bibliotecas básicas

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 8/44

Page 10: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como utilizar?

# gcc -o nomeApplicativo source.c

Mostrando mais erros:

# gcc -o nomeApplicativo source.c -Wall

warning = allmostra erros não críticos, mas que podem conter bugs

Linkar com alguma biblioteca:

# gcc -o appComLib souce.c -lx11

Gerar código objeto

# gcc -c -o codObjeto source.c

Gera um arquivo codObjeto.o com a compilação, mas não alinkagem

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 9/44

Page 11: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como utilizar?

# gcc -o nomeApplicativo source.c

Mostrando mais erros:

# gcc -o nomeApplicativo source.c -Wall

warning = allmostra erros não críticos, mas que podem conter bugs

Linkar com alguma biblioteca:

# gcc -o appComLib souce.c -lx11

Gerar código objeto

# gcc -c -o codObjeto source.c

Gera um arquivo codObjeto.o com a compilação, mas não alinkagem

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 9/44

Page 12: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como utilizar?

# gcc -o nomeApplicativo source.c

Mostrando mais erros:

# gcc -o nomeApplicativo source.c -Wall

warning = allmostra erros não críticos, mas que podem conter bugs

Linkar com alguma biblioteca:

# gcc -o appComLib souce.c -lx11

Gerar código objeto

# gcc -c -o codObjeto source.c

Gera um arquivo codObjeto.o com a compilação, mas não alinkagem

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 9/44

Page 13: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como utilizar?

# gcc -o nomeApplicativo source.c

Mostrando mais erros:

# gcc -o nomeApplicativo source.c -Wall

warning = allmostra erros não críticos, mas que podem conter bugs

Linkar com alguma biblioteca:

# gcc -o appComLib souce.c -lx11

Gerar código objeto

# gcc -c -o codObjeto source.c

Gera um arquivo codObjeto.o com a compilação, mas não alinkagem

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 9/44

Page 14: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como compilar vários arquivos?

Um por um?

O Kernel, bem como outros projetos, tem milhares de arquivos

Escrever um script que compila tudo

Toda compilação vai ser de todo projetoMudar uma linha de código no KDE levaria algumas horas atécompilar tudo de novo.

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 10/44

Page 15: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como compilar vários arquivos?

Um por um?

O Kernel, bem como outros projetos, tem milhares de arquivos

Escrever um script que compila tudo

Toda compilação vai ser de todo projetoMudar uma linha de código no KDE levaria algumas horas atécompilar tudo de novo.

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 10/44

Page 16: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Como compilar vários arquivos?

Um por um?

O Kernel, bem como outros projetos, tem milhares de arquivos

Escrever um script que compila tudo

Toda compilação vai ser de todo projetoMudar uma linha de código no KDE levaria algumas horas atécompilar tudo de novo.

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 10/44

Page 17: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Make�les

Arquivo com comandos que são executados em sequência;

Make�le

all: myAppmyApp :

gcc source.c -o myApp -lLib

Um dos build system mais utilizados;

Como gerar os Make�les?

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 11/44

Page 18: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Autotools(autohells)

Parte da GNU tool chains;

Completo e Complicado;

Desenvolvedor precisaapenas:

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 12/44

Page 19: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

QMake

Ferramenta que acompanha Qt;

Ferramenta simples e e�ciente

Gera projeto automaticamente (para projetos simples)

Pode ser usado para grandes projetos

recomendado para 'iniciantes' :)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 13/44

Page 20: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

QProject

project.pro

QT += webkitTARGET = littleBrowserTEMPLATE = appSOURCES += main.cpp mainwindow.cppHEADERS += mainwindow.hFORMS += mainwindow.ui

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 14/44

Page 21: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Cmake

Usado em grandes projetos (KDE por exemplo)

Completo e 'Simples'

out-source build

Acompanha ferramentas extras:

CPack: Gera pacotes de instalação;CTest: Executa casos de teste registrados;CDash: Envia resultado da compilação/testes para servidor

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 15/44

Page 22: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Arquivo de projeto

CMakeLists.txt

project (tutorial1)�nd_package(KDE4 REQUIRED)include (KDE4Defaults)include_directories(${KDE4_INCLUDES})kde4_add_executable(tutorial1 main.cpp)target_link_libraries(tutorial1 ${KDE4_KDEUI_LIBS})install(TARGETS tutorial1

${INSTALL_TARGETS_DEFAULT_ARGS})

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 16/44

Page 23: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

SCons

Não gera Make�les

Roda scripts em Python

Facilita resolver os problemas de decisão

Cross plataform

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 17/44

Page 24: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

GDB

#include <cstring>#include <cstdio>int main(){

char *letras =(char*) "salvesalvesimpatia";if (strlen(letras) < -1){

printf("Pois eh...");}else {

printf(�Tudo ok.�)}return 0;

}

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 18/44

Page 25: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

The root of all evil

Função retorna size_t

size_t strlen(char*)

..que é..

typedef unsigned int size_t

..-1 convertido é:

(unsigned int) -1 == 65536

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 19/44

Page 26: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

The root of all evil

Função retorna size_t

size_t strlen(char*)

..que é..

typedef unsigned int size_t

..-1 convertido é:

(unsigned int) -1 == 65536

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 19/44

Page 27: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

The root of all evil

Função retorna size_t

size_t strlen(char*)

..que é..

typedef unsigned int size_t

..-1 convertido é:

(unsigned int) -1 == 65536

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 19/44

Page 28: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Debugando

#gcc -o application source.c -g

#gdb application

Prompt

n - nextr - runb source.c:2 - insere Breakpoint na linha 2 de �le

Interface

DDDIDE

Pro�ller (devagar nas pedra!)

ValgrindKachgrind

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 20/44

Page 29: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Debugando

#gcc -o application source.c -g

#gdb application

Prompt

n - nextr - runb source.c:2 - insere Breakpoint na linha 2 de �le

Interface

DDDIDE

Pro�ller (devagar nas pedra!)

ValgrindKachgrind

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 20/44

Page 30: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Debugando

#gcc -o application source.c -g

#gdb application

Prompt

n - nextr - runb source.c:2 - insere Breakpoint na linha 2 de �le

Interface

DDDIDE

Pro�ller (devagar nas pedra!)

ValgrindKachgrind

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 20/44

Page 31: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Debugando

#gcc -o application source.c -g

#gdb application

Prompt

n - nextr - runb source.c:2 - insere Breakpoint na linha 2 de �le

Interface

DDDIDE

Pro�ller (devagar nas pedra!)

ValgrindKachgrind

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 20/44

Page 32: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Debugando

#gcc -o application source.c -g

#gdb application

Prompt

n - nextr - runb source.c:2 - insere Breakpoint na linha 2 de �le

Interface

DDDIDE

Pro�ller (devagar nas pedra!)

ValgrindKachgrind

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 20/44

Page 33: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Controle de Versões

Facilitam dividir o desenvolvimento

Mantém histórico do desenvolvimento

Mais fácil de resolver BugsAcaba com Trabalho1.c, trabalho_Final.c, trabalho_Final1.c...

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 21/44

Page 34: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Exemplos de SCV

SVN

Necessita de um servidor

GIT

Roda local no computadorUsuário decide quando enviar/receber dados

Interfaces para os gerenciadores de versões

IDEsgitk - git gui

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 22/44

Page 35: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Exemplos de SCV

SVN

Necessita de um servidor

GIT

Roda local no computadorUsuário decide quando enviar/receber dados

Interfaces para os gerenciadores de versões

IDEsgitk - git gui

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 22/44

Page 36: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Exemplos de SCV

SVN

Necessita de um servidor

GIT

Roda local no computadorUsuário decide quando enviar/receber dados

Interfaces para os gerenciadores de versões

IDEsgitk - git gui

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 22/44

Page 37: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

O que é uma IDE

Applicativo que agrega funcionalidades para o programador

Interface do DebugadorEditor de interfacesEditor de códigoExecução do 'make'Gerenciador de versõesAcesso a Documentação

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 23/44

Page 38: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Exemplos de IDE

Eclipse

Ótima IDE, ótimos pluginsMuito pesada (~400 MB)

QtCreator

IDE mais recente, mas muito promissora

Kdevelop

IDE padrão do KDEVersão 4.0 muito boa

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 24/44

Page 39: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Exemplos de IDE

Eclipse

Ótima IDE, ótimos pluginsMuito pesada (~400 MB)

QtCreator

IDE mais recente, mas muito promissora

Kdevelop

IDE padrão do KDEVersão 4.0 muito boa

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 24/44

Page 40: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Exemplos de IDE

Eclipse

Ótima IDE, ótimos pluginsMuito pesada (~400 MB)

QtCreator

IDE mais recente, mas muito promissora

Kdevelop

IDE padrão do KDEVersão 4.0 muito boa

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 24/44

Page 41: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

X11

Padrão de interface grá�ca Unix

várias implementações

XFree86 até 2004Xorg (fork do XFree86) passou a predominar

Desenvolvido para UNIX, mas hoje roda em várias plataformas

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 25/44

Page 42: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

X11 Stack

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 26/44

Page 43: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Screenshot X11

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 27/44

Page 44: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

O que são Toolkits grá�cos?

São bibliotecas que simpli�cam o desenvolvimento de GUI(Graphics User Interface)

Padronizam as GUI

Devem não parecer 'ETs' na plataforma alvo;

Cuidam do baixo nível, abstraindo detalhes de plataforma dodesenvolvedor.

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 28/44

Page 45: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

O que é um Widget?

São os blocos básicos das interfaces grá�cas;

Um botão é um widget;Uma janela é um Widget;Um dialogo é um widget

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 29/44

Page 46: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Exemplos de Widgets

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 30/44

Page 47: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

Motif

Representa tanto a API (padrão IEEE) quanto conjunto dewidgets;

'Feio' mas muito usado em aplicações críticas;

Inicio do desenvolvimento nos anos 80;

Tenta imitar o comportamento do MS WIndows e OS/2;

Base do CDE (Common Desktop Environment)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 31/44

Page 48: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Compilador de C++ (g++) Build systems Debugador Gerenciamento de versões IDEs Pilha do X11 Toolkits grá�cos

GTK+

GTK foi desenvolvido para ser base do GIMP;

Gimp ToolKit

Lançado em 1998;

Usa C (OO provida pelo GObject)

Possui binds para outras linguagens

Base do Gnome, XFCE;

Multi plataforma;

Suporte a temas

Bom toolkit grá�co.

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 32/44

Page 49: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Qt

Desenvolvido para ser multiplataforma;

Iniciado em 1991

Primeira versão em 1995

Base do KDE

Widgets altamente customizáveis (CSS)

Muito mais que um Toolkit grá�co...

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 33/44

Page 50: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Qt

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 34/44

Page 51: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

O que é o Qt? I

Um Framework de desenvolvimento

Vai além de um toolkit grá�co

Banco de dadosXMLNetworkingCanvas para grá�cos 2D - 3D,Concorrência

Threads

Gerador de Documentos (PDF, ODF)Imagens

SVG

Script (códigos hibridos)Webkit (um navegador básico c/ poucas linha de código!)IPC (DBUS)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 35/44

Page 52: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

O que é o Qt? II

Phonom (audio e vídeo)AnimaçõesGestos*Mult touch*Várias Ferramentas

Gerador de Make�les

Auxílio na tradução

Sistema de ajuda

http://qt.nokia.com/services-partners/qt-in-education

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 36/44

Page 53: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Pequenas demonstrações

Exemplos (Qt-Demos)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 37/44

Page 54: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

KDE

Apresentação do Sandro.

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 38/44

Page 55: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Akademy-BR

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 39/44

Page 56: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Akademy-BR

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 40/44

Page 57: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

KDE-Edu sprint - Suiça

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 41/44

Page 58: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Projeto de invasão das faculdades

De�nition

Objetivo: Ajudar na inserção de alunos no Software Livre atravésdo KDE.

De�nition

Metodologia: Auxilio básico para iniciantes com contato inicial como KDE SC e KDE, indicação de leituras, tradução conjunta deartigos, resolução de dúvidas gerais e conversas amigas.

De�nition

Desenvolvimento: Devido a distância (ainda não temos nenhumintegrante do KDE-RS nessa região), e-mail, IRC, lista de e-mail,futuras palestras. (NUNCA tenham medo de perguntar)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 42/44

Page 59: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Projeto de invasão das faculdades

De�nition

Objetivo: Ajudar na inserção de alunos no Software Livre atravésdo KDE.

De�nition

Metodologia: Auxilio básico para iniciantes com contato inicial como KDE SC e KDE, indicação de leituras, tradução conjunta deartigos, resolução de dúvidas gerais e conversas amigas.

De�nition

Desenvolvimento: Devido a distância (ainda não temos nenhumintegrante do KDE-RS nessa região), e-mail, IRC, lista de e-mail,futuras palestras. (NUNCA tenham medo de perguntar)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 42/44

Page 60: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Projeto de invasão das faculdades

De�nition

Objetivo: Ajudar na inserção de alunos no Software Livre atravésdo KDE.

De�nition

Metodologia: Auxilio básico para iniciantes com contato inicial como KDE SC e KDE, indicação de leituras, tradução conjunta deartigos, resolução de dúvidas gerais e conversas amigas.

De�nition

Desenvolvimento: Devido a distância (ainda não temos nenhumintegrante do KDE-RS nessa região), e-mail, IRC, lista de e-mail,futuras palestras. (NUNCA tenham medo de perguntar)

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 42/44

Page 61: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Contatos do Projeto

No RS:

http://kders.wordpress.comhttp://groups.google.com.br/group/[email protected]

no Brasil

http://br.kde.orghttps://mail.kde.org/mailman/listinfo/kde-br#kde-brasil (irc.freenode.net)liveblue.wordpress.com

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 43/44

Page 62: Desenvolvendo aplicações grá cas no linux sem esforçoEscrever um script que compila tudo oTda compilação vai ser de todo projeto Mudar uma linha de código no KDE levaria algumas

Sites com documentação (Qt/KDE)

doc.qt.nokia.com

não só Qt/C++

techbase.kde.org

Muitos tutoriais legais e dicas de programação

Wagner Reck | Desenvolvendo aplicações grá�cas no linux sem esforço 44/44