User Experience! Muy importante
Si tengo una buena idea pero no la implemento bien, será una aplicación desinstalada!
UI!! User Interface
Servicios: son parecidos a la activity pero sin user interface. Pueden ejecutar código en segundo plano.
onPause->onStop->onDestroy
Servicios: en segundo plano

Cuando levantas un servicio NO se levanta otro proceso!
Se puede levantar un proceso desde un servicio, pero el servicio meramente por ser un servicio NO se ejecuta como proceso separado.
Broadcast Receiver
Services, Broadcast Receiver son cosas que hemos de poner en el Manifest

Broadcast Receiver estan escuchando eventos a través de aplicaciones
LocalBroadcastReceiver: herencia que se centra exclusivamente en evento que se producen en tu propia aplicación
“Ordered Broadcasts”
Hoy aprenderemos… nos acercará al programador profesional. Uso de librerias de terceros
Librerías muy utilizadas: Volley (propia de Android): sirve para hacer peticiones asíncronas.
GSON: hacer peticiones asíncronas y el resultado JSON, que lo puedas mapear directamente a tus objetos. Forma compactada, automatizada.
Otra importante: Retrofit

Ejercicio captura de foto

Servicios vinculados o binded


Crea Receiver
Crear if+Acti
Registrar BR x código

-Comentario XMLs, CTRL+/
Best Practice:
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(receiver);
}
Java es MUY tipificado (tipos de variables, exigencia)
PHP es poco tipificado
Librerias: para ser más productivos

En empresas, es fácil tener que trabajar con librerias como estas

Volley te permite poner en cola muchas peticiones y él mismo ya las va procesando.
¿Cómo incorporar librerias en el proyecto? A traves del Gradle.
en app, incluir:
dependencies { ... compile 'com.android.volley:volley:1.1.0' }


Sincronizar!!


RequestQueue : cola de peticiones
GSON: https://github.com/google/gson
Coger un json y convertirlo a estructuras de tu propio código o bien al revés: tenemos array de usuarios y lo queremos transofmrar a json
Es decir, sirve para serializar o deserializar información.

PAra usarlo, para incorporarlo al proyecto, en el Gradle, en app, agregar:
implementation 'com.google.code.gson:gson:2.8.4'
TUTORIAL: https://futurestud.io/tutorials/gson-getting-started-with-java-json-


OJO con los bugs de librerías con versiones de Android anteriores! Se suele solucionar teniendo un S.O. de versión superior!
Service, reciver, activity.
Descargar UsuariosRemotos version con libreria GSON

Crear nuevo proyect
UI: Caja texto (numero N) y boton “Aceptar”
Funcionalidad:
Al pulsar boton
el dispositivo debe Vibrar tantas veces como se establezca en N
Timebox: 12:40′ (UI) + esbozo de Funciones
Pistas: Activity + Broadcast Receiver + Permiso
Toast: “mensajito”
imagen.findViewById(R.id.ivImage);

Código fuente “Vibrator” (que también hace 1 foto)
