miércoles, 14 de marzo de 2018

Checklist para desarrollo de aplicaciones móviles

He ido repasando diversas recomendaciones de desarrolladores y estudios sobre la industria, y confeccioné esta lista de lo que se debería tener en cuenta al momento de construir una aplicación mobile. Sobre todo si se realiza en forma individual, conviene tener presentes todas estas etapas o hitos, para no dejar nada al azar.



Pasos imprescindibles y convenientes en el desarrollo de aplicaciones móviles:

* DESCRIBIR LA APLICACION
- Qué propósito cumple? Para qué va a servir? Qué necesidades cubre? Qué problemas soluciona?
- Qué tipo de usuarios van a utilizarla?

* SETUP DE REPOSITORIO

* LISTAR REQUERIMIENTOS
- Conformarán el backlog inicial.
- Dejar solo el MVP (Minimum Value Product), quitar todas las funcionalidades que no sean core.
- Sobre la idea o concepto de la app, mirar lo que ya hicieron otros, y ver cómo se podría hacer mejor, más intuitivo, más fácil para el usuario.
- De las funcionalidades y casos de uso, extraer:
- Qué información se va a mostrar al usuario, qué se guardará, cómo se guardará (input para el diseño de base de datos)
- Cómo se va mostrar y agrupar esa información (input para el diseño de pantallas, fragmentos)

* MARKETING (todo el proyecto)
- Crear una landing page. Linkearla desde el app store. Incluir videos, texto de contenido, FAQs, íconos, screenshots, links a todos los stores, códigos QR, links a todas las redes sociales, reviews de usuarios, press kit, etc.
- El landing page debe tener formulario de contacto.
- Configurar redes sociales.
- SEO and app store optimization (ASO)

* BOCETO Y DISEÑO
- Boceto rápido de la estructura y pantallas.
- Especificar los casos de uso de acuerdo a los requerimientos, el flujo de navegación.
- Buscar minimizar la cantidad de gestos o acciones requeridos para las tareas más comunes.
- En papel o herramienta de diagramas.
- Ver templates de apps mobile. Ver apps similares publicadas. Ver qué funciona y qué no.
- Definir qué datos se muestran y se capturan en cada pantalla, y qué datos van de una pantalla a la siguiente.
- Presentar diferentes layouts para cada pantalla. Compararlos, pedir feedback.

* TESTING (todo el proyecto)
    - compatibilidad: probar distintos dispositivos y tamaños de pantalla.
    - interfaz y experiencia de usuario: navegación, flujo, gestos, performance.
    - bajos recursos: probar la app con baja batería, sin señal, etc.
    - seguridad: asegurar la calidad de la integridad, disponibilidad y confidencialidad de los datos de usuario.
    - prueba beta: liberación temprana a un grupo de usuarios para obtener feedback.

* BASE DE DATOS
- Diseñar la base de datos. Qué se va a guardar (local al dispositivo)

* SETUP DE BACKEND
  - APIs, servers y base de datos (en servidor)

* DESARROLLAR PROTOTIPO EJECUTABLE
- Prototipar la estructura en entorno de desarrollo.
- La navegación y experiencia de usuario deben ser fluidas y cómodas.
- El diseño debe ser consistente de pantalla a pantalla, y respetar los estándares de la industria. Ubicación del action bar, botones, etc.
- Agregar validación de datos

* PERSISTENCIA
Acabar el manejo de base de datos. Parametrización, configuración y opciones.

* AJUSTES
Identificación de problemas, refinamiento de detalles de requerimientos y retroalimentación del backlog.

* COMPATIBILIDAD
- Agregar soporte para varias resoluciones y versiones de OS.

* ESTETICA
- Temas, skins y mejoras visuales. Best Practices.

* ESTADISTICAS
- Integrar Analytics.

* UPDATES
- Revisar user feedback y mejorar la app.
- Agregar funcionalidades postergadas.

* LANZAMIENTO
- Tener preparadas para la fecha de lanzamiento Screenshots, imágenes promocionales, descripción, keywords, presskit, videos.
- Analizar con cuidado fecha y hora en que conviene lanzar, e ir anunciándolo en redes con anticipación.
- Publicar en todas las tiendas online al mismo tiempo.
- Actualizar el landing page.