Bowline é um framework GUI em Ruby que tem como objetivo possibilitar que o desenvolvedor construa uma aplicação desktop multi-plataforma utilizando Ruby, HTML e Javascript. A idéia central é fazer com que desenvolver uma aplicação desktop seja tão simples e divertida quanto construir um website em Rails.
O Bowline tem como base o Titanium, que é um SDK para desktop que provê acesso uma janela Webkit e diversas APIs. O fato do Titanium utilizar o Webkit faz com que sua aplicação possa utilizar funcionalidades do CSS3 e HTML5 (pense no adobe AIR, é bem parecido).
De forma resumida o Bowline provê:
- Uma forma de utilizar Ruby como HTML.
- Desenvolvimento MVC.
- Helper, Models, Generators, etc.
Em uma aplicação desktop você não tem o ciclo de request/response igual nos frameworks web. Então, para suprir esse problema, o Bowline introduziu o conceito de "binders" que podem atualizar as suas views quando uma classe Ruby ligada a ela é modificada (tem um pouco a ver com os controllers do Rails). O Bowline também inclui outras funcionalidade análogas com algumas outras partes do Rails como Generators, helpers e models.
As plataformas suportadas pelo Bowline atualmente são o OSX e o Linux, porém a compatibilidade com o Windows já está sendo feita. O Bowline é oferecido através da licença MIT e é desenvolvido por Alex MacCaw.
Para quem deseja começar a desenvolver utilizando esse framework pode dar uma olhada um cliente Twitter simples criado com o Bowline.