REPASO:
Intent: viaje de la primera a la segunda actividad, pero también activan los componentes
Explicitos: conoces el destino
Implicitos: decirle al Sistema Operativo qué quieres hacer… ¿enviar mail? ¿send? ¿editar algo? ¿llamar? ¿solo marcar el telefono? parámetro data (por ejemplo en la llamada es tel:)
tel: se conoce como “esquema”. “https://” también es lo que se conoce como “esquema”.
TAKE_IMAGE
Hay acciones que son solo de ida, pero también de ida y de vuelta. (Nos devuelve tamibén un dato).
startActivity(intent) -> sólo ida
startAtivityForResult -> ida y vuelta
Tienen overload, sobre-cargadas: pueden pasársele diferentes tipos de parámetros.
Hoy tocaremos “SERVICIOS”. startService(i)
Adaptador propio: adaptador custom
Tenemos un DATASOURCE y un Widget capaz de mostrar un conjunto de elementos, que no tienen relacion esntre si.
Pero el adaptador relaciona a los dos.
Obtiene datos de DATASOURCE, y se comunica con el widget. Usa un recurso XML que dice “como se pinta cada item”: puede ser de Android y Propio.
Overriding: sobre-escritura, que puede ser parcial o total
Metodos del adapter
GetView, getCount
Haremos una conexion hacia fuera y parsearlo con JSON
1) Salir a Internet -> Requiere permisos Internet
2) Recoger data (JSON)
3) Tratar data (en el caso de hoy, será añadirlo a una lista)
Gradle sirve para muchas cosas, entre ellas, añadir dependencias
Volley->Libreria Android para hacer comunicaciones asíncronas y GSON es para tratar datos en forma de JSON (parsear datos en JSON). Son librerias muy conocidas.
Square -> Hacen OpenSource. El negocio lo tienen en el soporte. HAcen librerias para Android.
Los S
Historia de usuario:
Como [ROL] quiero que [necesidad] para que [beneficio]
Se usa habitualmente en las metodologías AGILE
Forma de anotar para que lo entienda todo el mundo: niveles técnicos y no técnicos.
- Como Espectador quiero comprar entradas de pruebas para poder disfrutar del deporte elegido
- Como Espectador y padre de familia quiero comprar entradas de pruebas para poder ver espectáctulo deportivo con mis hijos.
Hablamos desde el punto de vista del usuario.
Cada una de estas historias tiene una serie de tareas que salen de esas historias.
Tareas:
Crear UI
Crear clases necesarias…
…
listaJuegos.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
…
});
Vamos a empezar a hablar de internet:
Proyecto “UsuariosRemotos”
Thread = proceso
Android (Linux), va levantando diferentes procesos.
Interesante
Main Thread
Como vamos a lanzar procesos hacia la red, vamos a tener una “Latencia”.
Como tenemos la incertidumbre de que nos abemos lo que va a tardar, tenemos que abrir otro Thread , apartandolo del main Thread.
Si no, se puede producir un ANR = Application Not Responding.
ANR es todo aquello que pueda tardar más de 5 segundos.
ANR>5sg.
Será ese thread el que ira a bbuscar la informacion mediante JSON.
Cuando acabe ese Thread, dejará la informacion en el Thread principal.
Así conseguimos que el main Thread no se queda bloqueado y así el usuario puede hacer otra cosa de mientras: no se le queda bloqueado ni le sale un ANR.
En Android tenemos una clase especial para tareas asíncronas:
Clase: AsyncTask
var myObj = { “name”:”John”, “age”:31, “city”:”New York” };
var myJSON = JSON.stringify(myObj);
window.location = “demo_json.php?x=” + myJSON;
{
“nombre”:”Pepe”,
“apellido”:”Perez”,
“edad”:45,
“hijos”: [{
“nombre”:”Luis”
}],
casado: false,
coche: null
}
https://jsonplaceholder.typicode.com/
https://jsonplaceholder.typicode.com/users
HAn de ser iguales:

“Para usar una clase, la instancio”
string[] es lo mismo que poner String…

No se puede lanzar el mismo Thread a la vez
PErmiso paea internet:


-1 == finalizacion del Stream



Genera Método (fragmenta codigo):

Descargar Código fuente “UsuariosRemotos”
