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.
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.
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/
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
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.
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).
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/
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.