UNIDAD 3 Flashcards
Cuáles son los principales componentes de UI en las aplicaciones android
● Barra de aplicación: Muestra las acciones más importantes de la pantalla actual. También tiene controles simples para cambiar de pantalla.
● Navigation drawer: permite mostrar las opciones principales de la navegación.
● Área de contenido: el espacio donde se muestra el contenido.
Explicar servicies y tipos
● Componente que permite realizar operaciones de larga duración o trabajos para otros procesos (mecanismo de comunicación entre procesos).
● Ejecuta en un segundo plano.
● No proporciona una interfaz de usuario.
● Ejemplos:
✓ manejar operaciones de red.
✓ reproducir música.
✓ realizar I/O de archivos.
● Tipos:
✓ Primer Plano:
■ Realiza una operación que el usuario puede notar.
■ Deben mostrar una notificación.
■ Continúan ejecutándose aunque el usuario deja de interactuar con
la aplicación.
■ Ejemplo: aplicación de audio usa un servicio en primer plano para
reproducir música.
✓ Segundoplano:
■ Realiza una operación que el usuario no nota directamente.
■ Ejemplo: aplicación usa servicio para comprimir su amacenamiento.
✓ Enlace:
■ Se vincula a él llamando a bindService().
■ Ofrece interfaz cliente servidor que permite que los componentes
interactúen con el servicio, envíen solicitudes, reciban resultados e incluso lo hagan en distintos procesos con la comunicación entre procesos (IPC).
■ Se ejecuta solamente mientras otro componente de aplicación está enlazado a él.
Describir arquitecture de jetpack (ViewModel, repository, Room, etc)
● Colección de librerías que facilitan el diseño robusto, las pruebas y el mantenimiento de las aplicaciones.
● DataBinding: vincula datos observables a elementos de UI de manera declarativa.
● Lifecycles: administra los ciclos de vida de tu actividad y/o fragmento.
● LiveData: notifica las vistas cuando la fuente de datos subyacente cambia.
● Navigation: administra todo lo necesario para la navegación de la aplicación.
● Paging: carga información de una fuente de datos de manera gradual según la demanda.
● Room: acceso fluido a la base de datos SQLite (DataBase,Entity y DAO).
● ViewModel: administra los datos relacionados con la UI de manera optimizada para
los ciclos de vida (persistir la informacion).
● WorkManager: administra las tareas de segundo plano.
Arquitectura de plataforma Android
● Linux Kernel: brinda los servicios básicos (controladores de hardware, procesos y gestión de memoria, seguridad, red y administración de energía) manejados por una versión modificada del kernel de Linux.
● Capa de Abstracción del Hardware (HAL): brinda interfaz que permite comunicarse con los controladores de hardware sin conocer detalles sobre su implementación.
● Servicios de sistema: componentes que se encargan de alguna tarea en particular, permite acceder al hardware.
● Comunicación entre procesos (IPC): mecanismo que permite al framework interactuar con otros fragmentos de código desde un proceso distinto.
● Framework de aplicación: permite desarrollo de aplicaciones sin tener que preocuparse por como acceder al hardware u otros recursos del dispositivo
Puntos de acceso
Posee múltiples puntos de acceso para iniciar la aplicación de distintas maneras, ya sea desde una notificación, de forma normal, desde otra aplicación,etc. En cada uno lo que cambia es el intent-filter del AndoridManifest.xml.
AsyncTask
● Permite realizar tareas asincrónicas en la UI.
● Realiza las operaciones bloqueantes en un thread de trabajo y luego publica los
resultados en el UI thread, sin requerir un manejo de threads.
Como era la estructura de una aplicación android (indicio settings, notificaciones, etc)
● Pantalla principal: muestra diferentes representaciones de la misma información o una faceta funcional completamente diferente de la misma.
● Pantalla de categorías: permiten ahondar en la información ofrecida por la aplicación.
● Pantalla de edición/detalle: permite consumir o crear información.
DIferencia entre Activity y Fragment
● Una activity representa una pantalla de la interfaz de usuario, la cual le permite al usuario interactuar con la a plicación.
● Un fragmento es parte de una actividad que constribuye al UI de la aplicacion.
● No puede existir un fragmento sin una actividad.
● El fragmento permite dividir la pantalla en paneles.
● Tienen distintos ciclos de vida y difieren en cuanto a su manejo del back stack.
Explicar Jetpack
● Es un conjunto de librerías, herramientas y guías para ayudar a los desarrolladores a crear aplicaciones de alta calidad de una manera más sencilla.
● Las librerías forman parte del paquete androidx.*
● Brindan componentes que:
✓ Ayudan a seguir buenas prácticas. ✓ Menos codigo repetitivo.
✓ Simplifican tareas complejas.
● Las componentes son:
✓ Foundation (Android KTX, Android X, Multidex,…)
✓ Architecture (colección de librerías que facilitan el diseño robusto, las
pruebas y el mantenimiento de las aplicaciones: livedata, viewModel, Room,
dataBinding,…)
✓ Behavior
✓ UI
Cómo se declaran los permisos
● Los permisos se especifican en el archivo AndroidManifest.xml mediante la etiqueta (.
Contenidos de notificaciones
- Icono de la app
- Nombre de la app
- Encabezado
- Marca de tiempo
- Indicador de expansión
Cuáles son los tipos de archivos raíz en un proyecto Android
● manifests
● Java
● res
Por que no podes hacer un fetch desde el main thread
Cuando una aplicación realiza un trabajo intensivo o bloqueante (por ejemplo: acceso a la red o una consulta a la base de datos) existe la posibilidad de bloquear el UI thread, provocando que los eventos relacionados con la actualización de la interfaz de usuario no sean procesados y desde la perspectiva del usuario parezca que la aplicación se encuentra colgada (mas de 5 segs ANR).
Cuál es la arquitectura de jetpack. Y porque room es importante para cuando estas sin internet
● Colección de librerías que facilitan el d iseño robusto, las pruebas y el mantenimiento de las aplicaciones.
● DataBinding: vincula datos observables a elementos de UI de manera declarativa.
● Lifecycles: administra los ciclos de vida de tu actividad y/o fragmento.
● LiveData: notifica las vistas cuando la fuente de datos subyacente cambia.
● Navigation: administra todo lo necesario para la navegación de la aplicación.
● Paging: carga información de una fuente de datos de manera gradual según la demanda.
● Room: acceso fluido a la base de datos SQLite.
● ViewModel: administra los datos relacionados con la UI de manera optimizada para
los ciclos de vida (persistir la informacion).
● WorkManager: administra las tareas de segundo plano.
➢ Room es imporante porque permite darle cache a información para poder accederla
sin conexion.
Notificaciones (que tiene que tener, que conviene hacer como buena práctica, y asi)
● Deben tener: ✓ icono de la aplicación, ✓ nombre de la aplicación ✓ encabezado. ✓ marca de tiempo. ✓ indicador de expansión. ✓ titulo. ✓ contenido. ✓ icono. ✓ acciones. ● Se recomienda: ✓ Hacerlas personales. ✓ Navegar al lugar adecuado. ✓ Especificar la prioridad correcta. ✓ Especificar una categoría. ✓ Resumir las notificaciones. ✓ Hacer que las notificaciones sean opcionales. ✓ Usar íconos distintivos.