SlideShare uma empresa Scribd logo
Aplicações para celular com Ruby e Rhomobilemarcelo@mindaslab.com
http://www.nytimes.com/2010/05/27/technology/27apple.html?src=me&ref=homepage
Aplicacoes para celular com Ruby
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
Aplicacoes para celular com Ruby
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.

Mais conteúdo relacionado

Semelhante a Aplicacoes para celular com Ruby (20)

PPTX
Ciclo de palestras da JFRJ - Aplicativos Móveis
Iasmin Cristina Oliveira da Silva
 
PPTX
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
javamanrj
 
ODP
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)
Marcio Sfalsin
 
PPT
Computacao Movel e Sem Fio
Douglas Frari
 
PDF
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Leonardo Melo Santos
 
PPTX
Ruby e Rails
Tsuharesu L
 
PPT
Plataformas Para Desenvolvimento Em Celulares
André Otero
 
PPTX
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Leonardo Soares
 
PPTX
Write once, run "everywhere"
Stefan Horochovec
 
PPT
Resumo Desenvolvimento Mobile
Cícero Moura
 
PDF
Desenvolvendo para Android com PhoneGap
Mayron Cachina
 
PDF
Esta começando a programar para a web? Então começe com Rails
ismaelstahelin
 
ODP
Introducao ao Ruby On Rails
Andre Ferraro
 
PDF
Seminário sistemas operacionais móveis
Arthur Azevedo
 
PDF
Desenvolvimento Mobile
Elton Minetto
 
ODP
Palestra Faculdade Lourenço Filho
rafarubert
 
PPT
Mobile Apps Cross-Platform
Adriel Café
 
KEY
Desenvolvimento Ágil com Rails GURUSC 2011
Andre Bernardes
 
PDF
Flash mobile
Campus Party Brasil
 
PDF
Ruby On Rails - Porque Utilizar?
David Ruiz
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Iasmin Cristina Oliveira da Silva
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
javamanrj
 
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)
Marcio Sfalsin
 
Computacao Movel e Sem Fio
Douglas Frari
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Leonardo Melo Santos
 
Ruby e Rails
Tsuharesu L
 
Plataformas Para Desenvolvimento Em Celulares
André Otero
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Leonardo Soares
 
Write once, run "everywhere"
Stefan Horochovec
 
Resumo Desenvolvimento Mobile
Cícero Moura
 
Desenvolvendo para Android com PhoneGap
Mayron Cachina
 
Esta começando a programar para a web? Então começe com Rails
ismaelstahelin
 
Introducao ao Ruby On Rails
Andre Ferraro
 
Seminário sistemas operacionais móveis
Arthur Azevedo
 
Desenvolvimento Mobile
Elton Minetto
 
Palestra Faculdade Lourenço Filho
rafarubert
 
Mobile Apps Cross-Platform
Adriel Café
 
Desenvolvimento Ágil com Rails GURUSC 2011
Andre Bernardes
 
Flash mobile
Campus Party Brasil
 
Ruby On Rails - Porque Utilizar?
David Ruiz
 

Último (8)

PDF
Apresentação sobre Funções Matemáticas e o módulo.pdf
Gabriel Vitor
 
PDF
SENAC Modelagem de Dados - Aula01 do curso de ADSpdf
JhonataLamim1
 
PDF
SENAC Modelagem de Dados - Aula02 curso de ADS.pdf
JhonataLamim1
 
PDF
Zeebo: Uma brevíssima introdução. - David Glotz
BluePanther6
 
PDF
IA - Grupo J.pdf para trabalho de inteligencia artificial
juanaraujo139815
 
PDF
Assistente de Suporte e Manutenção de Computadores.pdf
EudesAlvesPessoa
 
PPTX
NR-13.pptx treinamento sobre a norma regulamentadora
SimoniBorges1
 
PDF
Apresentação de Manipulação de strings em Python .pdf
Gabriel Vitor
 
Apresentação sobre Funções Matemáticas e o módulo.pdf
Gabriel Vitor
 
SENAC Modelagem de Dados - Aula01 do curso de ADSpdf
JhonataLamim1
 
SENAC Modelagem de Dados - Aula02 curso de ADS.pdf
JhonataLamim1
 
Zeebo: Uma brevíssima introdução. - David Glotz
BluePanther6
 
IA - Grupo J.pdf para trabalho de inteligencia artificial
juanaraujo139815
 
Assistente de Suporte e Manutenção de Computadores.pdf
EudesAlvesPessoa
 
NR-13.pptx treinamento sobre a norma regulamentadora
SimoniBorges1
 
Apresentação de Manipulação de strings em Python .pdf
Gabriel Vitor
 
Anúncio

Aplicacoes para celular com Ruby

Notas do Editor

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