SlideShare une entreprise Scribd logo
1  sur  118
Télécharger pour lire hors ligne
Google Developer Groups
LATAM
GDG organizers and experts


Argentine, Peru y Mexico, Uruguay
Conociendo el API Google Maps JavaScript                 Juan José Rodríguez (Peru)



Intro to HTML5                                           Pablo Moyano (Arg)



Aplicación domótica                                      Federico Castoldi (Arg)



How Android APIs Evolved: ViewFlipper vs. ViewPager      Enrique Díaz (Mex)



 Local Storage en HTML5 (FileSystem API - IndexedDB)     Cristian Rinaldi (Arg)



 Google Cloud Storage y Google Prediction API            Matias Molinas (Arg)


 Construyendo REST APIs sobre App Engine usando Google
                                                         Gabriel Kouyoumdijan (Uruguay)
Cloud Endpoints
Conociendo el API Maps Javascript
Juan José Rodríguez
Perú
¿Cuál es la misión de Google?
Google Maps
  ●Mapas e imágenes
  ●Vistas en panorámicas y en 3D.

  ●Vistas panorámicas del mundo.

  ●Vista y exploración en tiempo real de calles.

  ●Vistas de los lugares específicos.

      ●Obtención de ruta.

      ●Ruta basado en medio de transporte.

      ●Obtención de la distancias.

  ●Y mucho más…
Google Maps
API MAPS V3
Versión basado en JS API


●   Rendimiento optimizado.
●   Diseñado para móviles.
●   Estructura MVC.
La nueva era
Google Maps para móviles
Google Maps para móviles
API MAPS V3
Desarrollo para móviles


                    Nativo VS Web
API MAPS V3
Nativo
                  Desarrollador                                Usuario
                        +1                                        +1
  Aplicaciones muy potentes con uso del hardware   Uso del hardware del dispositivo.
                  del dispositivo.
                        -1                                        -1
     Más costoso de desarrollo/mantenimiento          Actualizaciones manuales
     Actualizaciones se limitan a las versiones
API MAPS V3
Web


                   Desarrollador                                             Usuario
                         +1                                                    +1
    Un desarrollo y podría ser compatible con la                   Actualizaciones automáticas
   mayoria de dispositivos mediante navegadores.
  Resulta menos costoso de desarrollar y mantener.                          Facil uso

 Ejecución de funciones tales como hacer clic, ampliar, arrastrar, obtener ubicación actual, buscar un
 lugar, ejecutar check-in, entre
                          -1                                                    -1
          Limitaciones con uso de hardware                      Limitaciones con uso de hardware
Adrian Graham




                          +                         =

     API Google Maps + HTML5 = Una nueva era de aplicaciones móviles
+Almacenamiento local, almacenamiento en caché de aplicación, y la geolocalización de Google Maps
JavaScript API tanto para escritorio y web móvil.
API MAPS V3
                         WebView
                                    Android
        API Maps




          URL


                                    Iphone
        Desarrollador
                        UIWebView




Esquema general
API MAPS V3

Demo
1.Crear el mapa con JavaScript
2.Crear el WebView - Android

3.Crear el UIWebView en Iphone
API MAPS V3
Diseño basado en Web con compatibilidad para móviles
                                                    ●Propiedad navidator.userAgent
 function detectBrowser() {
   var useragent = navigador.userAgent;
   var mapdiv = document.getElementById(“map_canvas”);

   if (useragent.indexOf(‘iphone’ != -1 || useragent.indexOf(‘Android’) !=-1) {
        mapdiv.style.width = ‘100%’;
        mapdiv.styleheight = ‘100%’;
  }else{
        mapdiv.style.width = ‘600px’;
         mapdiv.styleheight = ‘800px’;
  }
 }// Fin de método detectBrowser
API MAPS V3




              ¿Qué camino tomar?
API MAPS V3
Proyecto USMP Mobile
●Ampliar los canales de servicios para alumnos y
docentes.

Aprovechar todo el potencial de los dispositivos
●

móviles.

●Mejorar la experiencia de nuestros usuarios.
API MAPS V3
Proyecto USMP Mobile
API MAPS V3
Proyecto USMP Mobile
Geolocalización de facultades
●




                        WebView   CMS

                                   Latitud
                                  Longitud
API MAPS V3
                       Implementado




  CMS                   En proceso
              IPHONE




               WEB
API MAPS V3
Proyecto USMP Mobile

 “Reutilizamos el desarrollo y lo hacemos compatible
    para diversas plataformas en base a nuestra
                     necesidad”
HTML 5
Pablo Moyano
Argentina
Domotica Móvil
Federico Castoldi
Argentina
Título
Enrique Diaz
México
Presentation Bullet Slide Layout

●   Titles are formatted as Open Sans with bold applied and
    font size is set at 30pts
      ● Vertical position for title is .3”
      ● Vertical position for bullet text is 1.54”
●   Title capitalization is title case
●   Subtitle capitalization is title case
●   Titles and subtitles should never have a period at the end
LocalStorage en HTML5
Cristian Rinaldi
Argentina
Demo

Presentación Web
File API
 File         El objeto File provee información sobre el Archivo, este Objeto generalmente es obtenido desde el FileList,
              DataTransfer o creado con el FileSystem API

 FileList     Este objeto es obtenido desde la propiedad files del elemento input

 Blob         Este objeto representa información binaria inmutable y permite acceso a rangos de bytes dentro del Blob,
              pero en Blobs separados

 FileReader   Provee métodos para la lectura de File y Blob

 Uri schene   Se utilizan datos binarios como archivos, por lo que puden ser referenciados desde la app web.
              Por ejemplo: blob:550e8400-e29b-41d4-a716-446655440000#aboutABBA, puede ser utilizado en el atributo
              src del elemento img
File API - Recuperando Archivos
<input type="file" id="files" name="files[]" multiple
/>

//Existe soporte de File API
if (window.File && window. FileReader && window. FileList && window. Blob) {
  // Success!!
} else {
  alert('File API no esta soportada por el navegador' );
}
function onChange(evt) {
    var files = evt.target.files; // Objeto FileList
    var output = [];
    for (var i = 0, f; f = files[i]; i++) {
      output.push( '<li><strong>' , escape(f.name), '</strong> (' , f.type || 'n/a', ') - ', f.size, '
bytes, last modified: ' ,
                  f.lastModifiedDate.toLocaleDateString(), '</li>');
    }
    document.getElementById( 'list').innerHTML = '<ul>' + output.join( '') + '</ul>';
  }
  document.getElementById( 'files').addEventListener( 'change', onChange, false);
File API - Drag & Drop
<div id="drop_zone" >Drop files here </div>
<output id="list"></output>

function onDrop(evt) {
    evt.stopPropagation();
    evt.preventDefault();
    var files = evt.dataTransfer.files; // Objecto FileList
    var output = [];
    for (var i = 0, f; f = files[i]; i++) {
      //TODO f.name, f.size, f.lastModifiedDate, f.type
    }
    document.getElementById( 'list').innerHTML = '<ul>' + output.join( '') + '</ul>';
  }
  function onDragOver(evt) {
    evt.stopPropagation();
    evt.preventDefault();
    evt.dataTransfer.dropEffect = 'copy';
  }
}
File API - FileReader

FileReader.readAsBinaryString(Blob|File)         La propiedad result contendra la informacon del File o Blob
                                                 como un String binario.

FileReader.readAsText(Blob|File, opt_encoding)   La propiedad result contendra la informacon del File o Blob
                                                 como un string de texto, por defecto el string es codificado
                                                 en UTF-8.

FileReader.readAsDataURL(Blob|File)              La propiedad result contendra el contenido del Blob o File
                                                 codificado como una URL data
                                                 data:[<MIME-type>][;charset=<encoding>][;base64],<data>

FileReader.readAsArrayBuffer(Blob|File)          La propiedad result contendra el contenido del Blob o File
                                                 como un ArrayBuffer
FileSystem API (Asynchronous API) - Directory and System
El API de File System, simula un file system local que las aplicaciones web pueden navegar e interactuar. Utilizando esta
podrán hacer aplicaciones que lean, escriban, creen archivos y directorios en el Sistema de Archivos virtual.
Este API interactúa con otras APIs relacionadas, por ejemplo File Writer API que esta construida sobre File API, cada API
agrega funcionalidades particulares

LocalFileSystem      Tiene dos métodos globales para el acceso al FileSystem: requestFileSystem() y
                     resolveLocalFileSystemURL()

FileSystem           Representa el FileSystem

Entry                Representa una entrada del FileSystem

DirectoryEntry       La propiedad result contendra el contenido del Blob o File como un ArrayBuffer

DirectoryReader      Por medio de éste podremos listar los archivos y directorios de un directorio

FileError            Este objeto es el que contedrá el error en el caso que exista uno en el procesamiento de los método
                     asincrónicos
FileSystem API (Asynchronous API) - Entry Métodos

void getMetada (in MetadataCallback successCallback, in optional ErrorCallback errorCallback);



void moveTo (in DirectoryEntry parent, optional DOMString newName, in optional EntryCallback successCallback, in optional
ErrorCallback errorCallback);


void copyTo (in DirectoryEntry parent, in optional DOMString newName, in optional EntryCallback successCallback, in optional
ErrorCallback errorCallback);


void toURL (in optional DOMString mimeType);



void remove (in VoidCallback successCallback, in optional ErrorCallback errorCallback);



void getParent (in EntryCallback successCallback, in optional ErrorCallback errorCallback);
FileSystem API (Asynchronous API) - Apertura FS

window.requestFileSystem(window.TEMPORARY,   5 * 1024 * 1024, function(
      filesystem) {
  fs = filesystem;
  loadFs();
}, errorHandler);



window.webkitStorageInfo.requestQuota(PERSISTENT, 15 * 1024 * 1024,
      function(grantedBytes) {
        window.requestFileSystem(PERSISTENT, grantedBytes, function(
            filesystem) {
          fs = filesystem;
          actualDirectory = fs.root;
          loadFs();
        }, errorHandler);
      }, errorHandler);
FileSystem API (Asynchronous API) - Creando Directorios


function onFs(fs){
  fs.root.getDirectory( 'Documents' , {create: true}, function(directoryEntry){
    //directoryEntry.isFile === false
    //directoryEntry.isDirectory === true
    //directoryEntry.name === 'Documents'
    //directoryEntry.fullPath === '/Documents'
    }, errorHandler);
  }
FileSystem API (Asynchronous API) - Creando Archivos

function onInitFs(fs) {
   fs.root.getFile( 'log.txt', {create: true}, function(fileEntry) {
     // Crea un Objeto FileWriter
    fileEntry.createWriter(function(fileWriter) {
       fileWriter.onwriteend = function(e) {
         console.log( 'Write completed.' );
      };
       fileWriter.onerror = function(e) {
         console.log( 'Write failed: ' + e.toString());
      };
       var blob = new Blob([ 'Creamos nuestro File!!!!!!!' ], {
         type : 'text/plain'
      });
      fileWriter.write(blob);
    }, errorHandler);
  }, errorHandler);
}
FileSystem API (Asynchronous API) - Importando directorios


<input type="file" multiple webkitdirectory ="" mozdirectory ="" directory="">

function onChange(e) {
  e.stopPropagation();
  e.preventDefault();

    var entries = e.target.webkitEntries; // Tenemos todas como Entradas (Entry).

    [].forEach.call(entries, function(entry) {

     // Copia la entrada al FS
     entry.copyTo(fs.root, null, function(copiedEntry) {
       //TODO
     }, onError);

    });
}
FileSystem API (Asynchronous API) - Drag and Drop
Directorios

function onDrop(e) {
  e.preventDefault();
  e.stopPropagation();

    var items = e.dataTransfer.items;

    for (var i = 0, item; item = items[i]; ++i) {
      var entry = item.webkitGetAsEntry();

        // Si es un directorio copia la Entrada al FS
        if (entry.isDirectory) {
          entry.copyTo(fs.root, null, function(copiedEntry) {
            // TODO
          }, errorHandler);
        }
    }
}
FileSystem URL
// filesystem:http://<origin>/<temporary|persistent>/<resource.png
...
case 'image/jpeg' :
      var img = document.createElement( 'img');
      img.src = fileEntry.toURL();
      meta.appendChild(img);
      break;
...

window.resolveLocalFileSystemURL = window.resolveLocalFileSystemURL
    || window.webkitResolveLocalFileSystemURL;
...
window.resolveLocalFileSystemURL(fileSystemPath + path,
      function(dirEntry) {
        var dirReader = dirEntry.createReader();
        var dirs = [];
        dirReader.readEntries( function(dirs) {
          //TODO
        }, errorHandler);
      }, errorHandler);
...
Google Cloud Storage
y
Google Prediction API
Matias Molinas
Argentina
Qué es Google Cloud Storage?

●   Es un servicio REST

●   En la infraestructura de Google

●   Para almacenar datos ilimitados
Qué es Google Cloud Storage?

●   Puede guardar objetos de hasta 5T

●   Se organizan en buckets

●   El usuario les asigna una key unica
Google Cloud Storage

●   Interoperabilidad: con Amazon S3 y Eucalyptus

●   Consistencia: uploads atomicos

●   Control de Acceso: access control list (ACLs)
Google Cloud Storage

●   Herramientas:

●   Google Storage Manager (un explorer.. )
     https://storage.cloud.google.com

●   gsutil (linea de comandos)
     http://code.google.com/p/gsutil/
Google Cloud Storage

●   Como activarlo?

●   Crear un proyecto en la consola de APIs de Google
     https://code.google.com/apis/console/

●   Activar el servicio en ese proyecto
Google Cloud Storage

●   Lo podemos utilizar desde:

●   Las aplicaciones de Google

●   Mensajes XML o JSON

●   Desde APIs que encapsulan la mensajeria
Google Cloud Storage

●   Casos de éxito:

●   Ubisoft, los utiliza para guardar datos de niveles de juegos de Chrome
Google Cloud Storage
Google Cloud Storage - Ejemplo
Google Cloud Storage

●   Otras APIs que trabajan con Cloud Storage:

●   Google Prediction API

●   BigQuery
Google Prediction API

●   Qué es Google Prediction API?

●   Es un servicio en la nube de "Aprendizaje automático"
Google Prediction API

●   Para qué sirve?

●   Análisis de sentimientos del cliente

●   Detección de spam

●   Ruteo de mensajes inteligente

●   Clasificacion de documentos y correos electrónicos
Google Prediction API

●   Para qué sirve?

●   Identificación de consumidores que pueden dejar de utilizar su servicio o
    producto
●   Recomendaciones
●   inducir al cliente a comprar productos más caros, actualizaciones u otros add-
    ons
Google Prediction API

●   Para qué sirve?

●   Diagnostico médico

●   Identificación de actividad sospechosa

●   Mucho más ...
Google Prediction API

●   Que es Machine Learning?

●   El Aprendizaje Automático es una rama de la Inteligencia Artificial cuyo
    objetivo es desarrollar técnicas que permitan a las computadoras aprender.
Google Prediction API

●   Que nos simplifica Prediction API?

●   Selecciona el algoritmo más adecuado en forma automatica

●   Escala

●   Simplemente consumimos un servicio REST
Google Prediction API

●   Como lo podemos utilizar?

●   Tenemos que crear un set de datos

●   Tiene que ser representativo!

●   Tiene que responder lo que esperamos que resuelva el servicio!

●   Es el paso más critico
Google Prediction API

●   Ejemplo:

●   "French", "«Eh! votre dépense», v

●   "Spanish", " Esto es una prueba

●   "English", "'He took me for his h
●

●   "Spanish", "YO, EL REY."
●

●   "English", "'Well, perhaps you ha
Google Prediction API

●   Lo dos más importantes :

●   La formulación correcta de la pregunta que va a responder el servicio

●   Contar con un set de datos que provee ejemplos suficientes para entrenar el
    servicio
Google Prediction API

●   Pero, que es una predicción??

●   Dado un item, predecir un valor numerico

●   Dado un item, predecir una categoría
Google Prediction API

●    Ejemplo, valores numéricos:

●    Set de datos:
    Temperatura, Dia del año, Ciudad, Clima

●    Podemos predecir la temperatura (numérico)

●    (Modelo de regresión)
Google Prediction API

●   Ejemplo, categorías:

●    Set de datos:
    Tipo de Email (Spam/Normal), Motivo

●   Podemos predecir si es Spam (categoría)

●   (Modelo de categorización)
Google Prediction API

●   Entrenamiento:

●   El set de datos de entrenamiento lo debemos subir a Google Cloud Storage

●   Formato: Un archivo CSV (datos separados por coma)
Google Prediction API

●   Entrenamiento:

●   Podemos utilizar el API desde una librería

●   Podemos utilizarla desde el Google APIs Explorer
Google Prediction API

●   Entrenamiento via Google APIs Explorer:

●   invocamos el método trainedmodels.insert()

●   como parámetro pasamos la ruta a nuestro archivo en el cloud storage
Google Prediction API

●   Entrenamiento via Google APIs Explorer:

●   invocamos el método trainedmodels.insert()

●   como parámetro pasamos la ruta a nuestro archivo en el cloud storage
Google Prediction API

●   El mismo Casos de Exito, Ford:

●   Se utiliza para optimizar el uso de combustible y energia en automóviles
    híbridos

●   El automóvil aprende de los trayectos que normalmente realiza el conductor
    la estrategia para el ahorro de energía
Google Prediction API




                    Preguntas?
Construyendo REST APIs sobre
Google App Engine
Gabriel Kouyoumdijan
Uruguay
Objetivos

Beneficios de usar AppEngine como backend



Introducción a Google Cloud Endpoints
Escenario
Arquitectura

Backend                                                                      Clients
                                Seguridad?
                                Autenticación y autorización
                                                               JavaScript      Web App
   DB                                                          API wrapper


                          API

               Business                                        Java            Android App
               logic                                           API wrapper




   Otros                                                       Obj. C          iOS App
   servicios                                                   API wrapper
Antes de salir a producción...

■   Estimar la carga

■   Comprar y configurar servidores

■   Configurar balanceador de cargas
Luego...

■   Tirar a la basura las estimaciones previas

■   Comprar y configurar más servidores

■   Reconfigurar balanceador de cargas
Además

■   Mantener el middleware

■   Ajustar balanceador de carga



Poco tiempo para:

■   Agregar nuevas features

■   Mejorar UI

■   Analizar estrategias de monetización
Google App Engine

■   Escala automatico

■   Facil comenzar a usarlo

■   Facil de mantener

■   Simple configuración y deployment

■   Pago por lo que uso
Usando App Engine como backend

                                                   Clients

                                     JavaScript      Web App
   Datasto                           API wrapper
   re

                               API
                                     Java            Android App
              Business logic         API wrapper




  AppEngine                          Obj. C          iOS App
  Services                           API wrapper
Google Cloud Endpoints
Google Cloud Endpoints
Necesitamos:

■    SDK App Engine http://goo.gl/BVr5g

■    Endpoint trusted tester program http://goo.gl/VJmpP

■    Google Plugin for Eclipse http://goo.gl/CL1HE

Luego:
1. Escribir nuestro código
2.   Anotar métodos
3.   Generar client libraries
Google Cloud Endpoints

Anotaciones:

■   @Api indica que la clase es una API

■   @ApiMethod indica que el método es un método de la API

■   @Named indica que un argumento es un parámetro en un request
Google Cloud Endpoints
Ejemplo:

@Api (name = "tasklist")
public class Task{
    @ApiMethod (name = "task.get")
    public Task get(@Named("id") String id){
         PersistenceManager pm = getPersistenceManager();
         Task task = pm.getObjectById (Task.class, id);
         return task;
    }
}
Muchas Gracias!

 +Gabriel Kouyoumdjian

 @gabrielkou

 gabriel.kb@gdgroups.org

 gkcodelog.blogspot.com

+GDG Uruguay
Presentation Bullet Slide La

●   Titles are formatted as Open Sans with bold applied and
    font size is set at 30pts
      ● Vertical position for title is .3”
      ● Vertical position for bullet text is 1.54”
●   Title capitalization is title case
●   Subtitle capitalization is title case
●   Titles and subtitles should never have a period at the end
Liquid Galaxy
Josue Basurto y Ricardo Rosales
Tijuana, México
¿Qué es?
Lo importante (Google Earth Home Folder/drivers.ini)

; ViewSync settings
ViewSync/send = true
ViewSync/receive = false

; If send == true, sets the IP where the datagrams are sent
; Can be a broadcast address (e.g. 192.168.1.254 sometimes)
ViewSync/hostname = SLAVE_IP_GOES_HERE
ViewSync/port = 21567

; For video caves, we typically want the slave screens to look to the
; left or right (yawOffset) of where the master is looking
ViewSync/yawOffset = 0
ViewSync/pitchOffset = 0.0
ViewSync/rollOffset = 0.0
ViewSync/horizFov = 36.5
Veamos
Veamos
<Thank You!>
developers.google.com



{ solsona | nickbortolotti } @google.com
@ { solsona | nickbortolotti }
GDG DevFest Lighting Talks México

Contenu connexe

En vedette

USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...Steven McGee
 
De hemorroides tratamiento
De hemorroides tratamientoDe hemorroides tratamiento
De hemorroides tratamientoeshacersea
 
Learning Outcome Task One
Learning Outcome Task OneLearning Outcome Task One
Learning Outcome Task Onephele1994
 
Primera clase configuración del EVA
Primera clase configuración del EVAPrimera clase configuración del EVA
Primera clase configuración del EVAMarisol Aman
 
The second mile principle
The second mile principleThe second mile principle
The second mile principleVan Nagac
 
Direito penal iii crimes contra a inviolabilidade de correspondência
Direito penal iii   crimes contra a inviolabilidade de correspondênciaDireito penal iii   crimes contra a inviolabilidade de correspondência
Direito penal iii crimes contra a inviolabilidade de correspondênciaUrbano Felix Pugliese
 
Programas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedoresProgramas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedoresJuan José Rodriguez MsC.
 
List view y UI en Android
List view y UI en AndroidList view y UI en Android
List view y UI en AndroidByron Andres
 
Qué es y cómo funciona FounderList - 02-04-2016
Qué es y cómo funciona FounderList - 02-04-2016Qué es y cómo funciona FounderList - 02-04-2016
Qué es y cómo funciona FounderList - 02-04-2016FounderList
 
La Realidad Aumentada como herramienta para mejorar los procesos educativos e...
La Realidad Aumentada como herramienta para mejorar los procesos educativos e...La Realidad Aumentada como herramienta para mejorar los procesos educativos e...
La Realidad Aumentada como herramienta para mejorar los procesos educativos e...Juan José Rodriguez MsC.
 
Guías de diseño para apps en Android 4
Guías de diseño para apps en Android 4Guías de diseño para apps en Android 4
Guías de diseño para apps en Android 4Mauricio Angulo
 

En vedette (18)

USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
 
De hemorroides tratamiento
De hemorroides tratamientoDe hemorroides tratamiento
De hemorroides tratamiento
 
Learning Outcome Task One
Learning Outcome Task OneLearning Outcome Task One
Learning Outcome Task One
 
Primera clase configuración del EVA
Primera clase configuración del EVAPrimera clase configuración del EVA
Primera clase configuración del EVA
 
google aps
google apsgoogle aps
google aps
 
Lo2 pitch
Lo2 pitchLo2 pitch
Lo2 pitch
 
Tic´s google +
Tic´s google +Tic´s google +
Tic´s google +
 
The second mile principle
The second mile principleThe second mile principle
The second mile principle
 
Fenómeno de Google
Fenómeno de GoogleFenómeno de Google
Fenómeno de Google
 
Direito penal iii crimes contra a inviolabilidade de correspondência
Direito penal iii   crimes contra a inviolabilidade de correspondênciaDireito penal iii   crimes contra a inviolabilidade de correspondência
Direito penal iii crimes contra a inviolabilidade de correspondência
 
Servicios de google
Servicios de googleServicios de google
Servicios de google
 
Programas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedoresProgramas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedores
 
List view y UI en Android
List view y UI en AndroidList view y UI en Android
List view y UI en Android
 
S5 android ui
S5 android uiS5 android ui
S5 android ui
 
Qué es y cómo funciona FounderList - 02-04-2016
Qué es y cómo funciona FounderList - 02-04-2016Qué es y cómo funciona FounderList - 02-04-2016
Qué es y cómo funciona FounderList - 02-04-2016
 
La Realidad Aumentada como herramienta para mejorar los procesos educativos e...
La Realidad Aumentada como herramienta para mejorar los procesos educativos e...La Realidad Aumentada como herramienta para mejorar los procesos educativos e...
La Realidad Aumentada como herramienta para mejorar los procesos educativos e...
 
Guías de diseño para apps en Android 4
Guías de diseño para apps en Android 4Guías de diseño para apps en Android 4
Guías de diseño para apps en Android 4
 
Ux for Mobile Developers
Ux for Mobile DevelopersUx for Mobile Developers
Ux for Mobile Developers
 

Similaire à GDG DevFest Lighting Talks México

Desarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashDesarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashFutura Networks
 
SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0Anderson Almidon
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasAnder Martinez
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móvilesPideCurso
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Iniciativa Barcelona Open Data
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y PythonCarlos Toxtli
 
HTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo WebHTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo WebPlain Concepts
 
SGBD y tecnologías que usan las aplicaciones web 2.0
SGBD y tecnologías que usan las aplicaciones web 2.0SGBD y tecnologías que usan las aplicaciones web 2.0
SGBD y tecnologías que usan las aplicaciones web 2.0Sthefani Villanueva Cigaran
 
Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Ignacio Muñoz Vicente
 
App engine
App engineApp engine
App engineThirdWay
 
Proyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de DatosProyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de DatosConfesorAD
 
Decroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el AulaDecroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el AulaConfesorAD
 
Una aplicación innovadora como puente para la recuperación de información en ...
Una aplicación innovadora como puente para la recuperación de información en ...Una aplicación innovadora como puente para la recuperación de información en ...
Una aplicación innovadora como puente para la recuperación de información en ...Congreso Internet en el Aula
 

Similaire à GDG DevFest Lighting Talks México (20)

Desarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashDesarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flash
 
Desarrollo Plataforma Flash
Desarrollo Plataforma FlashDesarrollo Plataforma Flash
Desarrollo Plataforma Flash
 
SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. Migas
 
Google
GoogleGoogle
Google
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
Gps
GpsGps
Gps
 
Gps
GpsGps
Gps
 
Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...
Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...
Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...
 
HTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo WebHTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo Web
 
SGBD y tecnologías que usan las aplicaciones web 2.0
SGBD y tecnologías que usan las aplicaciones web 2.0SGBD y tecnologías que usan las aplicaciones web 2.0
SGBD y tecnologías que usan las aplicaciones web 2.0
 
Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2
 
Software libre en la ingeniería. Charla3
Software libre en la ingeniería. Charla3Software libre en la ingeniería. Charla3
Software libre en la ingeniería. Charla3
 
App engine
App engineApp engine
App engine
 
Proyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de DatosProyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de Datos
 
Decroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el AulaDecroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el Aula
 
Una aplicación innovadora como puente para la recuperación de información en ...
Una aplicación innovadora como puente para la recuperación de información en ...Una aplicación innovadora como puente para la recuperación de información en ...
Una aplicación innovadora como puente para la recuperación de información en ...
 

Plus de Juan José Rodriguez MsC.

Anais Escola Regional de Banco de Dados ERBD 2016
Anais Escola Regional de Banco de Dados ERBD 2016Anais Escola Regional de Banco de Dados ERBD 2016
Anais Escola Regional de Banco de Dados ERBD 2016Juan José Rodriguez MsC.
 
Apresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da ComputaçãoApresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da ComputaçãoJuan José Rodriguez MsC.
 
Programas de Google DevRel LatAm South Region
Programas de Google DevRel LatAm South RegionProgramas de Google DevRel LatAm South Region
Programas de Google DevRel LatAm South RegionJuan José Rodriguez MsC.
 
Utilización de tecnologías Cloud Computing para la innovación en Organizacion...
Utilización de tecnologías Cloud Computing para la innovación en Organizacion...Utilización de tecnologías Cloud Computing para la innovación en Organizacion...
Utilización de tecnologías Cloud Computing para la innovación en Organizacion...Juan José Rodriguez MsC.
 
Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...
Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...
Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...Juan José Rodriguez MsC.
 
Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...
Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...
Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...Juan José Rodriguez MsC.
 
Oportunidad para innovar con tecnología google - AgileOpenLima V
Oportunidad para innovar con tecnología google - AgileOpenLima VOportunidad para innovar con tecnología google - AgileOpenLima V
Oportunidad para innovar con tecnología google - AgileOpenLima VJuan José Rodriguez MsC.
 
Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...
Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...
Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...Juan José Rodriguez MsC.
 
Programa Academic Developer Technology Groups en Perú
Programa Academic Developer Technology Groups en PerúPrograma Academic Developer Technology Groups en Perú
Programa Academic Developer Technology Groups en PerúJuan José Rodriguez MsC.
 

Plus de Juan José Rodriguez MsC. (13)

Anais Escola Regional de Banco de Dados ERBD 2016
Anais Escola Regional de Banco de Dados ERBD 2016Anais Escola Regional de Banco de Dados ERBD 2016
Anais Escola Regional de Banco de Dados ERBD 2016
 
Apresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da ComputaçãoApresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da Computação
 
Geoprocess in smart cities concepts
Geoprocess in smart cities conceptsGeoprocess in smart cities concepts
Geoprocess in smart cities concepts
 
Programas de Google DevRel LatAm South Region
Programas de Google DevRel LatAm South RegionProgramas de Google DevRel LatAm South Region
Programas de Google DevRel LatAm South Region
 
Utilización de tecnologías Cloud Computing para la innovación en Organizacion...
Utilización de tecnologías Cloud Computing para la innovación en Organizacion...Utilización de tecnologías Cloud Computing para la innovación en Organizacion...
Utilización de tecnologías Cloud Computing para la innovación en Organizacion...
 
Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...
Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...
Herramientas de comunicación y colaboración de Google Apps Edu Edition como p...
 
Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...
Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...
Code Passion 2012 - Ecosistema de tecnologías google - propuestas, iniciativa...
 
Herramientas Google para docentes y alumnos
Herramientas Google para docentes y alumnosHerramientas Google para docentes y alumnos
Herramientas Google para docentes y alumnos
 
Taller de Google Apps - Eduticinnova 2011
Taller de Google Apps - Eduticinnova 2011Taller de Google Apps - Eduticinnova 2011
Taller de Google Apps - Eduticinnova 2011
 
Oportunidad para innovar con tecnología google - AgileOpenLima V
Oportunidad para innovar con tecnología google - AgileOpenLima VOportunidad para innovar con tecnología google - AgileOpenLima V
Oportunidad para innovar con tecnología google - AgileOpenLima V
 
Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...
Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...
Qué es un gtug y tecnologías google para desarrolladores - Academic Developer...
 
Programa Academic Developer Technology Groups en Perú
Programa Academic Developer Technology Groups en PerúPrograma Academic Developer Technology Groups en Perú
Programa Academic Developer Technology Groups en Perú
 
Virtual educa 2011
Virtual educa 2011Virtual educa 2011
Virtual educa 2011
 

Dernier

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 

Dernier (20)

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 

GDG DevFest Lighting Talks México

  • 1. Google Developer Groups LATAM GDG organizers and experts Argentine, Peru y Mexico, Uruguay
  • 2. Conociendo el API Google Maps JavaScript Juan José Rodríguez (Peru) Intro to HTML5 Pablo Moyano (Arg) Aplicación domótica Federico Castoldi (Arg) How Android APIs Evolved: ViewFlipper vs. ViewPager Enrique Díaz (Mex) Local Storage en HTML5 (FileSystem API - IndexedDB) Cristian Rinaldi (Arg) Google Cloud Storage y Google Prediction API Matias Molinas (Arg) Construyendo REST APIs sobre App Engine usando Google Gabriel Kouyoumdijan (Uruguay) Cloud Endpoints
  • 3. Conociendo el API Maps Javascript Juan José Rodríguez Perú
  • 4. ¿Cuál es la misión de Google?
  • 5. Google Maps ●Mapas e imágenes ●Vistas en panorámicas y en 3D. ●Vistas panorámicas del mundo. ●Vista y exploración en tiempo real de calles. ●Vistas de los lugares específicos. ●Obtención de ruta. ●Ruta basado en medio de transporte. ●Obtención de la distancias. ●Y mucho más…
  • 7. API MAPS V3 Versión basado en JS API ● Rendimiento optimizado. ● Diseñado para móviles. ● Estructura MVC.
  • 9. Google Maps para móviles
  • 10. Google Maps para móviles
  • 11. API MAPS V3 Desarrollo para móviles Nativo VS Web
  • 12. API MAPS V3 Nativo Desarrollador Usuario +1 +1 Aplicaciones muy potentes con uso del hardware Uso del hardware del dispositivo. del dispositivo. -1 -1 Más costoso de desarrollo/mantenimiento Actualizaciones manuales Actualizaciones se limitan a las versiones
  • 13. API MAPS V3 Web Desarrollador Usuario +1 +1 Un desarrollo y podría ser compatible con la Actualizaciones automáticas mayoria de dispositivos mediante navegadores. Resulta menos costoso de desarrollar y mantener. Facil uso Ejecución de funciones tales como hacer clic, ampliar, arrastrar, obtener ubicación actual, buscar un lugar, ejecutar check-in, entre -1 -1 Limitaciones con uso de hardware Limitaciones con uso de hardware
  • 14. Adrian Graham + = API Google Maps + HTML5 = Una nueva era de aplicaciones móviles +Almacenamiento local, almacenamiento en caché de aplicación, y la geolocalización de Google Maps JavaScript API tanto para escritorio y web móvil.
  • 15. API MAPS V3 WebView Android API Maps URL Iphone Desarrollador UIWebView Esquema general
  • 16. API MAPS V3 Demo 1.Crear el mapa con JavaScript 2.Crear el WebView - Android 3.Crear el UIWebView en Iphone
  • 17. API MAPS V3 Diseño basado en Web con compatibilidad para móviles ●Propiedad navidator.userAgent function detectBrowser() { var useragent = navigador.userAgent; var mapdiv = document.getElementById(“map_canvas”); if (useragent.indexOf(‘iphone’ != -1 || useragent.indexOf(‘Android’) !=-1) { mapdiv.style.width = ‘100%’; mapdiv.styleheight = ‘100%’; }else{ mapdiv.style.width = ‘600px’; mapdiv.styleheight = ‘800px’; } }// Fin de método detectBrowser
  • 18. API MAPS V3 ¿Qué camino tomar?
  • 19. API MAPS V3 Proyecto USMP Mobile ●Ampliar los canales de servicios para alumnos y docentes. Aprovechar todo el potencial de los dispositivos ● móviles. ●Mejorar la experiencia de nuestros usuarios.
  • 20. API MAPS V3 Proyecto USMP Mobile
  • 21. API MAPS V3 Proyecto USMP Mobile Geolocalización de facultades ● WebView CMS Latitud Longitud
  • 22. API MAPS V3 Implementado CMS En proceso IPHONE WEB
  • 23. API MAPS V3 Proyecto USMP Mobile “Reutilizamos el desarrollo y lo hacemos compatible para diversas plataformas en base a nuestra necesidad”
  • 25.
  • 26.
  • 27.
  • 28.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 53. Presentation Bullet Slide Layout ● Titles are formatted as Open Sans with bold applied and font size is set at 30pts ● Vertical position for title is .3” ● Vertical position for bullet text is 1.54” ● Title capitalization is title case ● Subtitle capitalization is title case ● Titles and subtitles should never have a period at the end
  • 54. LocalStorage en HTML5 Cristian Rinaldi Argentina
  • 56. File API File El objeto File provee información sobre el Archivo, este Objeto generalmente es obtenido desde el FileList, DataTransfer o creado con el FileSystem API FileList Este objeto es obtenido desde la propiedad files del elemento input Blob Este objeto representa información binaria inmutable y permite acceso a rangos de bytes dentro del Blob, pero en Blobs separados FileReader Provee métodos para la lectura de File y Blob Uri schene Se utilizan datos binarios como archivos, por lo que puden ser referenciados desde la app web. Por ejemplo: blob:550e8400-e29b-41d4-a716-446655440000#aboutABBA, puede ser utilizado en el atributo src del elemento img
  • 57. File API - Recuperando Archivos <input type="file" id="files" name="files[]" multiple /> //Existe soporte de File API if (window.File && window. FileReader && window. FileList && window. Blob) { // Success!! } else { alert('File API no esta soportada por el navegador' ); } function onChange(evt) { var files = evt.target.files; // Objeto FileList var output = []; for (var i = 0, f; f = files[i]; i++) { output.push( '<li><strong>' , escape(f.name), '</strong> (' , f.type || 'n/a', ') - ', f.size, ' bytes, last modified: ' , f.lastModifiedDate.toLocaleDateString(), '</li>'); } document.getElementById( 'list').innerHTML = '<ul>' + output.join( '') + '</ul>'; } document.getElementById( 'files').addEventListener( 'change', onChange, false);
  • 58. File API - Drag & Drop <div id="drop_zone" >Drop files here </div> <output id="list"></output> function onDrop(evt) { evt.stopPropagation(); evt.preventDefault(); var files = evt.dataTransfer.files; // Objecto FileList var output = []; for (var i = 0, f; f = files[i]; i++) { //TODO f.name, f.size, f.lastModifiedDate, f.type } document.getElementById( 'list').innerHTML = '<ul>' + output.join( '') + '</ul>'; } function onDragOver(evt) { evt.stopPropagation(); evt.preventDefault(); evt.dataTransfer.dropEffect = 'copy'; } }
  • 59. File API - FileReader FileReader.readAsBinaryString(Blob|File) La propiedad result contendra la informacon del File o Blob como un String binario. FileReader.readAsText(Blob|File, opt_encoding) La propiedad result contendra la informacon del File o Blob como un string de texto, por defecto el string es codificado en UTF-8. FileReader.readAsDataURL(Blob|File) La propiedad result contendra el contenido del Blob o File codificado como una URL data data:[<MIME-type>][;charset=<encoding>][;base64],<data> FileReader.readAsArrayBuffer(Blob|File) La propiedad result contendra el contenido del Blob o File como un ArrayBuffer
  • 60. FileSystem API (Asynchronous API) - Directory and System El API de File System, simula un file system local que las aplicaciones web pueden navegar e interactuar. Utilizando esta podrán hacer aplicaciones que lean, escriban, creen archivos y directorios en el Sistema de Archivos virtual. Este API interactúa con otras APIs relacionadas, por ejemplo File Writer API que esta construida sobre File API, cada API agrega funcionalidades particulares LocalFileSystem Tiene dos métodos globales para el acceso al FileSystem: requestFileSystem() y resolveLocalFileSystemURL() FileSystem Representa el FileSystem Entry Representa una entrada del FileSystem DirectoryEntry La propiedad result contendra el contenido del Blob o File como un ArrayBuffer DirectoryReader Por medio de éste podremos listar los archivos y directorios de un directorio FileError Este objeto es el que contedrá el error en el caso que exista uno en el procesamiento de los método asincrónicos
  • 61. FileSystem API (Asynchronous API) - Entry Métodos void getMetada (in MetadataCallback successCallback, in optional ErrorCallback errorCallback); void moveTo (in DirectoryEntry parent, optional DOMString newName, in optional EntryCallback successCallback, in optional ErrorCallback errorCallback); void copyTo (in DirectoryEntry parent, in optional DOMString newName, in optional EntryCallback successCallback, in optional ErrorCallback errorCallback); void toURL (in optional DOMString mimeType); void remove (in VoidCallback successCallback, in optional ErrorCallback errorCallback); void getParent (in EntryCallback successCallback, in optional ErrorCallback errorCallback);
  • 62. FileSystem API (Asynchronous API) - Apertura FS window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, function( filesystem) { fs = filesystem; loadFs(); }, errorHandler); window.webkitStorageInfo.requestQuota(PERSISTENT, 15 * 1024 * 1024, function(grantedBytes) { window.requestFileSystem(PERSISTENT, grantedBytes, function( filesystem) { fs = filesystem; actualDirectory = fs.root; loadFs(); }, errorHandler); }, errorHandler);
  • 63. FileSystem API (Asynchronous API) - Creando Directorios function onFs(fs){ fs.root.getDirectory( 'Documents' , {create: true}, function(directoryEntry){ //directoryEntry.isFile === false //directoryEntry.isDirectory === true //directoryEntry.name === 'Documents' //directoryEntry.fullPath === '/Documents' }, errorHandler); }
  • 64. FileSystem API (Asynchronous API) - Creando Archivos function onInitFs(fs) { fs.root.getFile( 'log.txt', {create: true}, function(fileEntry) { // Crea un Objeto FileWriter fileEntry.createWriter(function(fileWriter) { fileWriter.onwriteend = function(e) { console.log( 'Write completed.' ); }; fileWriter.onerror = function(e) { console.log( 'Write failed: ' + e.toString()); }; var blob = new Blob([ 'Creamos nuestro File!!!!!!!' ], { type : 'text/plain' }); fileWriter.write(blob); }, errorHandler); }, errorHandler); }
  • 65. FileSystem API (Asynchronous API) - Importando directorios <input type="file" multiple webkitdirectory ="" mozdirectory ="" directory=""> function onChange(e) { e.stopPropagation(); e.preventDefault(); var entries = e.target.webkitEntries; // Tenemos todas como Entradas (Entry). [].forEach.call(entries, function(entry) { // Copia la entrada al FS entry.copyTo(fs.root, null, function(copiedEntry) { //TODO }, onError); }); }
  • 66. FileSystem API (Asynchronous API) - Drag and Drop Directorios function onDrop(e) { e.preventDefault(); e.stopPropagation(); var items = e.dataTransfer.items; for (var i = 0, item; item = items[i]; ++i) { var entry = item.webkitGetAsEntry(); // Si es un directorio copia la Entrada al FS if (entry.isDirectory) { entry.copyTo(fs.root, null, function(copiedEntry) { // TODO }, errorHandler); } } }
  • 67. FileSystem URL // filesystem:http://<origin>/<temporary|persistent>/<resource.png ... case 'image/jpeg' : var img = document.createElement( 'img'); img.src = fileEntry.toURL(); meta.appendChild(img); break; ... window.resolveLocalFileSystemURL = window.resolveLocalFileSystemURL || window.webkitResolveLocalFileSystemURL; ... window.resolveLocalFileSystemURL(fileSystemPath + path, function(dirEntry) { var dirReader = dirEntry.createReader(); var dirs = []; dirReader.readEntries( function(dirs) { //TODO }, errorHandler); }, errorHandler); ...
  • 68. Google Cloud Storage y Google Prediction API Matias Molinas Argentina
  • 69. Qué es Google Cloud Storage? ● Es un servicio REST ● En la infraestructura de Google ● Para almacenar datos ilimitados
  • 70. Qué es Google Cloud Storage? ● Puede guardar objetos de hasta 5T ● Se organizan en buckets ● El usuario les asigna una key unica
  • 71. Google Cloud Storage ● Interoperabilidad: con Amazon S3 y Eucalyptus ● Consistencia: uploads atomicos ● Control de Acceso: access control list (ACLs)
  • 72. Google Cloud Storage ● Herramientas: ● Google Storage Manager (un explorer.. ) https://storage.cloud.google.com ● gsutil (linea de comandos) http://code.google.com/p/gsutil/
  • 73. Google Cloud Storage ● Como activarlo? ● Crear un proyecto en la consola de APIs de Google https://code.google.com/apis/console/ ● Activar el servicio en ese proyecto
  • 74. Google Cloud Storage ● Lo podemos utilizar desde: ● Las aplicaciones de Google ● Mensajes XML o JSON ● Desde APIs que encapsulan la mensajeria
  • 75. Google Cloud Storage ● Casos de éxito: ● Ubisoft, los utiliza para guardar datos de niveles de juegos de Chrome
  • 77. Google Cloud Storage - Ejemplo
  • 78. Google Cloud Storage ● Otras APIs que trabajan con Cloud Storage: ● Google Prediction API ● BigQuery
  • 79. Google Prediction API ● Qué es Google Prediction API? ● Es un servicio en la nube de "Aprendizaje automático"
  • 80. Google Prediction API ● Para qué sirve? ● Análisis de sentimientos del cliente ● Detección de spam ● Ruteo de mensajes inteligente ● Clasificacion de documentos y correos electrónicos
  • 81. Google Prediction API ● Para qué sirve? ● Identificación de consumidores que pueden dejar de utilizar su servicio o producto ● Recomendaciones ● inducir al cliente a comprar productos más caros, actualizaciones u otros add- ons
  • 82. Google Prediction API ● Para qué sirve? ● Diagnostico médico ● Identificación de actividad sospechosa ● Mucho más ...
  • 83. Google Prediction API ● Que es Machine Learning? ● El Aprendizaje Automático es una rama de la Inteligencia Artificial cuyo objetivo es desarrollar técnicas que permitan a las computadoras aprender.
  • 84. Google Prediction API ● Que nos simplifica Prediction API? ● Selecciona el algoritmo más adecuado en forma automatica ● Escala ● Simplemente consumimos un servicio REST
  • 85. Google Prediction API ● Como lo podemos utilizar? ● Tenemos que crear un set de datos ● Tiene que ser representativo! ● Tiene que responder lo que esperamos que resuelva el servicio! ● Es el paso más critico
  • 86. Google Prediction API ● Ejemplo: ● "French", "«Eh! votre dépense», v ● "Spanish", " Esto es una prueba ● "English", "'He took me for his h ● ● "Spanish", "YO, EL REY." ● ● "English", "'Well, perhaps you ha
  • 87. Google Prediction API ● Lo dos más importantes : ● La formulación correcta de la pregunta que va a responder el servicio ● Contar con un set de datos que provee ejemplos suficientes para entrenar el servicio
  • 88. Google Prediction API ● Pero, que es una predicción?? ● Dado un item, predecir un valor numerico ● Dado un item, predecir una categoría
  • 89. Google Prediction API ● Ejemplo, valores numéricos: ● Set de datos: Temperatura, Dia del año, Ciudad, Clima ● Podemos predecir la temperatura (numérico) ● (Modelo de regresión)
  • 90. Google Prediction API ● Ejemplo, categorías: ● Set de datos: Tipo de Email (Spam/Normal), Motivo ● Podemos predecir si es Spam (categoría) ● (Modelo de categorización)
  • 91. Google Prediction API ● Entrenamiento: ● El set de datos de entrenamiento lo debemos subir a Google Cloud Storage ● Formato: Un archivo CSV (datos separados por coma)
  • 92. Google Prediction API ● Entrenamiento: ● Podemos utilizar el API desde una librería ● Podemos utilizarla desde el Google APIs Explorer
  • 93. Google Prediction API ● Entrenamiento via Google APIs Explorer: ● invocamos el método trainedmodels.insert() ● como parámetro pasamos la ruta a nuestro archivo en el cloud storage
  • 94. Google Prediction API ● Entrenamiento via Google APIs Explorer: ● invocamos el método trainedmodels.insert() ● como parámetro pasamos la ruta a nuestro archivo en el cloud storage
  • 95. Google Prediction API ● El mismo Casos de Exito, Ford: ● Se utiliza para optimizar el uso de combustible y energia en automóviles híbridos ● El automóvil aprende de los trayectos que normalmente realiza el conductor la estrategia para el ahorro de energía
  • 96. Google Prediction API Preguntas?
  • 97. Construyendo REST APIs sobre Google App Engine Gabriel Kouyoumdijan Uruguay
  • 98. Objetivos Beneficios de usar AppEngine como backend Introducción a Google Cloud Endpoints
  • 100. Arquitectura Backend Clients Seguridad? Autenticación y autorización JavaScript Web App DB API wrapper API Business Java Android App logic API wrapper Otros Obj. C iOS App servicios API wrapper
  • 101. Antes de salir a producción... ■ Estimar la carga ■ Comprar y configurar servidores ■ Configurar balanceador de cargas
  • 102. Luego... ■ Tirar a la basura las estimaciones previas ■ Comprar y configurar más servidores ■ Reconfigurar balanceador de cargas
  • 103. Además ■ Mantener el middleware ■ Ajustar balanceador de carga Poco tiempo para: ■ Agregar nuevas features ■ Mejorar UI ■ Analizar estrategias de monetización
  • 104. Google App Engine ■ Escala automatico ■ Facil comenzar a usarlo ■ Facil de mantener ■ Simple configuración y deployment ■ Pago por lo que uso
  • 105. Usando App Engine como backend Clients JavaScript Web App Datasto API wrapper re API Java Android App Business logic API wrapper AppEngine Obj. C iOS App Services API wrapper
  • 107. Google Cloud Endpoints Necesitamos: ■ SDK App Engine http://goo.gl/BVr5g ■ Endpoint trusted tester program http://goo.gl/VJmpP ■ Google Plugin for Eclipse http://goo.gl/CL1HE Luego: 1. Escribir nuestro código 2. Anotar métodos 3. Generar client libraries
  • 108. Google Cloud Endpoints Anotaciones: ■ @Api indica que la clase es una API ■ @ApiMethod indica que el método es un método de la API ■ @Named indica que un argumento es un parámetro en un request
  • 109. Google Cloud Endpoints Ejemplo: @Api (name = "tasklist") public class Task{ @ApiMethod (name = "task.get") public Task get(@Named("id") String id){ PersistenceManager pm = getPersistenceManager(); Task task = pm.getObjectById (Task.class, id); return task; } }
  • 110. Muchas Gracias! +Gabriel Kouyoumdjian @gabrielkou gabriel.kb@gdgroups.org gkcodelog.blogspot.com +GDG Uruguay
  • 111. Presentation Bullet Slide La ● Titles are formatted as Open Sans with bold applied and font size is set at 30pts ● Vertical position for title is .3” ● Vertical position for bullet text is 1.54” ● Title capitalization is title case ● Subtitle capitalization is title case ● Titles and subtitles should never have a period at the end
  • 112. Liquid Galaxy Josue Basurto y Ricardo Rosales Tijuana, México
  • 114. Lo importante (Google Earth Home Folder/drivers.ini) ; ViewSync settings ViewSync/send = true ViewSync/receive = false ; If send == true, sets the IP where the datagrams are sent ; Can be a broadcast address (e.g. 192.168.1.254 sometimes) ViewSync/hostname = SLAVE_IP_GOES_HERE ViewSync/port = 21567 ; For video caves, we typically want the slave screens to look to the ; left or right (yawOffset) of where the master is looking ViewSync/yawOffset = 0 ViewSync/pitchOffset = 0.0 ViewSync/rollOffset = 0.0 ViewSync/horizFov = 36.5
  • 115. Veamos
  • 116. Veamos
  • 117. <Thank You!> developers.google.com { solsona | nickbortolotti } @google.com @ { solsona | nickbortolotti }