Google

2,558 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,558
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Google

  1. 1. Google Developer Day 2008 Ponce Medellín Ismael Rafael Octubre 03 2008
  2. 2. <ul><li>Introducción. </li></ul><ul><li>El cliente, la conectividad y la nube. </li></ul><ul><li>AJAX. </li></ul><ul><li>Las APIs de Google. </li></ul>
  3. 3. Trabaja en problemas grandes e importantes
  4. 4. Los más importantes
  5. 5. iGoogle
  6. 6. Gadgets
  7. 7. La solución más simple es probablemente la mejor
  8. 9. Evolución, no inspiración divina
  9. 11. Entender a los usuarios mejor de lo que ellos se entienden a sí mismos
  10. 12. “ Si le hubiera preguntado a la gente lo que querían, me hubieran dicho caballos más rápidos” -Henry Ford
  11. 13. “ Si no escuchas a tus clientes, alguien más lo hará” -Sam Walton
  12. 14. <ul><li>¡¡Fenómenos mediáticos sociales!! </li></ul><ul><li>Nuevas maneras de llegar a una gran cantidad de usuarios. </li></ul><ul><ul><li>Economía: Long Tail </li></ul></ul><ul><ul><li>Sociedad </li></ul></ul><ul><ul><ul><li>Where the hell is Matt? </li></ul></ul></ul>
  13. 15. Retroalimentación instantánea = Menor curva de aprendizaje
  14. 16. Haz locuras (retos)
  15. 17. Google Health
  16. 18. Google Book Search
  17. 19. La imaginación es un músculo – ¡ejercítalo!
  18. 21. Misión Organizar la información del mundo y hacerla universalmente accesible y utilizable
  19. 22. El Cliente, la Conectividad y la Nube
  20. 26. Mantener una conectividad pervasiva Hacer la nube más accesible Hacer al cliente más poderoso
  21. 27. ¿Qué? ¿Por qué? ¿Cómo? <ul><li>1. Hacer la nube más accesible . </li></ul><ul><li>2. Mantener una conectividad pervasiva . </li></ul><ul><li>3. Hacer al cliente más poderoso . </li></ul>
  22. 28. ¿Qué? ¿Por qué? ¿Cómo? <ul><li>“ La industria se va a desarrollar como una industria de compañías; no cómo una industria de monopolio… así, la cultura de Google es una sobre concensos”. </li></ul><ul><li>Eric Shmitdt </li></ul>
  23. 29. ¿Qué? ¿Por qué? ¿Cómo?
  24. 31. Gears <ul><li>Extendiendo el navegador para Web Apps más ricas. </li></ul><ul><li>Servidor local: acceso offline. </li></ul><ul><li>Base de datos: relacional local. </li></ul><ul><li>WorkerPool: hilos asíncronos. </li></ul>
  25. 32. Gears <ul><li>Manejo de estándares y Open Source </li></ul>
  26. 35. Android <ul><li>Plataforma para aplicaciones OpenSource móviles. </li></ul><ul><li>Sentar la base para funcionalidad móvil. </li></ul>
  27. 37. Google App Engine <ul><li>Correr Web Apps sobre la infraestructura de Google </li></ul><ul><li>Un entorno de aplicación completamente integrado. </li></ul><ul><li>Python Runtime. </li></ul><ul><li>Cuota gratis de 5M de páginas visitadas al mes. </li></ul>
  28. 38. Google App Engine <ul><li>Retos técnicos </li></ul>
  29. 39. Google App Engine <ul><li>Retos financieros </li></ul>
  30. 40. Google App Engine <ul><li>Retos administrativos </li></ul>
  31. 41. Google App Engine <ul><li>Fácil de empezar, fácil de escalar </li></ul>
  32. 42. Desarrolla localmente. Despliega a Google. Lánzalo.
  33. 43. Desarrolla localmente. Despliega a Google. Lánzalo.
  34. 44. Desarrolla localmente. Despliega a Google. Lánzalo.
  35. 46. Google App Engine <ul><li>Áreas de trabajo, incluyendo… </li></ul><ul><li>Procesamiento offline. </li></ul><ul><li>Soporte para medios enriquecidos (ej. UL/DL de archivos grandes). </li></ul>dos nuevas APIs <ul><li>Memcache. </li></ul><ul><li>Manipulación de imágenes. </li></ul>
  36. 47. Google App Engine Cuota gratis y precios estimados
  37. 48. Google App Engine
  38. 50. Google Data APIs Acceso lectura/escritura a los servicios de Google
  39. 51. APIs y controles AJAX Vierte la Web sobre tus aplicaciones
  40. 53. Google Web Toolkit Desarrollo Java, desarrollo JavaScript
  41. 54. Google Web Toolkit Desarrolla con <pon tú IDE Java favorito>
  42. 60. OpenSocial <ul><li>Haciendo la Web más social </li></ul><ul><li>Una familia de APIs. </li></ul><ul><li>Una implementación referenciada. </li></ul><ul><li>Una comunidad de desarrolladores, contenedores y apps. </li></ul>
  43. 61. OpenSocial <ul><li>Una familia de APIs </li></ul>
  44. 62. OpenSocial <ul><li>Una implementación de referencia </li></ul>
  45. 63. OpenSocial <ul><li>Una comunidad </li></ul>
  46. 65. OpenSocial <ul><li>Los números – noviembre 2007 </li></ul>
  47. 66. OpenSocial <ul><li>Los números – mayo 2008 </li></ul>
  48. 67. OpenSocial <ul><li>Estatus de los contenedores </li></ul>
  49. 68. Google Friend Connect <ul><li>Trayendo amigos desde cualquier sitio Web </li></ul><ul><li>Construido sobre estándares abiertos. </li></ul><ul><li>Funcionalidad de copiar y pegar. </li></ul><ul><li>Búsqueda adicional de contenedores y desarrolladores OpenSocial. </li></ul>
  50. 71. Tecnologías: AJAX
  51. 74. La Web no era un lugar precisamente bonito…
  52. 80. Un mundo detrás de AJAX: Las APIs de Google
  53. 81. APIs AJAX de Google <ul><li>Con las APIs AJAX de Google, podrás añadir mapas, videos, “feeds”, fotos y el buscador a tu sitio Web con tan sólo unas instrucciones en Jscript. </li></ul><ul><ul><li>Acceder a feeds de JSON, XML o mezcla de ellas. </li></ul></ul><ul><ul><li>Buscar negocios locales y agregarlos a un mapa de Google. </li></ul></ul>
  54. 82. Google AJAX API Search <ul><li>Web </li></ul><ul><li>Video </li></ul><ul><li>News </li></ul><ul><li>Image </li></ul><ul><li>Local </li></ul><ul><li>Book </li></ul><ul><li>Blog </li></ul>
  55. 83. Gadgets <ul><li>Google Gadgets son miniaplicaciones sencillas en HTML y JavaScript presentadas en iFrames, que pueden insertarse en páginas Web u otras aplicaciones. </li></ul><ul><ul><li>Puedes insertar tus gadgets en Blogger, hojas de cálculo, mapas, anuncios y muchos sitios más. </li></ul></ul>
  56. 84. Google Gears
  57. 85. Gears <ul><li>Maneja una base de datos local integrada en Gears que permite búsquedas en texto. </li></ul><ul><li>Puede correr código JavaScript de fondo (workerpools) sin bloquear la interfase del navegador. </li></ul><ul><li>Gears soporta distintas plataformas para dispositivos móviles, con paquetes completos de APIs, evitando las complicaciones de demora en transmisión en celulares que utilizan Windows. </li></ul>
  58. 86. Motivación <ul><li>Escribir una aplicación para móviles, con la gran diversidad de dispositivos que hay es un reto difícil e imposible hoy… </li></ul>Google Maps en el terror móvil… 10+ plataformas, 100’s de construcciones … debe haber una mejor manera
  59. 87. La Web como plataforma <ul><li>Beneficios de la Web sobre apps nativas: </li></ul><ul><ul><li>Ciclos de desarrollo más cortos. </li></ul></ul><ul><ul><li>Despliegue instantáneo, sin obstáculos de instalaciones. </li></ul></ul><ul><ul><li>Intercambio de código entre dispositivos y entre escritorios. </li></ul></ul><ul><li>A semanas del lanzamiento del iPhone había cientos de apps Web móviles, hoy hay miles. </li></ul>
  60. 88. ¿Por qué GEARS? <ul><li>La Web es una plataforma , pero… ¡¡las apps móviles Web apestan !! </li></ul><ul><li>Son lentas … </li></ul><ul><ul><li>Poco ancho de banda </li></ul></ul><ul><li>No responden … </li></ul><ul><ul><li>Jscript toma su tiempo y traba la IU </li></ul></ul><ul><li>Están ciegas … </li></ul><ul><ul><li>Jscript no puede acceder a la localización del usuario, a la cámara o a la agenda. </li></ul></ul>
  61. 89. Gears mejora aspectos clave del navegador móvil <ul><li>Sin Gears… apps móviles Web lentas, que no responden y ciegas </li></ul><ul><li>Con Gears… apps móviles Web concientes, fluidas y rápidas </li></ul>
  62. 90. Construyendo una App Web Móvil <ul><li>Tres claves para apps AJAX móviles efectivas: </li></ul><ul><ul><li>Navegación basada en URLs. </li></ul></ul><ul><ul><li>Patrón Modelo Vista Controlador. </li></ul></ul><ul><ul><li>Gearsificación. </li></ul></ul><ul><li>Permite compartir el modelo del código entre distintos navegadores. </li></ul><ul><li>Ajustarse a distintas implementaciones de vista (Webkit en iPhone y Nokia S60, IE en WinMo). </li></ul><ul><li>Experiencia offline del usuario. </li></ul>
  63. 91. Gears es mucho más que ir offline <ul><li>Location API será su primer nueva API. </li></ul><ul><li>Da a los desarrolladores un fácil acceso a la localización del usuario. </li></ul><ul><ul><li>Una llamada Jscript desde el navegador. </li></ul></ul><ul><ul><li>Una API idéntica para todos los dispositivos móviles. </li></ul></ul><ul><ul><li>getCurrentPosition(…) </li></ul></ul>
  64. 92. Proveedores de localización <ul><li>La API Location proveé una interfaz común para localización. </li></ul><ul><li>Los desarrolladores pueden elegir al Proveedor de localización. </li></ul><ul><ul><li>Default: Google Network Location Provider. </li></ul></ul><ul><ul><ul><li>GPS, Cell-ID, señales IP (si hay disponibles). </li></ul></ul></ul><ul><ul><li>Terceros. </li></ul></ul>
  65. 93. ¿Qué decir de Gears y los estándares? Gears está enfocado en soportar estándares Web abiertos
  66. 94. Concluyendo… ¿Qué es Gears? <ul><li>Un plugin para el navegador. </li></ul><ul><li>Una mejora a los navegadores Web. </li></ul><ul><li>Práctico e incremental. </li></ul><ul><li>Totalmente abierto. </li></ul><ul><li>Cero autoridad. </li></ul><ul><li>Enfocado a los desarrolladores (no a los usuarios). </li></ul><ul><li>Para Gears, las APIs y los estándares son un punto central. </li></ul>
  67. 95. Google Web Toolkit <ul><li>GWT facilita el desarrollo de aplicaciones AJAX de alto rendimiento. </li></ul><ul><li>A partir del front end mediante Java, GWT compilará la fuente para dejarla en un formato JavaScript sumamente optimizado . </li></ul><ul><ul><li>Los comentarios y código JavaScript que no se utilice serán eliminados durante la compilación. </li></ul></ul><ul><ul><li>Optimiza la escritura de AJAX, más rápido que escribirlo a mano. </li></ul></ul><ul><ul><li>Compilación diferida, donde tu aplicación bajará solamente aquellos archivos que se requieran para funcionar en cada etapa. </li></ul></ul>
  68. 96. Google App Engine <ul><li>App Engine te permite construir aplicaciones Web en la misma infraestructura que emplea Google. </li></ul><ul><ul><li>Puedes alojar tus aplicaciones OpenSocial y de Facebook dentro de Google App Engine. </li></ul></ul><ul><ul><li>Puedes emplear el módulo de Python de un tercero cualquiera. </li></ul></ul><ul><ul><li>Tu aplicación se almacenará en distintos equipos bajo un sistema que considera un ambiente tolerante a fallas. </li></ul></ul>
  69. 97. API <ul><li>Permite a los usuarios: </li></ul><ul><ul><li>Realizar búsquedas en la librería completa de YouTube, </li></ul></ul><ul><ul><li>Subir nuevos videos, </li></ul></ul><ul><ul><li>Editar la información de videos (como comentarios y favoritos), </li></ul></ul><ul><ul><li>Reproducir videos en tu sitio Web, aplicación de software, videojuego o teléfono celular. </li></ul></ul><ul><li>Cada minuto se incorporan 10 horas de video. </li></ul><ul><li>Personaliza el reproductir de YouTube: diseñan tus botones y controles mediante las APIs de JavaScript / ActionScript. </li></ul>
  70. 98. OpenSocial <ul><li>OpenSocial define una API común que permite desarrollar aplicaciones sociales que puedan usarse en múltiples sitios Web, como hi5, MySpace, Ning, orkut y Plaxo Pulse. </li></ul><ul><li>Con un estándar de JavaScript y HTML, los desarrolladores pueden crear aplicaciones para acceder a sus amigos en redes sociales y actualizar sus feeds. </li></ul><ul><ul><li>Las aplicaciones OpenSocial corren en redes sociales que usan y visitan más de 200 millones de usuarios. </li></ul></ul><ul><ul><li>Crear tu primer aplicación OpenSocial te tomará tan sólo 15 minutos. </li></ul></ul>
  71. 99. Mejorando la Web haciéndola social ¿Pero qué significa social?
  72. 100. Sara, ¿qué haces con tus amigos?
  73. 101. ¿Cómo socializar los objetos en línea, sin tener que crear “otra” red social?
  74. 103. Actualmente la Web social está rota: <ul><li>En cada sitio, debemos hacer: </li></ul><ul><ul><li>Re-crear una cuenta </li></ul></ul><ul><ul><li>Re-entrar nuestra información del perfil </li></ul></ul><ul><ul><li>Re-encontrar nuestros amigos </li></ul></ul><ul><ul><li>Re-establecer nuestras relaciones </li></ul></ul>
  75. 104. … ¡en Google saben cómo hacer las cosas mejor! <ul><li>La construcción de nuevos bloques que establescan: </li></ul>
  76. 105. <ul><li>Crear una identidad online portable y duradera </li></ul><ul><li>OpenID </li></ul><ul><ul><li>Accede usando una cuenta existente </li></ul></ul><ul><ul><li>Enlaza / comparte tu perfil entre sitios </li></ul></ul><ul><ul><li>rel = me (XFN) </li></ul></ul><ul><ul><li>Consolida tu identidad en línea con enlaces me </li></ul></ul><ul><ul><li>Social Graph API </li></ul></ul><ul><ul><li>Mira lo que tus usuarios dicen sobre ellos </li></ul></ul>RP
  77. 106. <ul><li>Costruye y mantén relaciones reales. </li></ul><ul><li>APIs de contactos: </li></ul><ul><ul><li>Encuentra personas de tu agenda </li></ul></ul><ul><ul><li>Aprovecha las relaciones ya establecidas </li></ul></ul><ul><li>OAuth </li></ul><ul><ul><li>Comparte datos privados entre sitios de confianza </li></ul></ul>
  78. 107. <ul><li>Mantente actualizado con la gente que conoces </li></ul><ul><li>OpenSocial </li></ul><ul><li>Construye apps sociales que puedan correr donde sea </li></ul><ul><li>RSS/Atom </li></ul><ul><li>Sindica tus actividades y compartelas </li></ul><ul><li>Jabber (XMPP) </li></ul><ul><li>Actualizaciones en tiempo real entre sitios </li></ul>
  79. 108. OpenSocial Una API común para aplicaciones sociales a través de múltiples sitios Web
  80. 112. Basado en estándares Html + Javascript + REST + oauth
  81. 113. Un estándar para todos
  82. 115. Android: Anatomía
  83. 116. Android <ul><li>Desarrollado por la Open Handset Alliance, un grupo de más de 30 tecnologías y empresas de móviles. </li></ul><ul><li>La primera plataforma completa, abierta y gratuita para celulares. </li></ul><ul><ul><li>No requieres permiso de nadie para desarrollar y vender aplicaciones para Android. </li></ul></ul><ul><ul><li>Utiliza tecnologías como OpenGL, SQLite y Dalvik para escribir anotaciones para Android. </li></ul></ul>
  84. 119. Anatomía de Android
  85. 120. <ul><li>Android está construido sobre el Kernel de Linux, pero no es Linux. </li></ul><ul><li>Kernel de Linux </li></ul><ul><ul><li>Gran administración de memoria y de procesos. </li></ul></ul><ul><ul><li>Modelo de seguridad basado en permisos. </li></ul></ul><ul><ul><li>Soporte para librerías compartidas </li></ul></ul><ul><ul><li>¡Ya es Open Source! </li></ul></ul>
  86. 121. <ul><li>Dalvik Virtual Machine </li></ul><ul><ul><li>Implementación de una máquina virtual a la medida para Android. </li></ul></ul><ul><ul><li>Provee una portabilidad a las aplicaciones y una consistencia en tiempo de ejecución. </li></ul></ul><ul><ul><li>Los archivos Java .class / .jar son convertidos a .dex en tiempo de construcción. </li></ul></ul><ul><ul><li>Diseñado para ambientes embebidos. </li></ul></ul>
  87. 122. API
  88. 123. API de Mapas de Google <ul><li>Permite insertar mapas de Google en tu propio sitio Web a través de una sencilla instrucción en JavaScript o HTTP. </li></ul><ul><li>La API proporciona una serie de utilidades para manejar y manipular mapas y agregar contenido en ellos. </li></ul><ul><li>Permite la creación de aplicaciones robustas de mapas en tu sitio. </li></ul><ul><ul><li>Despliega un archivo GeoRSS o KML dentro de un mapa de Google, con unas cuantas líneas de código. </li></ul></ul><ul><ul><li>Integra Street View en tus mashups. </li></ul></ul><ul><ul><li>Al convertir tus mashups en un Mapplet , los usuarios podrán combinarlos y obtener un único e impresionante mashup. </li></ul></ul>
  89. 124. Mapa giratorio Ejemplo con video Simulador de manejo
  90. 125. API para mapas estáticos <ul><li>Google devuelve la imagen de un mapa ante una solicitud. </li></ul><ul><li>¡Va hacia donde ningún código puede llegar! </li></ul><ul><li>Cargas más rápidas y mapas imprimibles. </li></ul>
  91. 126. KML Avanzado
  92. 127. KML <ul><li>KML es un formato de archivos usado para desplegar información geográfica en un navegador geográfico </li></ul><ul><ul><li>Google Maps, Google Earth y Google Maps para móviles. </li></ul></ul><ul><li>Crea archivos KML para: </li></ul><ul><ul><li>Destacar y señalar ubicaciones , </li></ul></ul><ul><ul><li>Añadir capas de imágenes , </li></ul></ul><ul><ul><li>Dar un estilo nuevo y diferente a tus datos. </li></ul></ul><ul><ul><li>Insertar estructuras de datos personalizadas directamente en el archivo KML. </li></ul></ul>
  93. 128. OGC KML 2.2 <ul><li>KML 2.2 ya es oficialmente un estándar del Open Geospatial Consortium. </li></ul><ul><ul><li>Abril 14, 2008. </li></ul></ul><ul><ul><li>Estándar: 07-147r2 </li></ul></ul><ul><ul><li>100% “Google” KML2.2 compatible </li></ul></ul><ul><ul><li>xmlns:“http://www.opengis.net/kml/202” </li></ul></ul><ul><li>www.opengeospatial.org / standards / kml </li></ul>
  94. 129. Arquitectura KML <ul><li>Objetos </li></ul><ul><li>Características </li></ul><ul><li>Geometría </li></ul><ul><li>Estilo </li></ul><ul><li>Enlaces </li></ul><ul><li>Mecanismos de extensión </li></ul>
  95. 130. Características avanzadas <ul><li>Región </li></ul><ul><ul><li>LOD </li></ul></ul><ul><ul><li>Transiciones de visibilidad </li></ul></ul><ul><li>Tiempo </li></ul><ul><ul><li>Timestamp </li></ul></ul><ul><ul><li>Timespan </li></ul></ul><ul><li>Actualización </li></ul><ul><ul><li>Crear, cambiar y borrar </li></ul></ul><ul><li>Entre otras… </li></ul>
  96. 132. De mashups y mapplets
  97. 133. Mapplets: Gadgets para Google Maps <ul><li>Google Gadgets: </li></ul><ul><ul><li>HTML y Javascript </li></ul></ul><ul><ul><li>Corren en contenedores <iframe> </li></ul></ul><ul><ul><li>Embebidos en páginas Web </li></ul></ul><ul><ul><li>Usados en iGoogle </li></ul></ul><ul><ul><li>Acceden a datos remotos </li></ul></ul><ul><ul><li>Almacenan las preferencias de los usuarios </li></ul></ul><ul><li>Google Maps API </li></ul><ul><ul><li>Control Javascript de mapas </li></ul></ul><ul><ul><li>Agregar capas personalizadas </li></ul></ul><ul><ul><ul><li>Marcadores </li></ul></ul></ul><ul><ul><ul><li>InfoWindows </li></ul></ul></ul><ul><ul><ul><li>Lìneas y polígonos </li></ul></ul></ul><ul><ul><li>Interacción con eventos del mapa </li></ul></ul><ul><ul><ul><li>Paneo y zoom </li></ul></ul></ul>
  98. 134. Diferencias entre Maps API y Mapplets <ul><li>Todas las funciones de Maps API son síncronas . </li></ul><ul><li>Todas las funciones de regreso de los Mapplets son asíncronas . </li></ul><ul><li>Los Mapplets no permiten cambiar el desempeño de los mapas: </li></ul><ul><ul><li>No puedes deshabilitar el paneo o el zoom ni crear controles personalizados. </li></ul></ul><ul><li>El acceso a datos externos es usando a Google como Proxy. </li></ul><ul><li>Los datos insertados en InfoWindows son saneados antes de usarse. </li></ul><ul><li>Los Mapplets son más sencillos de inicializar que los Maps API. </li></ul><ul><li>Los Mapplets permiten un almacenamiento y uso sencillo de las preferencias de los usuarios. </li></ul>
  99. 135. Gracias Google Developer Day México 2008

×