Monday, November 2, 2015

Crossfit Chess 1.0: Zero to App Android (Parte II)

En el post anterior vimos los pasos básicos de la creación de la aplicación Crossfit Chess versión 1.0

Hoy vemos como agregar otros componentes básicos, concretamente agregaremos una ProgressBar y consumiremos un recurso Json (en el backend de heroku) con la libreria Gson

Comencemos

Paso 03 - Agregando un Progress Bar

   



Y en codigo java agregamos:
   

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);







Y en también la siguiente clase java encapsulamos:
   
/**
* Encapsula el prendido y apagado de la ProgressBar
*/
public static class MyProgressBar {

private static ProgressBar indicadorProgreso;
private static boolean isOff = true;

public static void switchProgressBar(AppCompatActivity activity) {
indicadorProgreso = MyProgressBar.getInstance(activity);
if (isOff) {
MyProgressBar.ON();
} else {
MyProgressBar.OFF();
}
}

private static ProgressBar getInstance(AppCompatActivity activity) {
if (indicadorProgreso == null) {
indicadorProgreso = (ProgressBar)activity.findViewById(R.id.indicador_progreso);
}

return indicadorProgreso;
}

private static void OFF() {
indicadorProgreso.setVisibility(View.GONE);
isOff = true;
}

private static void ON() {
indicadorProgreso.setVisibility(View.VISIBLE);
isOff = false;
}
}



Veamos como agregamos la progress bar:





Sobre el activity

Agregamos el código XML de la progress bar que mencionábamos más arriba.
Y la clase Java que hicimos para encapsular

El resultado:



De esa forma se ve la progress bar activa/inactiva


Paso 04: Parseamos un Json

Para parsear un Json, que es:






Agregamos las dependencias de GSON en el build.gradle

Una clase para la abstracción del objeto que vamos a recibir:

Quise agregar código para invocar al Gson desde los Junit pero no funciono... no lo repliquen, o háganlo mejor :)
 El resultado:
Pero desde el Main Activity anduvo ok:

O sea, recuperamos el Json del servidor

En el proximo post, tomaremos esas imágenes y las mostraremos en la aplicación.



Labels: , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home