0
+
            no
    Ruby

    Desktop




                 Marcelo Castellani

                 Ruby + Rails no mundo r...
+
    Ok, Rails
+
    Por incrível que pareça, o Ruby
    existe desde muito antes do Rails !!!!
    (acredite, é verdade, Rails é apenas ...
+
    O que será apresentado nesta
    palestra?
        FXRuby
    

        GTK
    

        RubyCocoa
    

       ...
+
    The 2008 Ruby GUI Survey
    AlexFenton
+
    The 2008 Ruby GUI Survey

        Pesquisa realizada por AlexFenton em 2008, com 399
    
        desenvolvedores d...
+
    The 2008 Ruby GUI Survey

        A interação é feita geralmente através do mouse, teclado ou
    
        disposit...
+
    Widgets

        Um widget é um componente de uma interface gráfica do
    

        utilizador (GUI), o que inclui...
+
    O que quer dizer widget?

        A primeira referência a essa palavra vêm da peça A
    
        BeggaronHorseback...
+
    Widgets e orientação a objetos

        Todo sistema baseado em interface gráfica do usuário usa
    

        widg...
+
    Experiência em Ruby
+
    Ruby + GUI?
+
    O que procuram num toolkitRuby?
+
    Qual seu toolkit preferido/em uso?
+
    Qual seu toolkit preferido/em uso?
+
    Conclusões sobre a pesquisa

        A escolha de um toolkit para desenvolvimento de aplicações
    
        deskto...
+
    Comparando os toolkits

Toolkit       URL                          Recomendado para quais
                          ...
+
    RubyGtk+
    Especialmente para ambientes Gtk, como o Ubuntu, OpenSolaris e
    BSD.
+ O que é GTK?


     GTK+ é um toolkit multi-plataforma para a criação de interfaces
 

     gráficas. Ele foi desenvolv...
+ Aparência e ambientes


     O toolkit é configurável pelo usuário e oferece muitas opções de
 

     engines. Há engin...
+ GIMP = GnuImageManipulationProgram
+ Gtk + Ruby


     Para usar o Gtk no Ruby basta usar o pacote GTK, disponível junto
 

     a maior parte das distribui...
+ Exemplo de código
+ Resultado da execução




                      Uma janela Gtk
+ Tratando os sinais – parte 1
 # inclui suporte a Gtk no projeto
 require 'gtk2'

 # evento de exclusão de widgets
 def d...
+ Tratando os sinais – parte 2
 # cria uma caixa para ordenar nossos objetos
 box = Gtk::VBox.new(false, 0)
 janela.add(bo...
+ Resultado da execução




                          Clique no botão
+ Pra onde ir agora?


   http://ruby-gnome.sourceforge.net/tutorial/

   http://ruby-gnome2.sourceforge.jp/hiki.cgi?tut...
+
    FXRuby
    Especialmente para ambiente Microsoft, nos Windows
    2000, XP, Vista e 7
+
    O que é o FXRuby

        FXRuby é uma GEM que incorpora o toolkit multiplataforma
    
        Fox, usado para o d...
+
    BeERP – Sistema ERP
    Comercial
+
    BeERP – Sistema ERP
    Comercial
+
    FreeRIDE – Free Ruby IDE
+ Discretizer –
 interactivemeshcreationtool
+
    Fox GUI Builder
+
    Links

        http://freeride.rubyforge.org/wiki/wiki.pl
    

        http://www.attiksystem.ch/beerp/
    

   ...
+
    Hello World
+
    Scribble
+
    Scribble – botão
+
    Scribble
+
    Imagem e Canvas
+
    FXTable
+
    FxGL

        Poderosa API para a criação de aplicações OpenGL com Ruby.
    
+
    Hello OpenGL
+
    Algo mais complexo
+
    rubyscript2exe.rb

        Script para criar “executáveis” para Win32 a partir de scripts Ruby.
    

        Ele, ...
+
    Para onde ir agora?

     http://www.fxruby.org/

     http://www.fox-toolkit.org/

     http://www.pragprog.com/...
+
    RubyCocoa e MacRuby
    Exclusivamente para usuários de Mac
+
    O queé Cocoa,
    RubyCocoaeMacRuby?
        Cocoa é o toolkit para o desenvolvimento de aplicações GUI
    
      ...
+
    RubyCocoa versus MacRuby


    RubyCocoa




                               MacRuby
+
    O queprecisoparadesenvolverem
    Ruby parameu Mac?
        XCode
    

        Interface Builder
    

        Ru...
+
    XCode
+
    Interface Builder
+
    Novo projeto no XCode
+
    Para onde ir agora?

 http://www.pragprog.com/titles/bmrc/rubycocoa

 http://www.rubycocoa.com/

 http://develope...
+
    Shoes
    Shoesis for everyone
+
    O queéo Shoes?

        É uma biblioteca gráfica criada pelo __why, theluckystiff, uma
    
        das personalida...
+
    Shoesé simples
+
    Shoesé inteligente
+
    Shoesé poderoso
+
    Shoesé multiplataforma
+
    Para onde ir agora?

 http://en.wikipedia.org/wiki/Shoes_(GUI_toolkit)

 http://shoooes.net/

 http://hackety.org...
+
    Obrigado.
    marcelo@hypequino.com
Upcoming SlideShare
Loading in...5
×

Ruby No Desktop - Marcelo Castellani

4,219

Published on

Apresentação do Marcelo Castallani feita no evento Ruby + Rails no Mundo Real

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

No Downloads
Views
Total Views
4,219
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
51
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Ruby No Desktop - Marcelo Castellani"

  1. 1. + no Ruby Desktop Marcelo Castellani Ruby + Rails no mundo real 2009
  2. 2. + Ok, Rails
  3. 3. + Por incrível que pareça, o Ruby existe desde muito antes do Rails !!!! (acredite, é verdade, Rails é apenas uma aplicação escrita em Ruby)
  4. 4. + O que será apresentado nesta palestra? FXRuby  GTK  RubyCocoa  Shoes 
  5. 5. + The 2008 Ruby GUI Survey AlexFenton
  6. 6. + The 2008 Ruby GUI Survey Pesquisa realizada por AlexFenton em 2008, com 399  desenvolvedores de todo o mundo. O objetivo foi identificar o melhor, o mais simples e o mais  usado toolkit para o desenvolvimento de aplicações GUI.  Interface gráfica do usuário (GUI) é um tipo de interface do  usuário que permite a interação com dispositivos digitais através de elementos gráficos como ícones e outros indicadores visuais, em contraste a interface de linha de comando.
  7. 7. + The 2008 Ruby GUI Survey A interação é feita geralmente através do mouse, teclado ou  dispositivos especiais (como touchscreen), com os quais o usuário é capaz de selecionar símbolos e manipulá-los de forma a obter algum resultado prático. Esses símbolos são designados de widgetse são agrupados  em toolkits.
  8. 8. + Widgets Um widget é um componente de uma interface gráfica do  utilizador (GUI), o que inclui janelas, botões, menus, ícones, barras de rolagem, etc.. Alguns widgets tem por objetivo receber dados do usuário e  com isso gerar algum tipo de registro, como os controles de formulário. Componentes como entrada de texto, caixa de seleção,  menu de seleção, botões de múltipla escolha e outros são capazes de definir a natureza dos dados a serem coletados, e dessa forma enumerar todas as possibilidades de dados a serem apresentados pelo usuário.
  9. 9. + O que quer dizer widget? A primeira referência a essa palavra vêm da peça A  BeggaronHorseback (1924), escrita por George S. Kaufman e Marc Connelly, onde o termo representava objetos inanimados com um valor puramente mercantil e sem nenhuma ligação espiritual ou artística.
  10. 10. + Widgets e orientação a objetos Todo sistema baseado em interface gráfica do usuário usa  widgets. Widgets são um dos mais perfeitos exemplos de orientação a  objetos pois cada um existe isolado e pode ser aproveitado dentro de um contexto maior, interagindo com outros, mas nunca deixando de ser único → um botão é sempre um botão, por exemplo.
  11. 11. + Experiência em Ruby
  12. 12. + Ruby + GUI?
  13. 13. + O que procuram num toolkitRuby?
  14. 14. + Qual seu toolkit preferido/em uso?
  15. 15. + Qual seu toolkit preferido/em uso?
  16. 16. + Conclusões sobre a pesquisa A escolha de um toolkit para desenvolvimento de aplicações  desktop usando Ruby passa primeiro pela facilidade de distribuição e depois pela disponibilidade de documentação. Hoje existe uma fragmentação muito grande, sendo o Shoes o  toolkit mais usado, porém com uma proporção de menos de um para cada quatro desenvolvedores. O primeiro toolkit para desenvolvimento de aplicações desktop  em Ruby, o TK, está caindo rapidamente em desuso.
  17. 17. + Comparando os toolkits Toolkit URL Recomendado para quais plataformas?  GTK+ http://ruby- Ambientes baseados em gnome2.sourceforge.jp/ Gnome/GTK (Ubuntu e OpenSolaris, por exemplo).  FXRuby http://www.fxruby.org/ Windows 2000, XP, Vista e 7  RubyCocoa / http://www.rubycocoa.com/ Mac OS X MacRuby  Shoes http://shoooes.net/ Windows 2000, XP, Vista, 7, Linux diversos e Mac OS
  18. 18. + RubyGtk+ Especialmente para ambientes Gtk, como o Ubuntu, OpenSolaris e BSD.
  19. 19. + O que é GTK? GTK+ é um toolkit multi-plataforma para a criação de interfaces  gráficas. Ele foi desenvolvido para o GIMP. Por isso foi batizado de GIMP toolkit, com abreviação GTK+. O GTK+ é muito popular, sendo usado em um grande número de  aplicações e no ambiente de desktop GNOME (que por sua vez também é muito popular). GTK+ é escrito em C e seu design é orientado a objeto. Existem  bindings para construção de programas GTK+ em C, C++, Pascal, Perl, Java, Python, Ruby e PHP (PHP-GTK).
  20. 20. + Aparência e ambientes O toolkit é configurável pelo usuário e oferece muitas opções de  engines. Há engines emulando a aparência de outros populares toolkits ou plataformas como Windows 95, Qt, ou NEXTSTEP. O ambiente GNOME usa GTK+ como base do seu sistema e  muitos programas para GNOME usam GTK+ como seu Toolkit. Em dispositvos móveis, o GTK+ é usado como base de ambientes  como o GPE Palmtop e o Maemo. GTK+ também pode ser usado no Microsoft Windows e outros  menos usuais como framebuffer e ncurses. Apesar de ser preferencialmente usado no GNOME, os programas  GTK+ geralmente rodam sem problemas em outros ambientes como KDE, Xfce ou FluxBox.
  21. 21. + GIMP = GnuImageManipulationProgram
  22. 22. + Gtk + Ruby Para usar o Gtk no Ruby basta usar o pacote GTK, disponível junto  a maior parte das distribuições Ruby. Caso esteja desenvolvendo para ambiente Windows é importante  instalar as bibliotecas do GTK, para que sua aplicação efetivamente funcione. Para instalar as bibliotecas do Ruby e GTK no ambiente Windows  visite o link abaixo, para mais informações: http://ruby-gnome2.sourceforge.jp/
  23. 23. + Exemplo de código
  24. 24. + Resultado da execução Uma janela Gtk
  25. 25. + Tratando os sinais – parte 1 # inclui suporte a Gtk no projeto require 'gtk2' # evento de exclusão de widgets def delete_event(widget) return false end # fim do programa def destroy(widget) Gtk.main_quit end # inicia o engine do Gtk Gtk.init # cria uma nova janela janela = Gtk::Window.new(Gtk::Window::TOPLEVEL) janela.set_default_size(400, 300) janela.title= quot;Alô, mundo => GTK + Rubyquot; janela.signal_connect(quot;delete_eventquot;) { delete_event(janela) } janela.signal_connect(quot;destroyquot;) { destroy(janela) }
  26. 26. + Tratando os sinais – parte 2 # cria uma caixa para ordenar nossos objetos box = Gtk::VBox.new(false, 0) janela.add(box) # cria um botão e um label botao = Gtk::Button.new(quot;Saudaçãoquot;) rotulo = Gtk::Label.new(quot;quot;) # adiciono o evento ao botão botao.signal_connect(quot;clickedquot;) { rotulo.label = quot;Olá, mundoquot; } # mostra os componentes e a janela box.pack_start(botao, true, true, 5) box.pack_start(rotulo, true, true, 5) botao.show rotulo.show box.show janela.show # passa o controle pro Gtk Gtk.main
  27. 27. + Resultado da execução Clique no botão
  28. 28. + Pra onde ir agora?  http://ruby-gnome.sourceforge.net/tutorial/  http://ruby-gnome2.sourceforge.jp/hiki.cgi?tut-gtk  http://www.webdotdev.com/nvd/content/view/1608/1/
  29. 29. + FXRuby Especialmente para ambiente Microsoft, nos Windows 2000, XP, Vista e 7
  30. 30. + O que é o FXRuby FXRuby é uma GEM que incorpora o toolkit multiplataforma  Fox, usado para o desenvolvimento de aplicações GUI em C e C++. Existem ports do Fox para outras linguagens, como o FxPy  (Python) e o EiffelFox (para Eiffel). O Fox é um toolkit extremamente poderoso e flexível, que  permite a construção de interfaces poderosas. Existem aplicativos complexos inteiros feitos em Ruby e FXRuby dado seu poder.
  31. 31. + BeERP – Sistema ERP Comercial
  32. 32. + BeERP – Sistema ERP Comercial
  33. 33. + FreeRIDE – Free Ruby IDE
  34. 34. + Discretizer – interactivemeshcreationtool
  35. 35. + Fox GUI Builder
  36. 36. + Links http://freeride.rubyforge.org/wiki/wiki.pl  http://www.attiksystem.ch/beerp/  http://www.discretizer.org/  http://fox-tool.rubyforge.org/ 
  37. 37. + Hello World
  38. 38. + Scribble
  39. 39. + Scribble – botão
  40. 40. + Scribble
  41. 41. + Imagem e Canvas
  42. 42. + FXTable
  43. 43. + FxGL Poderosa API para a criação de aplicações OpenGL com Ruby. 
  44. 44. + Hello OpenGL
  45. 45. + Algo mais complexo
  46. 46. + rubyscript2exe.rb Script para criar “executáveis” para Win32 a partir de scripts Ruby.  Ele, na verdade, cria um arquivo .exe que possui a Máquina Virtual  do Ruby, as bibliotecas necessárias para execução e também o script. Integra-se perfeitamente ao FXRuby, de maneira que é possível  distribuir facilmente uma aplicação inteira. Um inconveniente é que os executáveis gerados ficam enormes.  Um script de 5KB, após ser processado, chega a 4MB.
  47. 47. + Para onde ir agora?  http://www.fxruby.org/  http://www.fox-toolkit.org/  http://www.pragprog.com/titles/fxruby
  48. 48. + RubyCocoa e MacRuby Exclusivamente para usuários de Mac
  49. 49. + O queé Cocoa, RubyCocoaeMacRuby? Cocoa é o toolkit para o desenvolvimento de aplicações GUI  para o Mac OS X, usando Objective-C e o X-Code. RubyCocoa é um port para o uso da linguagem Ruby para o  desenvolvimento de aplicações para Mac OS X. MacRuby é a evolução do RubyCocoa e que será lançado em  breve (em 2009, acredito).
  50. 50. + RubyCocoa versus MacRuby RubyCocoa MacRuby
  51. 51. + O queprecisoparadesenvolverem Ruby parameu Mac? XCode  Interface Builder  Ruby 
  52. 52. + XCode
  53. 53. + Interface Builder
  54. 54. + Novo projeto no XCode
  55. 55. + Para onde ir agora?  http://www.pragprog.com/titles/bmrc/rubycocoa  http://www.rubycocoa.com/  http://developer.apple.com/cocoa  http://www.macruby.org/
  56. 56. + Shoes Shoesis for everyone
  57. 57. + O queéo Shoes? É uma biblioteca gráfica criada pelo __why, theluckystiff, uma  das personalidades mais conhecidas do universo Ruby, principalmente pelo seu excelente guia de Ruby e pelo TryRuby.
  58. 58. + Shoesé simples
  59. 59. + Shoesé inteligente
  60. 60. + Shoesé poderoso
  61. 61. + Shoesé multiplataforma
  62. 62. + Para onde ir agora?  http://en.wikipedia.org/wiki/Shoes_(GUI_toolkit)  http://shoooes.net/  http://hackety.org/press/
  63. 63. + Obrigado. marcelo@hypequino.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×