Spring Mobile y Spring Android

download Spring Mobile y Spring Android

If you can't read please download the document

description

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.

Transcript of Spring Mobile y Spring Android

  • 1. Spring Mobile y Spring Android Dani Jimnez @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 mviles es un smartphone

8. En 2011 se van a vender ms mviles que ordenadores 9. En 2013 el 40% del trfico ser desde el mvil 10. Por qu una versin mvil?

  • Tamao de pantalla

11. Puntero vs dedo 12. Lmites de conexin 13.

  • Server-side vsClient-side

14. Server-side

  • Servidor mucho ms rpido

15. No perdemos el control 16. Redirecciones de dominios 17. Gestin de preferencias 18. Spring Mobile 19. Spring Mobile

  • Deteccin de dispositivos mviles

20. Gestin de preferencias de usuario 21. Site switcher 22. Deteccin de dispositivo request currentDevice 23. DeviceResolver

  • 3 formas de recuperar el dispositivo
  • currentDevice

24. DeviceUtils 25. Parmetro 26. DeviceResolver

  • 3 formas de recuperar el dispositivo
  • currentDevice

27. DeviceUtils 28. Parmetro< interceptors > < beans:bean class = "org.springframework.mobile.device. DeviceResolverHandlerInterceptor" /> interceptors > 29. DeviceResolver (II) @RequestMapping ( "/" ) publicString home() { Devicedevice = (Device) request.getAttribute( "currentDevice" ); if( device.isMobile ()) { return "home-mobile" ; }else{ return "home" ; } }

  • currentDevice

30. DeviceResolver (III) @RequestMapping ( "/" ) publicString home( HttpServletRequest request ) { Devicedevice =DeviceUtils.getCurrentDevice(request ) ; if( device.isMobile ()) { return "home-mobile" ; }else{ return "home" ; } }

  • DeviceUtils

31. DeviceResolver (IV) @RequestMapping ( "/" ) publicString home(Devicedevice ) { if( device.isMobile ()) { return "home-mobile" ; }else{ return "home" ; } }

  • Parmetro

< annotation-driven > < argument-resolvers > < beans:bean class = "org.springframework.mobile.device. DeviceWebArgumentResolver" /> argument-resolvers > annotation-driven > 32. DeviceResolver (V)

  • 2 implementaciones:
  • LiteDeviceResolver

33. WurflDeviceResolver 34. LiteDeviceResolver Slo detecta si el dispositivo es mvil @RequestMapping ( "/" ) publicString home(Device device) { if( device.isMobile ()) { return "home-mobile" ; }else{ return "home" ; } } 35. LiteDeviceResolver (II) < interceptors > < beans:bean class = "org.springframework.mobile.device. DeviceResolverHandlerInterceptor"/> interceptors >

  • Default

36. WurflDeviceResolver WURFL (Wireless Universal Resouce FiLe) Xml que contiene caractersticas de gran nmero de dispositivos mviles http://wurfl.sourceforge.net/ 37. WurflDeviceResolver (II)

  • Map de Capabilities:
  • model_name

38. brand_name 39. resolution_height

    • resolution_width
    • pointing_method
  • 40. is_tablet

41. device_os 42. deviceo_os_version 43. ..... 44. WurflDeviceResolver (III) < interceptors > < beans:bean class = "org.springframework.mobile.device.DeviceResolverHandlerInterceptor" > < beans:constructor-arg > < device:wurfl-device-resolver root-location = "/WEB-INF/wurfl/wurfl-2.0.28.zip" patch-locations = "/WEB-INF/wurfl/web_browsers_patch.xml" /> beans:constructor-arg > beans:bean > interceptors > 45. PreferenceSiteHandler

  • Preferencias de usuario

46. Versin normal o mvil 47. Basado en cookies (default) 48. PreferenceSiteHandler

  • 3 formas de recuperarlas
  • currentSitePreference

49. SitePreferenceUtils 50. Parmetro 51. < a nnotation-driven > < argument-resolvers > < beans:bean class = "org.springframework.mobile.device.site. SitePreferenceWebArgumentResolver"/> argument-resolvers > annotation-driven > < interceptors > < beans:bean class = "org.springframework.mobile.device.site. SitePreferenceHandlerInterceptor" /> interceptors > PreferenceSiteHandler 52. Site Switcher Cambia de dominio en funcin de dispositivo o preferencias de usuario

  • mDot

53. dotMobi 54. Site Switcher < interceptors > < beans:bean class = "org.springframework.mobile.device.switcher. SiteSwitcherHandlerInterceptor" factory-method = "mDot" > < beans:constructor-arg value = "testdomain.com" /> beans:bean > interceptors > 55. Simular dispositivos

  • User Agent Switcher (extensin 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. Adaptacin a las distintas resoluciones 62. Estadsticas 63. Spring Mobile en el mundo real

  • Publicidad enfocada a dispositivo

64. Avisos de aplicaciones nativas 65. Adaptacin a las distintas resoluciones 66. Estadsticas 67. Y por supuesto... la versin mvil 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 ="http://mypretendservice.com/events" ; RestTemplate restTemplate =newRestTemplate(); Event[] events = restTemplate.getForObject(url, Event[]. class ); 71. RestTemplate (postForObject) Message message =newMessage(); message.setId(555); message.setSubject( "test subject" ); message.setText( "test text" ); String url ="http://mypretendservice.com/sendmessage" ; RestTemplate restTemplate =newRestTemplate(); 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 Mobilehttp://www.springsource.org/spring-mobile

77. Spring Androidhttp://www.springsource.org/spring-android 78. WURFLhttp://wurfl.sourceforge.net/ 79. User Agent Switcherhttp://bit.ly/RuT7 80. Lista de User Agentshttp://bit.ly/2iCzcN