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