SlideShare a Scribd company logo
1 of 63
+
            no
    Ruby

    Desktop




                 Marcelo Castellani

                 Ruby + Rails no mundo real 2009
+
    Ok, Rails
+
    Por incrível que pareça, o Ruby
    existe desde muito antes do Rails !!!!
    (acredite, é verdade, Rails é apenas uma aplicação escrita em Ruby)
+
    O que será apresentado nesta
    palestra?
        FXRuby
    

        GTK
    

        RubyCocoa
    

        Shoes
    
+
    The 2008 Ruby GUI Survey
    AlexFenton
+
    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.
+
    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.
+
    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.
+
    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.
+
    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.
+
    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
    
        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.
+
    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
+
    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 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).
+ 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.
+ GIMP = GnuImageManipulationProgram
+ 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/
+ 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 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) }
+ 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
+ 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-gtk

   http://www.webdotdev.com/nvd/content/view/1608/1/
+
    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 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.
+
    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/
    

        http://www.discretizer.org/
    

        http://fox-tool.rubyforge.org/
    
+
    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, 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.
+
    Para onde ir agora?

     http://www.fxruby.org/

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

     http://www.pragprog.com/titles/fxruby
+
    RubyCocoa e MacRuby
    Exclusivamente para usuários de Mac
+
    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).
+
    RubyCocoa versus MacRuby


    RubyCocoa




                               MacRuby
+
    O queprecisoparadesenvolverem
    Ruby parameu Mac?
        XCode
    

        Interface Builder
    

        Ruby
    
+
    XCode
+
    Interface Builder
+
    Novo projeto no XCode
+
    Para onde ir agora?

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

 http://www.rubycocoa.com/

 http://developer.apple.com/cocoa

 http://www.macruby.org/
+
    Shoes
    Shoesis for everyone
+
    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.
+
    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/press/
+
    Obrigado.
    marcelo@hypequino.com

More Related Content

Similar to Ruby No Desktop - Marcelo Castellani

Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes VazAplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
Tchelinux
 
Linux, distribuições e comandos
Linux, distribuições e comandosLinux, distribuições e comandos
Linux, distribuições e comandos
Virgínia
 
Criando aplicações com PHP-GTK
Criando aplicações com PHP-GTKCriando aplicações com PHP-GTK
Criando aplicações com PHP-GTK
Pablo Dall'Oglio
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
Reinaldo Lima
 

Similar to Ruby No Desktop - Marcelo Castellani (20)

Qt Apresentação
Qt ApresentaçãoQt Apresentação
Qt Apresentação
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e Moonlight
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes VazAplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
 
Linux, distribuições e comandos
Linux, distribuições e comandosLinux, distribuições e comandos
Linux, distribuições e comandos
 
Php Gtk
Php GtkPhp Gtk
Php Gtk
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
Criando aplicações com PHP-GTK
Criando aplicações com PHP-GTKCriando aplicações com PHP-GTK
Criando aplicações com PHP-GTK
 
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
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila Ayres
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
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...
 
Intro linux
Intro linuxIntro linux
Intro linux
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
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
 
Delphi6bd
Delphi6bdDelphi6bd
Delphi6bd
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 

Recently uploaded

Recently uploaded (8)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Ruby No Desktop - Marcelo Castellani

  • 1. + no Ruby Desktop Marcelo Castellani Ruby + Rails no mundo real 2009
  • 2. + Ok, Rails
  • 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. + O que será apresentado nesta palestra? FXRuby  GTK  RubyCocoa  Shoes 
  • 5. + The 2008 Ruby GUI Survey AlexFenton
  • 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. + 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. + 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. + 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. + 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. + Experiência em Ruby
  • 12. + Ruby + GUI?
  • 13. + O que procuram num toolkitRuby?
  • 14. + Qual seu toolkit preferido/em uso?
  • 15. + Qual seu toolkit preferido/em uso?
  • 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. + 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. + RubyGtk+ Especialmente para ambientes Gtk, como o Ubuntu, OpenSolaris e BSD.
  • 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. + 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. + GIMP = GnuImageManipulationProgram
  • 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. + Exemplo de código
  • 24. + Resultado da execução Uma janela Gtk
  • 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. + 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. + Resultado da execução Clique no botão
  • 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. + FXRuby Especialmente para ambiente Microsoft, nos Windows 2000, XP, Vista e 7
  • 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. + BeERP – Sistema ERP Comercial
  • 32. + BeERP – Sistema ERP Comercial
  • 33. + FreeRIDE – Free Ruby IDE
  • 34. + Discretizer – interactivemeshcreationtool
  • 35. + Fox GUI Builder
  • 36. + Links http://freeride.rubyforge.org/wiki/wiki.pl  http://www.attiksystem.ch/beerp/  http://www.discretizer.org/  http://fox-tool.rubyforge.org/ 
  • 37. + Hello World
  • 38. + Scribble
  • 39. + Scribble – botão
  • 40. + Scribble
  • 41. + Imagem e Canvas
  • 42. + FXTable
  • 43. + FxGL Poderosa API para a criação de aplicações OpenGL com Ruby. 
  • 44. + Hello OpenGL
  • 45. + Algo mais complexo
  • 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. + Para onde ir agora?  http://www.fxruby.org/  http://www.fox-toolkit.org/  http://www.pragprog.com/titles/fxruby
  • 48. + RubyCocoa e MacRuby Exclusivamente para usuários de Mac
  • 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. + RubyCocoa versus MacRuby RubyCocoa MacRuby
  • 51. + O queprecisoparadesenvolverem Ruby parameu Mac? XCode  Interface Builder  Ruby 
  • 52. + XCode
  • 53. + Interface Builder
  • 54. + Novo projeto no XCode
  • 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. + Shoes Shoesis for everyone
  • 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. + Shoesé simples
  • 59. + Shoesé inteligente
  • 60. + Shoesé poderoso
  • 61. + Shoesé multiplataforma
  • 62. + Para onde ir agora?  http://en.wikipedia.org/wiki/Shoes_(GUI_toolkit)  http://shoooes.net/  http://hackety.org/press/
  • 63. + Obrigado. marcelo@hypequino.com