Spring Mobile y Spring Android
-
Upload
daniel-jimenez -
Category
Technology
-
view
3.437 -
download
4
description
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