SlideShare uma empresa Scribd logo
1 de 19
¿Qué necesitamos?
Aplicación Android
Aplicación Web
Base de datos
Manos a la obra!
Flujo general
Usuario
ingresa
registro
Iniciar
conexión a
servidor
Enviar
registro
Recibir
registro
Almacenar
en base de
datos
Enviar
registros
almacenados
Recibir y
mostrar
registros
JSON
• JavaScript Object Notation
• Define un formato para el almacenamiento e
intercambio de información
• Alternativa a XML en AJAX
• Utilizado por Google, Yahoo, Facebook,
Twitter
• Información técnica:
– JSON Object
– JSON Array
JSON
• Ejemplo de JSON Array
• Ejemplo de JSON Object
• Ejemplo de JSON Array con JSON Object
["Elemento 1","Elemento 2"]
{ "Campo 1":"Valor 1" , "Campo 2":"Valor 2" }
{ "empleados": [
{ "nombre":"Juan" , "apellido":"Perez" },
{ "nombre":"Ana" , "apellido":"Gomez" },
{ "nombre":"Pedro" , "apellido":"Hernandez" }
] }
Transmisión de datos
¿Qué hay en el servidor?
• URL:
http://pruebaandroid.comyr.com/insertar.php
PHP
• Recepción de datos
• Envío de datos
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
insertarPersona($nombre, $apellido);
$arrPersonas = array();
llenarArreglo();
echo json_encode($arrPersonas);
¿Qué hay en Android?
Desarrollo de App
Permiso
Internet
Crear tarea
asíncrona
Inicializar
conexión
Agregar
parámetros
Post Get
Convertir a
string
Decodificar
JSON
Archivo manifiesto
• Agregar permiso de conexión a internet
<uses-permission android:name="android.permission.INTERNET"/>
Tareas asíncronas en Android
• AsyncTasks
public class Tarea extends AsyncTask<Params, Progress, Result>
{
protected Result doInBackground(Params... p)
{ }
protected void onPreExecute()
{ }
protected void onProgressUpdate (Progress... values)
{ }
protected void onPostExecute (Result result)
{ }
}
Comunicación con servidor
• Inicializar
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://pruebaandroid.comyr.com/insertar.php");
Comunicación con servidor
• Agregar parámetros para el Post
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("nombre", nombre));
nameValuePairs.add(new BasicNameValuePair("apellido", apellido));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Comunicación con servidor
• Ejecutar la petición POST:
• Obtener la respuesta del servidor:
• Transformar el InputStream a String, utilizando la
función convertStreamToString() tomada de:
– senior.ceng.metu.edu.tr
HttpResponse response = httpclient.execute(httppost);
InputStream is=response.getEntity().getContent();
String datos = convertStreamToString(is);
Decodificar datos JSON
• Crear un arreglo JSON vacío
• Crear un arreglo JSON a partir de un String
• Obtener dato del arreglo JSON
JSONArray jsonArreglo = new JSONArray();
try {
jsonArreglo = new JSONArray(strMisDatos);
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
jsonArreglo.get(i).toString();
Código fuente disponible en:

Mais conteúdo relacionado

Mais procurados

The roadmap for sql server 2019
The roadmap for sql server 2019The roadmap for sql server 2019
The roadmap for sql server 2019Javier Villegas
 
Oracle Database Performance Tuning Concept
Oracle Database Performance Tuning ConceptOracle Database Performance Tuning Concept
Oracle Database Performance Tuning ConceptChien Chung Shen
 
1 tutorial de mongo db
1 tutorial de mongo db1 tutorial de mongo db
1 tutorial de mongo db.. ..
 
Triplestore and SPARQL
Triplestore and SPARQLTriplestore and SPARQL
Triplestore and SPARQLLino Valdivia
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaDaniel Arndt Alves
 
Js set timeout & setinterval
Js set timeout & setintervalJs set timeout & setinterval
Js set timeout & setintervalARIF MAHMUD RANA
 
De Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareDe Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareJC_Diaz_Belmonte
 
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablasPostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablasNicola Strappazzon C.
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 
Models and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and HobgoblinsModels and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and HobgoblinsRoss Tuck
 
Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet Dr. Volkan OBAN
 
Mapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping LanguageMapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping Languageandimou
 
Dom(document object model)
Dom(document object model)Dom(document object model)
Dom(document object model)Partnered Health
 
Getweeklyhoursbyuser
GetweeklyhoursbyuserGetweeklyhoursbyuser
Getweeklyhoursbyuserhasheemm
 
JAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOJAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOAndré Victor
 
CSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesCSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesAndreas Jung
 

Mais procurados (20)

PROCESSOR AND CONTROL UNIT
PROCESSOR AND CONTROL UNITPROCESSOR AND CONTROL UNIT
PROCESSOR AND CONTROL UNIT
 
The roadmap for sql server 2019
The roadmap for sql server 2019The roadmap for sql server 2019
The roadmap for sql server 2019
 
PostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - TablasPostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - Tablas
 
Oracle Database Performance Tuning Concept
Oracle Database Performance Tuning ConceptOracle Database Performance Tuning Concept
Oracle Database Performance Tuning Concept
 
1 tutorial de mongo db
1 tutorial de mongo db1 tutorial de mongo db
1 tutorial de mongo db
 
Triplestore and SPARQL
Triplestore and SPARQLTriplestore and SPARQL
Triplestore and SPARQL
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools short
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da Disciplina
 
Js set timeout & setinterval
Js set timeout & setintervalJs set timeout & setinterval
Js set timeout & setinterval
 
De Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareDe Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion Middleware
 
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablasPostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Models and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and HobgoblinsModels and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and Hobgoblins
 
Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet
 
Mapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping LanguageMapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping Language
 
Dom(document object model)
Dom(document object model)Dom(document object model)
Dom(document object model)
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Getweeklyhoursbyuser
GetweeklyhoursbyuserGetweeklyhoursbyuser
Getweeklyhoursbyuser
 
JAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOJAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTO
 
CSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesCSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniques
 

Semelhante a Desarrollo de aplicación Android con conexión a servidor y manejo de datos JSON

Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCarlos Azaustre
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHAlejandro Esquiva Rodriguez
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RSVortexbird
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQueryDanae Aguilar Guzmán
 
Operadores para json en pg 9.2
Operadores para json en pg 9.2Operadores para json en pg 9.2
Operadores para json en pg 9.2Anthony Sotolongo
 
Creacion Apirest Back{4}app
Creacion Apirest Back{4}appCreacion Apirest Back{4}app
Creacion Apirest Back{4}appblackmatt
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js IntroduccionMayer Horna
 
RESTful Para todos by Diego Sapriza
RESTful Para todos by Diego SaprizaRESTful Para todos by Diego Sapriza
RESTful Para todos by Diego Sapriza.NET Conf UY
 
Seminario html5
Seminario html5Seminario html5
Seminario html5UDECI
 
Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDayAsier Marqués
 
Presentacionh HDD Herramienta de Documentalista
Presentacionh HDD Herramienta de DocumentalistaPresentacionh HDD Herramienta de Documentalista
Presentacionh HDD Herramienta de Documentalistaguest600f7
 
12.android servicios web
12.android   servicios web12.android   servicios web
12.android servicios webguidotic
 

Semelhante a Desarrollo de aplicación Android con conexión a servidor y manejo de datos JSON (20)

16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
Automatic API REST Droidcon
Automatic API REST DroidconAutomatic API REST Droidcon
Automatic API REST Droidcon
 
Json
JsonJson
Json
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 
Operadores para json en pg 9.2
Operadores para json en pg 9.2Operadores para json en pg 9.2
Operadores para json en pg 9.2
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Creacion Apirest Back{4}app
Creacion Apirest Back{4}appCreacion Apirest Back{4}app
Creacion Apirest Back{4}app
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
 
RESTful Para todos by Diego Sapriza
RESTful Para todos by Diego SaprizaRESTful Para todos by Diego Sapriza
RESTful Para todos by Diego Sapriza
 
Seminario html5
Seminario html5Seminario html5
Seminario html5
 
Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDay
 
Presentacion Proyecto Herramienta de Documentalista
Presentacion Proyecto Herramienta de DocumentalistaPresentacion Proyecto Herramienta de Documentalista
Presentacion Proyecto Herramienta de Documentalista
 
Presentacionh HDD Herramienta de Documentalista
Presentacionh HDD Herramienta de DocumentalistaPresentacionh HDD Herramienta de Documentalista
Presentacionh HDD Herramienta de Documentalista
 
RAML
RAMLRAML
RAML
 
12.android servicios web
12.android   servicios web12.android   servicios web
12.android servicios web
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (10)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Desarrollo de aplicación Android con conexión a servidor y manejo de datos JSON

  • 1.
  • 2.
  • 4. Manos a la obra!
  • 6. JSON • JavaScript Object Notation • Define un formato para el almacenamiento e intercambio de información • Alternativa a XML en AJAX • Utilizado por Google, Yahoo, Facebook, Twitter • Información técnica: – JSON Object – JSON Array
  • 7. JSON • Ejemplo de JSON Array • Ejemplo de JSON Object • Ejemplo de JSON Array con JSON Object ["Elemento 1","Elemento 2"] { "Campo 1":"Valor 1" , "Campo 2":"Valor 2" } { "empleados": [ { "nombre":"Juan" , "apellido":"Perez" }, { "nombre":"Ana" , "apellido":"Gomez" }, { "nombre":"Pedro" , "apellido":"Hernandez" } ] }
  • 9. ¿Qué hay en el servidor? • URL: http://pruebaandroid.comyr.com/insertar.php
  • 10. PHP • Recepción de datos • Envío de datos $nombre = $_POST['nombre']; $apellido = $_POST['apellido']; insertarPersona($nombre, $apellido); $arrPersonas = array(); llenarArreglo(); echo json_encode($arrPersonas);
  • 11. ¿Qué hay en Android?
  • 12. Desarrollo de App Permiso Internet Crear tarea asíncrona Inicializar conexión Agregar parámetros Post Get Convertir a string Decodificar JSON
  • 13. Archivo manifiesto • Agregar permiso de conexión a internet <uses-permission android:name="android.permission.INTERNET"/>
  • 14. Tareas asíncronas en Android • AsyncTasks public class Tarea extends AsyncTask<Params, Progress, Result> { protected Result doInBackground(Params... p) { } protected void onPreExecute() { } protected void onProgressUpdate (Progress... values) { } protected void onPostExecute (Result result) { } }
  • 15. Comunicación con servidor • Inicializar HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://pruebaandroid.comyr.com/insertar.php");
  • 16. Comunicación con servidor • Agregar parámetros para el Post List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("nombre", nombre)); nameValuePairs.add(new BasicNameValuePair("apellido", apellido)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  • 17. Comunicación con servidor • Ejecutar la petición POST: • Obtener la respuesta del servidor: • Transformar el InputStream a String, utilizando la función convertStreamToString() tomada de: – senior.ceng.metu.edu.tr HttpResponse response = httpclient.execute(httppost); InputStream is=response.getEntity().getContent(); String datos = convertStreamToString(is);
  • 18. Decodificar datos JSON • Crear un arreglo JSON vacío • Crear un arreglo JSON a partir de un String • Obtener dato del arreglo JSON JSONArray jsonArreglo = new JSONArray(); try { jsonArreglo = new JSONArray(strMisDatos); } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } jsonArreglo.get(i).toString();