Aplicações para celular com Ruby e Rhomobilemarcelo@mindaslab.com
http://www.nytimes.com/2010/05/27/technology/27apple.html?src=me&ref=homepage
Família Rhomobilehttp://rhomobile.com/
Plataformas suportadas
http://arstechnica.com/gadgets/news/2010/05/mobile-market-up-smartphones-up-iphone-and-android-way-up-1.ars
http://arstechnica.com/apple/news/2010/03/iphone-os-still-dominates-mobile-web-android-on-the-way-up.ars
RhodesPossibilita a criação de uma aplicação para celular usando a linguagem Ruby e uma estrutura semelhante ao Rails.Permite que a mesma aplicação seja executada em plataforma Symbian, Windows Mobile, Android, iPhone e BlackBerry.Possibilita o uso de HTML, CSS e JavaScript para criação de interfaces poderosas.
RhodesPossui uma extensa API que dá suporte aos principais recursos dos smartphones atuais, como GPS, agenda de contatos, acelerômetro, biblioteca de mídias e câmera.É software livre e open source, e segue a licença MIT. Possui uma versão comercial para empresas que desejem manter seu código fonte fechado.
Principais vantagensWriteonce, runeverywhere (de verdade).Produtividade (Ruby é mais produtivo do que C, C++ e Java).Abstração do hardware (não é necessário preocupar-se com particularidades de cada celular, basta usar a API do Rhodes).
Aplicação Ruby 1.9Bibliotecas RhodesInterpretador Ruby + Browser clientCompilador XRubyArquitetura Rhodes
XrubyArquivos .rbArquivos .classhttp://code.google.com/p/xruby/
Browser nativoOs browsers nativos das plataformas possuem diferenças sutis entre si, de forma que uma aplicação para iPhone funciona praticamente da mesma maneira no Android e no Symbian. O BlackBerry porém possui um browser totalmente diferente, e para trabalhar com ele é recomendável ler o guia:http://docs.blackberry.com/en/developers/deliverables/1143/browser_devguide.pdf
RhoSyncServidor que possibilita a sincronização de um aplicativo Rhodes e um aplicativo servidor.Possibilita integração da aplicação Rhodes com aplicativos como o SAP e o Siebel, e bases de dados diversas como Oracle e MySQL.http://rhomobile.com/products/rhosync/
Arquitetura Rhodes e RhoSync
RhoHub
RhoHub
RhoHub – CRUD básico
Instalando o Rhodes$ sudogeminstallrhodes$ rhodes-setup
Criando uma aplicação Rhodes$ rhogenappstoremanager http://localhost:3000/apps/store/sourcesURL para RhoSync
Criando models$ cdstoremanager$ rhogen model product brand,name,price,quantity,skuGeneratingwithmodelgenerator: 	[ADDED] app/Product/config.rb	[ADDED] app/Product/index.erb	[ADDED] app/Product/edit.erb	[ADDED] app/Product/new.erb	[ADDED] app/Product/show.erb	[ADDED] app/Product/product_controller.rbPastas diferentes do Rails
Estrutura de pastas
Subset doRubyO interpretador Ruby do Rhodes é um subset do Ruby 1.9, ou seja, alguns recursos não são suportados.Metaprogramação e recursos como eval() não são suportados.Baixar código para execução “onthefly” também não é possível.
Subset do RubyBasicObject, Object, Module, Class, Integer, Float, Numeric, Bignum, Rational, Complex, Math, String, StringScanner, StringIO, Array, Hash, Struct, Regexp, RegexpError, MatchData, Data, NilClass, TrueClass, FalseClass, Comparable, Enumerable, Enumerator, Converter, Marshal, IO, Dir, Time, Date, Signal, Mutex, Thread, ThreadGroup, Process, Fiber, FiberError, Method, UnboundMethod, Binding, RubyVM, GC, Exception, SystemExit, fatal, SignalException, Interrupt, StandardError, TypeError, ArgumentError, IndexError, KeyError, RangeError, ScriptError, SyntaxError, LoadError, NotImplementedError, NameError, NoMethodError, RuntimeError, SecurityError, NoMemoryError, EncodingError, CompatibilityError, SystemCallError, Errno, ZeroDivisionError, FloatDomainError, IOError, EOFError, ThreadErrorhttp://wiki.rhomobile.com//index.php?title=Rhodes
Rhomobile e AppStoreAs regras para desenvolvimento de aplicações para iPhone não proibem o uso de linguagens interpretadas.Não é possível, porém, utilizar o interpretador Ruby do iPhone para executar código Ruby que venha de outros lugares que não a AppStore.
Banco de dados e RhomÉ um mini “objectmapper” disponível no Rhodes.Pode trabalhar integrado ao RhoSync ou independente, como um banco de dados local.
Criação de um model
Coluna “object”ChavePrimária
Facilidades do Rhom
Splash ScreenÚtil para iniciar o sistema.
Deve chamar-se loading.html ou loading.png e estar em <application-root>/app/loading.html
No caso de uma figura pode ser centralizada (center, vcenter, hcenter) ou redimensionada (zoom, vzoom, hzoom).
É exibida por n segundos, definido por delay.Splash Screen
Páginas para tratamento de errosÉ possível definir duas páginas para exibir caso ocorram erros: app\E400.erb e app\E500.erbA 400 é exibida caso ocorra uma exceção Rho::RecordNotFound.A 500 em todos os outros casos.
Arquivos específicos por plataformaÉ possível definir um layout para cada plataforma na mesma aplicação.default.cssindex.erbdefault.android.cssindex.android.erb
Menu nativo
Menu específico por Controller
Items reservados
Toolbar
TabBar
Classe System
Uso de recursos do celularO Rhodes possui uma API unificada para acesso aos principais recursos dos celulares, como câmera, sons e GPS.Essa API possibilita que o acesso ao hardware seja feito da mesma forma para qualquer dispositivo desde que o mesmo esteja presente.
Recursos, versões e sistemas
GPS
GPSPara realizar o acompanhamento da posição através do GPS o Rhodes usa AJAX.O BlackBerry não suporta AJAX.
Agenda de contatos
Camera
Ringtones
Alertas
Sistema de arquivos
Localization
RhoSync
Mspec - Testes$ rhogenspecGeneratingwithspecgenerator: 	[ADDED] app/SpecRunner	[ADDED] app/mspec	[ADDED] app/spec	[ADDED] app/fileutils.rb	[ADDED] app/mspec.rb	[ADDED] app/spec_runner.rb
Licença do RhodesLivre para aplicativos OpenSource.$ 1.000,00 para aplicações comerciais, sem royalts ou outros valores.

Aplicacoes para celular com Ruby

Notas do Editor

  • #2 Apresentar-se
  • #22 Rhogenapp clientesMate clientesCd clientesRhogenmodel cliente nomeShift + command + +