SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Aplicações para celular com Ruby e Rhomobile marcelo@mindaslab.com
http://www.nytimes.com/2010/05/27/technology/27apple.html?src=me&ref=homepage
Família Rhomobile http://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
Rhodes Possibilita 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.
Rhodes Possui 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 vantagens Writeonce, 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.9 Bibliotecas Rhodes Interpretador Ruby + Browser client Compilador XRuby Arquitetura Rhodes
Xruby Arquivos .rb Arquivos .class http://code.google.com/p/xruby/
Browser nativo Os 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
RhoSync Servidor 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/sources URL para  RhoSync
Criando models $ cdstoremanager $ rhogen model product brand,name,price,quantity,sku Generatingwithmodelgenerator:  	[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.rb Pastas diferentes  do Rails
Estrutura de pastas
Subset doRuby O 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 Ruby BasicObject, 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, ThreadError http://wiki.rhomobile.com//index.php?title=Rhodes
Rhomobile e AppStore As 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” Chave Primária
Facilidades do Rhom
Splash Screen ,[object Object]
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.,[object Object]
Páginas para tratamento de erros É possível definir duas páginas para exibir caso ocorram erros: app400.erb e app500.erb A 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.css index.erb default.android.css index.android.erb
Menu nativo
Menu específico por Controller
Items reservados
Toolbar
TabBar
Classe System
Uso de recursos do celular O 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
GPS Para 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 $ rhogenspec Generatingwithspecgenerator:  	[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 Rhodes Livre para aplicativos OpenSource. $ 1.000,00 para aplicações comerciais, sem royalts ou outros valores.

Weitere ähnliche Inhalte

Ähnlich wie Aplicacoes para celular com Ruby

Desenvolvimento Mobile com Ruby
Desenvolvimento Mobile com RubyDesenvolvimento Mobile com Ruby
Desenvolvimento Mobile com RubyRodrigo Martins
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework MobileIldyone Martins
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Leonardo Melo Santos
 
Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Webigorpimentel
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 
PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5Rafael Sakurai
 
PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5Rodrigo Cascarrolho
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHPAdler Medrado
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicFelipe Blini
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesWilliam S. Rodriguez
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaDiego Cavalca
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portaisFelipe Perin
 
Robot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a RobóticaRobot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a RobóticaFrancisco Soares Lima Filho
 
Aula Aula03 estrutura phone_gap
Aula Aula03 estrutura phone_gapAula Aula03 estrutura phone_gap
Aula Aula03 estrutura phone_gapRoberson Alves
 

Ähnlich wie Aplicacoes para celular com Ruby (20)

Rail road
Rail roadRail road
Rail road
 
Framework7
Framework7Framework7
Framework7
 
Desenvolvimento Mobile com Ruby
Desenvolvimento Mobile com RubyDesenvolvimento Mobile com Ruby
Desenvolvimento Mobile com Ruby
 
Introdução intel XDK
Introdução intel XDKIntrodução intel XDK
Introdução intel XDK
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework Mobile
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
 
Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Web
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
Phonegap 120118153629-phpapp01
Phonegap 120118153629-phpapp01Phonegap 120118153629-phpapp01
Phonegap 120118153629-phpapp01
 
PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5
 
Ruby and Rails
Ruby and RailsRuby and Rails
Ruby and Rails
 
PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHP
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec Cafelândia
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portais
 
Robot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a RobóticaRobot Operating System - Iniciação a Robótica
Robot Operating System - Iniciação a Robótica
 
Conheça a Plataforma Xamarin
Conheça a Plataforma XamarinConheça a Plataforma Xamarin
Conheça a Plataforma Xamarin
 
Aula Aula03 estrutura phone_gap
Aula Aula03 estrutura phone_gapAula Aula03 estrutura phone_gap
Aula Aula03 estrutura phone_gap
 

Aplicacoes para celular com Ruby

  • 1. Aplicações para celular com Ruby e Rhomobile marcelo@mindaslab.com
  • 3.
  • 8. Rhodes Possibilita 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.
  • 9. Rhodes Possui 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.
  • 10. Principais vantagens Writeonce, 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).
  • 11. Aplicação Ruby 1.9 Bibliotecas Rhodes Interpretador Ruby + Browser client Compilador XRuby Arquitetura Rhodes
  • 12. Xruby Arquivos .rb Arquivos .class http://code.google.com/p/xruby/
  • 13. Browser nativo Os 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
  • 14. RhoSync Servidor 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/
  • 16.
  • 19. RhoHub – CRUD básico
  • 20. Instalando o Rhodes $ sudogeminstallrhodes $ rhodes-setup
  • 21. Criando uma aplicação Rhodes $ rhogenappstoremanager http://localhost:3000/apps/store/sources URL para RhoSync
  • 22. Criando models $ cdstoremanager $ rhogen model product brand,name,price,quantity,sku Generatingwithmodelgenerator: [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.rb Pastas diferentes do Rails
  • 24. Subset doRuby O 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.
  • 25. Subset do Ruby BasicObject, 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, ThreadError http://wiki.rhomobile.com//index.php?title=Rhodes
  • 26. Rhomobile e AppStore As 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.
  • 27. 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.
  • 31.
  • 32. Deve chamar-se loading.html ou loading.png e estar em <application-root>/app/loading.html
  • 33. No caso de uma figura pode ser centralizada (center, vcenter, hcenter) ou redimensionada (zoom, vzoom, hzoom).
  • 34.
  • 35. Páginas para tratamento de erros É possível definir duas páginas para exibir caso ocorram erros: app400.erb e app500.erb A 400 é exibida caso ocorra uma exceção Rho::RecordNotFound. A 500 em todos os outros casos.
  • 36. Arquivos específicos por plataforma É possível definir um layout para cada plataforma na mesma aplicação. default.css index.erb default.android.css index.android.erb
  • 38. Menu específico por Controller
  • 43. Uso de recursos do celular O 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.
  • 45. GPS
  • 46. GPS Para realizar o acompanhamento da posição através do GPS o Rhodes usa AJAX. O BlackBerry não suporta AJAX.
  • 54. Mspec - Testes $ rhogenspec Generatingwithspecgenerator: [ADDED] app/SpecRunner [ADDED] app/mspec [ADDED] app/spec [ADDED] app/fileutils.rb [ADDED] app/mspec.rb [ADDED] app/spec_runner.rb
  • 55. Licença do Rhodes Livre para aplicativos OpenSource. $ 1.000,00 para aplicações comerciais, sem royalts ou outros valores.

Hinweis der Redaktion

  1. Apresentar-se
  2. Rhogenapp clientesMate clientesCd clientesRhogenmodel cliente nomeShift + command + +