Your SlideShare is downloading. ×
0
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Spring Mobile y Spring Android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Spring Mobile y Spring Android

3,402

Published on

Ponencia del 18 de febrero de 2011 en el Spring I/O de Madrid sobre estas dos extensiones de Spring y de cómo nos facilitan las cosas a la hora de desarrollar para móviles.

Ponencia del 18 de febrero de 2011 en el Spring I/O de Madrid sobre estas dos extensiones de Spring y de cómo nos facilitan las cosas a la hora de desarrollar para móviles.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,402
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
49
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Spring Mobile y Spring Android Dani Jiménez @danibto
  • 2. Índice
    • Intro
    • 3. Server-side vs Client-side detection
    • 4. Spring Mobile
    • 5. Spring Android
  • 6. Renovarse o morir
  • 7. Necesidad de adaptarse
    • 1 de cada 4 móviles es un smartphone
    • 8. En 2011 se van a vender más móviles que ordenadores
    • 9. En 2013 el 40% del tráfico será desde el móvil
  • 10. ¿Por qué una versión móvil?
    • Tamaño de pantalla
    • 11. Puntero vs dedo
    • 12. Límites de conexión
  • 13.
      Server-side vs Client-side
  • 14. Server-side
    • Servidor mucho más rápido
    • 15. No perdemos el control
    • 16. Redirecciones de dominios
    • 17. Gestión de preferencias
  • 18. Spring Mobile
  • 19. Spring Mobile
    • Detección de dispositivos móviles
    • 20. Gestión de preferencias de usuario
    • 21. Site switcher
  • 22. Detección de dispositivo request currentDevice
  • 23. DeviceResolver
    • 3 formas de recuperar el dispositivo
  • 26. DeviceResolver
    • 3 formas de recuperar el dispositivo
    < interceptors > < beans:bean class = &quot;org.springframework.mobile.device. DeviceResolverHandlerInterceptor&quot; /> </ interceptors >
  • 29. DeviceResolver (II) @RequestMapping ( &quot;/&quot; ) public String home() { Device device = (Device) request.getAttribute( &quot;currentDevice&quot; ); if ( device.isMobile ()) { return &quot;home-mobile&quot; ; } else { return &quot;home&quot; ; } }
    • currentDevice
  • 30. DeviceResolver (III) @RequestMapping ( &quot;/&quot; ) public String home( HttpServletRequest request ) { Device device = DeviceUtils.getCurrentDevice(request ) ; if ( device.isMobile ()) { return &quot;home-mobile&quot; ; } else { return &quot;home&quot; ; } }
    • DeviceUtils
  • 31. DeviceResolver (IV) @RequestMapping ( &quot;/&quot; ) public String home(Device device ) { if ( device.isMobile ()) { return &quot;home-mobile&quot; ; } else { return &quot;home&quot; ; } }
    • Parámetro
    < annotation-driven > < argument-resolvers > < beans:bean class = &quot;org.springframework.mobile.device. DeviceWebArgumentResolver&quot; /> </ argument-resolvers > </ annotation-driven >
  • 32. DeviceResolver (V)
    • 2 implementaciones:
      • LiteDeviceResolver
      • 33. WurflDeviceResolver
  • 34. LiteDeviceResolver Sólo detecta si el dispositivo es móvil @RequestMapping ( &quot;/&quot; ) public String home(Device device) { if ( device.isMobile ()) { return &quot;home-mobile&quot; ; } else { return &quot;home&quot; ; } }
  • 35. LiteDeviceResolver (II) < interceptors > < beans:bean class = &quot;org.springframework.mobile.device. DeviceResolverHandlerInterceptor&quot; /> </ interceptors >
    • Default
  • 36. WurflDeviceResolver WURFL (Wireless Universal Resouce FiLe) “Xml que contiene características de gran número de dispositivos móviles” http://wurfl.sourceforge.net/
  • 37. WurflDeviceResolver (II)
    • Map de Capabilities:
      • resolution_width
  • 44. WurflDeviceResolver (III) < interceptors > < beans:bean class = &quot;org.springframework.mobile.device.DeviceResolverHandlerInterceptor&quot; > < beans:constructor-arg > < device:wurfl-device-resolver root-location = &quot;/WEB-INF/wurfl/wurfl-2.0.28.zip&quot; patch-locations = &quot;/WEB-INF/wurfl/web_browsers_patch.xml&quot; /> </ beans:constructor-arg > </ beans:bean > </ interceptors >
  • 45. PreferenceSiteHandler
    • Preferencias de usuario
    • 46. Versión normal o móvil
    • 47. Basado en cookies (default)
  • 48. PreferenceSiteHandler
    • 3 formas de recuperarlas
      • currentSitePreference
      • 49. SitePreferenceUtils
      • 50. Parámetro
  • 51. < a nnotation-driven > < argument-resolvers > < beans:bean class = &quot;org.springframework.mobile.device.site. SitePreferenceWebArgumentResolver&quot; /> </ argument-resolvers > </ annotation-driven > < interceptors > < beans:bean class = &quot;org.springframework.mobile.device.site. SitePreferenceHandlerInterceptor&quot; /> </ interceptors > PreferenceSiteHandler
  • 52. Site Switcher Cambia de dominio en función de dispositivo o preferencias de usuario
  • 54. Site Switcher < interceptors > < beans:bean class = &quot;org.springframework.mobile.device.switcher. SiteSwitcherHandlerInterceptor&quot; factory-method = &quot;mDot&quot; > < beans:constructor-arg value = &quot;testdomain.com&quot; /> </ beans:bean > </ interceptors >
  • 55. Simular dispositivos
    • User Agent Switcher (extensión firefox)
    • 56. http://chrispederick.com/work/user-agent-switcher/
    • 57. Lista de User Agents
    • 58. http://techpatterns.com/forums/about304.html
  • 59. Spring Mobile en el mundo real
    • Publicidad enfocada a dispositivo
    • 60. Avisos de aplicaciones nativas
    • 61. Adaptación a las distintas resoluciones
    • 62. Estadísticas
  • 63. Spring Mobile en el mundo real
    • Publicidad enfocada a dispositivo
    • 64. Avisos de aplicaciones nativas
    • 65. Adaptación a las distintas resoluciones
    • 66. Estadísticas
    • 67. Y por supuesto... la versión móvil
  • 68. Spring Android
  • 69. Spring Android Rest Template
    • Object to JSON Marshaling
      • Jackson JSON Processor
    • Object to XML Marshaling
      • Simple XML Serializer
    • RSS and Atom Support
      • Android ROME Feed Reader
  • 70. RestTemplate (getForObject) // Initiate the request and return the results String url = &quot;http://mypretendservice.com/events&quot; ; RestTemplate restTemplate = new RestTemplate(); Event[] events = restTemplate.getForObject(url, Event[]. class );
  • 71. RestTemplate (postForObject) Message message = new Message(); message.setId(555); message.setSubject( &quot;test subject&quot; ); message.setText( &quot;test text&quot; ); String url = &quot;http://mypretendservice.com/sendmessage&quot; ; RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.postForObject(url, message, String. class );
  • 72. Antes de terminar...
  • 73. we're hiring!
    • java seniors (Spring, Sugar CRM...)
    • 74. java juniors (muchas ganas)
    • 75. maquetadores web
    http://www.idealista.com/pagina/empleo [email_address] (subject: spring io)
  • 76. gracias ;)
      twitter @danibto
    • links:
      • Spring Mobile http://www.springsource.org/spring-mobile
      • 77. Spring Android http://www.springsource.org/spring-android
      • 78. WURFL http://wurfl.sourceforge.net/
      • 79. User Agent Switcher http://bit.ly/RuT7
      • 80. Lista de User Agents http://bit.ly/2iCzcN

×