Palestrante: Jorge Pereira
Assunto: Desenvolvendo Aplicações no Linux
Local: Olinda
Data: 18/08/2007
                     ...
# Licença




            © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# whoiam?

      Meu nome é Jorge Pereira, tendo meu primeiro
contato com sistemas Unix por volta de 1996,
trabalhando dur...
# Objetivos
   Apresentar ao profissional ou estudante acostumado
a programar em ambiente Windows ou qualquer outro
ambien...
# Agenda

   Primeiros Passos
   A Cultura Windows x Linux
   Linguagens Suportadas
   Ferramentas
   Aplicações Gráf...
# Primeiros Passos




                     © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Primeiros Passos

  • Possuir o Linux instalado na máquina.
  • Conhecer o básico sobre o sistema.
  • Entender o básico...
# Primeiros Passos / Vantagens
 • Custo Zero.
 • Open Source.
 • Bugs podem ser consertados por qualquer pessoa.
 • Maior ...
# A Cultura Windows x Linux




                      © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# A Cultura Windows x Linux
• Como o SO fornecia apenas componentes de baixo
nível (e nenhuma ferramenta de apoio ao
desen...
# A Cultura Windows x Linux

• Pior, frequentemente uma nova versão do mesmo IDE
é incompatível com aplicações desenvolvid...
# A Cultura Windows x Linux



       E a cultura Linux?




                      © 2007 Jorge Pereira http://www.jorgepe...
# Linguagens Suportadas




                     © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Linguagens Suportadas
  • C/C++
  • Python
  • Perl
  • PHP
  • Ruby
  • Java
  • Cobol
  • Fortran
  • Pascal
  • Lua

...
# Linguagens Suportadas
  •C
     No Linux a linguagem de programação nativa é
  “C”, sua API padrão chama-se “Glibc – GNU...
# Ferramentas




                © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Ferramentas
 O Linux inclui o conjunto de ferramentas de
 desenvolvimento do GNU.
 • Editores vim e Emacs
 • Compilador ...
# Ferramentas / Vim




                      © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Ferramentas / Emacs




                        © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Ferramentas / GCC   (GNU Compiler Collection)




                          © 2007 Jorge Pereira http://www.jorgepereira...
# Ferramentas / Linkeditor




                       © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Ferramentas / GDB




                      © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Ferramentas / Makefiles




                       © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Ferramentas / CVS




                      © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Aplicações Gráficas




                        © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Aplicações Gráficas
• O Linux dispõe de vários componentes para
desenvolvimento de aplicativos gráficos, também
conhecid...
# Aplicações Gráficas / GTK
• O GTK+ nasceu como um toolkit alternativo para o X
Window System no desenvolvimento do GIMP,...
# Aplicações Gráficas / GTK
• O GTK+ foi desenvolvido em ANSI C, embora
baseado em um projeto orientado a objetos
• Assim ...
# Aplicações Gráficas / GTK
• O GTK e um projeto bastante estável e rico de componentes
gráficos para desenvolvimento de a...
# Aplicações Gráficas / GTK
• Abaixo segue uma imagem da arquitetura de um
programa utilizando GTK.




                  ...
# Aplicações Gráficas / GTK


Em seguida, um exemplo de código GTK
             feito em “C”




                      © 2...
© 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Aplicações Gráficas / Complicado?!
• A o código aparentemente complicado, cheio de
ponteiros, casts, e funções com nomes...
# Aplicações Gráficas / Complicado?!


 Em seguida, um exemplo do mesmo código sendo
feito em PHP com suporte a GTK, chama...
© 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Aplicações Gráficas / GTK

GTK com as facilidades do desenvolvimento
                  Visual.




                     ...
# Aplicações Gráficas / GTK / Glade
 • Proposta de desenvolvimento visual diferente dos IDEs do
 mundo Windows.
 • O GTK+ ...
# Aplicações Gráficas / GTK / Glade




                       © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Aplicações Gráficas / GTK / Glade
 • Ele não é um IDE estilo Delphi ou VB, é apenas uma
 IDE utilizada para desenhar jan...
# Aplicações Gráficas / GTK / Glade


   Demonstração de um projeto feito no Glade.

    Projeto: “$PWD/GTK-EditorTexto-Gl...
# Aplicações Gráficas / GTK / Ambiente
• Glade (desenhar formulários)
• Emacs, SciTE, Moleskine, Ajuta (editor de
programa...
# Aplicações Gráficas / GTK / Ambiente
Anjuta é um Ambiente de Desenvolvimento Integrado
para C e C++ em GNU/Linux. Ele fo...
# Aplicações Gráficas / GTK / Anjuta




                       © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Aplicações Gráficas / DevHelp
       E possível obter ajuda sobre diversas API,
inclusive o GTK através do próprio Linux...
# Aplicações Gráficas / DevHelp




                       © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Aplicações Gráficas / DevHelp




                       © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Perguntas?




               © 2007 Jorge Pereira http://www.jorgepereira.com.br/
# Referências     • Sobre o Glade
                  www.glade.org
• Sobre o Gimp
www.gimp.org      wingtk.sourceforge.net
...
# Referências
• PHP                    • Fernando Lozano
www.php.net              www.lozano.eti.br
pear.php.net
         ...
# Contato



 Site: http://www.jorgepereira.com.br/
 E-mail: jorge@jorgepereira.com.br




                        © 2007 ...
Obrigado! ;)


         © 2007 Jorge Pereira http://www.jorgepereira.com.br/
Upcoming SlideShare
Loading in …5
×

Dia Debian 2007 - Desenvolvendo aplicações no Linux

1,368 views
1,251 views

Published on

Autor, Jorge Pereira

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,368
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dia Debian 2007 - Desenvolvendo aplicações no Linux

  1. 1. Palestrante: Jorge Pereira Assunto: Desenvolvendo Aplicações no Linux Local: Olinda Data: 18/08/2007 © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  2. 2. # Licença © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  3. 3. # whoiam? Meu nome é Jorge Pereira, tendo meu primeiro contato com sistemas Unix por volta de 1996, trabalhando durante muitos anos com soluções e consultorias voltadas para sistemas OpenSource, atuando durante esses anos como desenvolvedor, sysadmin, instrutor e palestrante. Atualmente trabalhando como desenvolvedor C/C++. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  4. 4. # Objetivos Apresentar ao profissional ou estudante acostumado a programar em ambiente Windows ou qualquer outro ambiente diferente do Linux, as ferramentas e possibilidades disponíveis para programação em ambiente Linux. Indicar caminhos para o desenvolvimento de aplicações multiplataforma, como preparação para uma futura migração ao Linux ou como forma de viabilizar uma rede heterogênea © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  5. 5. # Agenda  Primeiros Passos  A Cultura Windows x Linux  Linguagens Suportadas  Ferramentas  Aplicações Gráficas  Perguntas  Referências  Contato © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  6. 6. # Primeiros Passos © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  7. 7. # Primeiros Passos • Possuir o Linux instalado na máquina. • Conhecer o básico sobre o sistema. • Entender o básico sobre seu funcionamento. • Acesso a fontes de pesquisa. • Conhecimentos sobre programação. • Por fim: Força de vontade. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  8. 8. # Primeiros Passos / Vantagens • Custo Zero. • Open Source. • Bugs podem ser consertados por qualquer pessoa. • Maior flexibilidade. • Vasta base de software. • Utilização do Linux em aplicações embarcadas. • Grandes empresas investindo na plataforma: • Motorola, Nokia, IBM, Oracle, Novell ... © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  9. 9. # A Cultura Windows x Linux © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  10. 10. # A Cultura Windows x Linux • Como o SO fornecia apenas componentes de baixo nível (e nenhuma ferramenta de apoio ao desenvolvimento), as IDEs tornaram-se “inchados” e incompatíveis entre si. • As dificuldades do padrão *OCX fizeram com que cada IDE fornecesse sua própria biblioteca de componentes, de modo que o programador não aproveita quase nada do seu knowhow ao mudar de IDE * (OLE Control Extension) © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  11. 11. # A Cultura Windows x Linux • Pior, frequentemente uma nova versão do mesmo IDE é incompatível com aplicações desenvolvidas com versões anteriores do mesmo IDE (ex: VB 4/5/6, Delphi 6/7) • O foco nos desenhadores de formulários leva a aplicações de difícil manutenção sem a ajuda dos famosos “componentes”. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  12. 12. # A Cultura Windows x Linux E a cultura Linux? © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  13. 13. # Linguagens Suportadas © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  14. 14. # Linguagens Suportadas • C/C++ • Python • Perl • PHP • Ruby • Java • Cobol • Fortran • Pascal • Lua © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  15. 15. # Linguagens Suportadas •C No Linux a linguagem de programação nativa é “C”, sua API padrão chama-se “Glibc – GNU Library C”, possuindo os principais recursos nativos abaixo: • Entrada/Saída; • Arquivos; • Rede; • Chamadas de Sistema; • Matemática; • Multi-Tarefas • ... © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  16. 16. # Ferramentas © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  17. 17. # Ferramentas O Linux inclui o conjunto de ferramentas de desenvolvimento do GNU. • Editores vim e Emacs • Compilador GCC • Linkeditor dinâmico • Depurador GDB (cli), xgdb, DDD e GVD (visuais) • Bibliotecas • Makefiles (Ferramentas de Build) • CVS • Man (ajuda online) • Entre outras. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  18. 18. # Ferramentas / Vim © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  19. 19. # Ferramentas / Emacs © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  20. 20. # Ferramentas / GCC (GNU Compiler Collection) © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  21. 21. # Ferramentas / Linkeditor © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  22. 22. # Ferramentas / GDB © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  23. 23. # Ferramentas / Makefiles © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  24. 24. # Ferramentas / CVS © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  25. 25. # Aplicações Gráficas © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  26. 26. # Aplicações Gráficas • O Linux dispõe de vários componentes para desenvolvimento de aplicativos gráficos, também conhecidos como “toolkits”. • Os mais famosos são o GTK, utilizado no desenvolvimento do Gnome e o QT utilizado no KDE. • Ambos os toolkits também são disponíveis para outros ambientes, inclusive o Windows. • Grande parte dos aplicativos são desenvolvidos na linguagem C e C++, possuindo bindings para outras linguagens. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  27. 27. # Aplicações Gráficas / GTK • O GTK+ nasceu como um toolkit alternativo para o X Window System no desenvolvimento do GIMP, pois nenhum toolkit livre existente na época fornecia a qualidade visual e riqueza de componentes exigidos pela aplicação. • A popularidade do GIMP e as características do GTK+ o tornaram apropriado para muitas outras aplicações, e hoje ele talvez seja o toolkit mais popular para o desenvolvimento de aplicações para Linux e Unix © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  28. 28. # Aplicações Gráficas / GTK • O GTK+ foi desenvolvido em ANSI C, embora baseado em um projeto orientado a objetos • Assim se torna fácil criar bindings do toolkit para outras linguagens, como Perl, Python, PHP, Pascal, Java, ADA, etc. • Todos esses bindings são muito semelhantes, apenas adaptados às peculiaridades de cada linguagem, de modo que o conhecimento sobre o GTK+ é preservado em uma mudança de linguagem. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  29. 29. # Aplicações Gráficas / GTK • O GTK e um projeto bastante estável e rico de componentes gráficos para desenvolvimento de aplicações das mais diversas, abaixo seguem alguns exemplos de aplicativos que utilizam o GTK como sendo o toolkit visual. • Gimp • Gnumeric • Mozilla • Dia • OpenOffice • MrProject • Evolution • xmms • Ethereal • Anjuta • Glade • File Roller • AbiWord • O próprio GNOME © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  30. 30. # Aplicações Gráficas / GTK • Abaixo segue uma imagem da arquitetura de um programa utilizando GTK. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  31. 31. # Aplicações Gráficas / GTK Em seguida, um exemplo de código GTK feito em “C” © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  32. 32. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  33. 33. # Aplicações Gráficas / Complicado?! • A o código aparentemente complicado, cheio de ponteiros, casts, e funções com nomes longos, não é conseqüência da natureza do GTK+ e sim da linguagem C, que manipula ponteiros diretamente e não implementa polimorfismo. • Linguagens com características semelhantes, como PHP, geram programas semelhantes “de uma forma menos traumatizante”. =) © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  34. 34. # Aplicações Gráficas / Complicado?! Em seguida, um exemplo do mesmo código sendo feito em PHP com suporte a GTK, chamado de “php- gtk”. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  35. 35. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  36. 36. # Aplicações Gráficas / GTK GTK com as facilidades do desenvolvimento Visual. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  37. 37. # Aplicações Gráficas / GTK / Glade • Proposta de desenvolvimento visual diferente dos IDEs do mundo Windows. • O GTK+ é independente de linguagem e de SO. • O Glade também tenta ser, apesar de oferecer recursos (opcionais) específicos para o Gnome. • Pode gerar o código das janelas em C e outras linguagens. • Mas o preferido é salvar apenas a descrição das janelas em formato XML, processado em tempo de execução pela biblioteca libGlade. • Permite modificar o layout das janelas sem recompilar. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  38. 38. # Aplicações Gráficas / GTK / Glade © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  39. 39. # Aplicações Gráficas / GTK / Glade • Ele não é um IDE estilo Delphi ou VB, é apenas uma IDE utilizada para desenhar janelas. • É capaz de gerar código em C, C++, Ada, Eiffel e Perl correspondente à interface desenhada • Entretanto, via LibGlade, pode ser utilizado com qualquer outra linguagem. • IDEs como o Anjuta utilizam o Glade para fornecer Um ambiente completo de desenvolvimento © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  40. 40. # Aplicações Gráficas / GTK / Glade Demonstração de um projeto feito no Glade. Projeto: “$PWD/GTK-EditorTexto-Glade/editor.glade” © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  41. 41. # Aplicações Gráficas / GTK / Ambiente • Glade (desenhar formulários) • Emacs, SciTE, Moleskine, Ajuta (editor de programas) • GCC, Java, Perl, Python, PHP (compilador ou interpretador) • DDD, GVD, GDB (depurador) • CVS (trabalho em equipe) • MySQL, PostgreSQL, Firebird (Banco de Dados) © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  42. 42. # Aplicações Gráficas / GTK / Ambiente Anjuta é um Ambiente de Desenvolvimento Integrado para C e C++ em GNU/Linux. Ele foi escrito para GTK+/GNOME e suporta muitas capacidades avançadas como gerenciamento de projetos e um poderoso editor de código fonte. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  43. 43. # Aplicações Gráficas / GTK / Anjuta © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  44. 44. # Aplicações Gráficas / DevHelp E possível obter ajuda sobre diversas API, inclusive o GTK através do próprio Linux, basta instalar e utilizar a ferramenta Devhelp. Pois ele possui recurso de busca e fácil acesso a descrição das API. © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  45. 45. # Aplicações Gráficas / DevHelp © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  46. 46. # Aplicações Gráficas / DevHelp © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  47. 47. # Perguntas? © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  48. 48. # Referências • Sobre o Glade www.glade.org • Sobre o Gimp www.gimp.org wingtk.sourceforge.net www.wingimp.org • GNU C • Sobre o GTK gcc.gnu.org www.gtk.org mingw.sourceforge.net • Sobre o Gnome www.gnome.org • Free Pascal www.freepascal.org © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  49. 49. # Referências • PHP • Fernando Lozano www.php.net www.lozano.eti.br pear.php.net • CinLug • Java-Gnome (J/GTK+) www.cin.ufpe.br/~cinlug/ java-gnome.sourceforge © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  50. 50. # Contato Site: http://www.jorgepereira.com.br/ E-mail: jorge@jorgepereira.com.br © 2007 Jorge Pereira http://www.jorgepereira.com.br/
  51. 51. Obrigado! ;) © 2007 Jorge Pereira http://www.jorgepereira.com.br/

×