Publicado el 15 de Diciembre del 2018
674 visualizaciones desde el 15 de Diciembre del 2018
102,4 KB
34 paginas
Creado hace 10a (05/03/2015)
Empezar en Android con buen pie
Obture CODE
Cristina Folgueral Gutiérrez @lady_vanilla
Carlos Álvarez Novoa @husky
Consejos para hacer aplicaciones en Android
Los ejemplos son ejemplos
Separa cada aspecto de tu aplicación
Separa cada aspecto de tu aplicación
¿Por qué?
Reutilización, fácil de mantener (para ti y para otros),
solidez frente a cambios
Separa cada aspecto de tu aplicación
Capas
Las que necesites
Nuestras tres: Vistas, Entidades+Modelos y Datos
Separa cada aspecto de tu aplicación
Datos
De donde obtenemos la información
Comunicación con web services, bases de datos o ficheros
Separa cada aspecto de tu aplicación
Entidades + Modelos
Entidades: clases de negocio de tu aplicación
Modelos: usan las Entidades para responder las
necesidades del usuario
Aquí tiene que ir la lógica de tu aplicación
Separa cada aspecto de tu aplicación
Vista
Obligatoriamente Activities y tus clases vista o Fragments
Parte visual
Separa cada aspecto de tu aplicación
Retocar y volver a empezar
Cada proyecto es una oportunidad para utilizar y mejorar
tu arquitectura
Activity pequeña, modelo grande
Activity pequeña, modelo grande
Muy poco código en tu Activity
Solicitar información a los modelos y pintar
Cualquier decisión de negocio la debe tomar el modelo
Activity pequeña, modelo grande
Parte tu vista
Divide una pantalla en tantas vistas como necesites
Enfoca esa división a reutilización
Comunicación entre capas que permita asincronismo
Comunicación entre capas asíncrona
¿Por qué?
Quien pide los datos no tiene por qué saber que tiene que
esperar un tiempo por ellos
Comunicación entre capas asíncrona
¿Cómo lo podemos hacer?
Hay un montón de formas. A nosotros nos gusta utilizar el
bus de eventos y/o funciones de retrollamada (patrón
delegado)
Comunicación entre capas asíncrona
Bus de eventos
Comunica tus módulos de forma eficiente manteniéndolos desacomplados
Comunicación entre capas asíncrona
Retrollamadas
El que hace la petición recibe la respuesta en otro método definido por una
interfaz.
Mantén los 60 fps
Mantén los 60 fps
Hilo principal
Encargado de manejar eventos del sistema, refresco de
pantalla, detección de gestos, etc
Cambiar vista fuera del hilo principal => Excepción
Mantén los 60 fps
Déjalo libre
Petición a la capa de datos, parseo de información,
ordenación: en otro hilo
Mantén los 60 fps
Opciones
AsyncTask: Cola de hilos para ejecutar tareas
Threads
Los hilos hay que pararlos manualmente
Caché, si lo tienes, no lo pidas
Caché, si lo tienes, no lo pidas
Ahorra datos y tiempo
Una buena política de caché permitirá ahorrar datos y
mejorar la experiencia de usuario
Caché, si lo tienes, no lo pidas
Datos frescos VS experiencia de usuario
Factor delicado: caducidad de la caché
Dos tipos de cancelaciones: manual (por acción de
usuario) y automática (al cabo de un tiempo)
Tu paquete Utils
Tu paquete Utils
Tu caja de herramientas
Los trozos de código que se encarguen de tareas
repetitivas (formatear fechas, cadenas, etc) conviértelos
en métodos estáticos
Reutilízalos en todas tus aplicaciones
Hacia dónde nos queremos dirigir
Hacia dónde nos queremos dirigir
Organizar mejor la capa de vista
Implementar patrones que permitan reutilizar partes de
vista y la desacoplen más del resto de capas
MVVM, MVP
Hacia dónde nos queremos dirigir
Testing
Test automatizados en favor de test de aceptación
manuales
Hacia dónde nos queremos dirigir
Refactoring
Introducir la refactorización como parte importante en el
proceso de desarrollo de forma continua
Lee
Lee
Artículos de referencia
Clean architecture en general: http://bit.ly/1GI1Qtw
Clean architecture en Android: http://bit.ly/1zSGtRB
Patrón repositorio: http://bit.ly/1M1HX1w
¡Gracias!
Obture CODE
Cristina Folgueral Gutiérrez @lady_vanilla
Carlos Álvarez Novoa @husky
Comentarios de: Empezar en Android con buen pie (0)
No hay comentarios