A8 Dagg
A8 Dagg
MÓVIL
Actividad 3: Proyecto integrador [etapa 3]
1
Introducción
Esta actividad consiste en aplicar los conocimientos adquiridos a lo largo del curso y retomar
lo aprendido en cada una de las actividades realizadas, lo que garantiza la transversalidad
de los contenidos revisados para fortalecer el desarrollo de competencias y lograr el fin de
formación planteado
Objetivo
El objetivo del Proyecto integrador es aplicar los conceptos generales para el diseño y
construcción de una aplicación móvil, pasando por el levantamiento de requisitos y su
prototipado a través del uso de algunas aplicaciones adicionales basados en un entorno
multiplataforma
2
Etapa 1
1. Desarrollar una aplicación móvil funcional y fácil de usar para la gestión de tareas
personales.
2. Implementar funcionalidades CRUD (Crear, Leer, Actualizar, Eliminar) para la gestión
de tareas.
3. Garantizar que la aplicación sea intuitiva y accesible para todos los usuarios.
4. Probar la aplicación para asegurar su correcto funcionamiento y fiabilidad.
Definición.
1. Profesionales y Trabajadores:
o Perfil: Personas que trabajan en oficinas, autónomos, y freelancers que
necesitan gestionar múltiples tareas y proyectos.
o Necesidades: Organización de tareas laborales, gestión de proyectos,
recordatorios de reuniones y plazos.
2. Estudiantes:
o Perfil: Estudiantes universitarios y de secundaria que necesitan mantener un
seguimiento de sus deberes, exámenes, y actividades extracurriculares.
o Necesidades: Planificación de estudio, seguimiento de tareas y exámenes,
organización de horarios y proyectos escolares.
3. Amas de Casa:
o Perfil: Personas que gestionan tareas del hogar y responsabilidades
familiares.
o Necesidades: Organización de actividades diarias, planificación de compras,
gestión de citas y eventos familiares.
4. Pequeños Empresarios y Emprendedores:
3
oPerfil: Propietarios de pequeñas empresas y startups que necesitan
coordinar diversas actividades comerciales y proyectos.
o Necesidades: Gestión de tareas empresariales, seguimiento de clientes,
planificación de eventos y reuniones.
5. Personas con Interés en la Productividad Personal:
o Perfil: Individuos que buscan herramientas para mejorar su eficiencia y
organización personal.
o Necesidades: Seguimiento de metas personales, planificación de actividades
diarias, y mejora en la gestión del tiempo.
Concepto de la App
4
Características Clave:
5
Elección de la Tecnología
1. Escalabilidad y Flexibilidad:
o MongoDB Atlas es una solución de base de datos en la nube altamente
escalable, lo que permite manejar grandes volúmenes de datos y tráfico sin
comprometer el rendimiento. Esto es ideal para una aplicación de gestión de
tareas que puede crecer en número de usuarios y datos.
2. Modelo de Datos NoSQL:
o MongoDB utiliza un modelo de datos basado en documentos (JSON), que
ofrece una gran flexibilidad para almacenar datos no estructurados o
6
semiestructurados. Esto permite una rápida iteración en el diseño de la base
de datos y una fácil adaptación a futuros cambios en los requisitos de la
aplicación.
3. Gestión Automatizada:
o MongoDB Atlas ofrece gestión automatizada de la base de datos, incluyendo
backups, actualizaciones de software, y escalado automático. Esto reduce
significativamente la carga operativa y permite al equipo de desarrollo
centrarse en la creación de características de la aplicación.
4. Alto Rendimiento:
o MongoDB Atlas proporciona alto rendimiento y baja latencia gracias a su
arquitectura distribuida y capacidades de replicación. Esto asegura una
experiencia de usuario fluida y rápida, esencial para una aplicación de
gestión de tareas.
5. Seguridad y Conformidad:
o MongoDB Atlas incluye características avanzadas de seguridad, como cifrado
de datos en reposo y en tránsito, autenticación robusta y auditoría de
seguridad. Además, cumple con diversas normativas de conformidad, lo que
garantiza la protección de los datos de los usuarios.
6. Integración con Swift:
o Existen bibliotecas y SDKs que facilitan la integración de MongoDB con
aplicaciones desarrolladas en Swift. Esto permite una comunicación eficiente
entre la aplicación móvil y la base de datos, asegurando una sincronización
de datos rápida y confiable.
Dado que MyTaskManager está desarrollada en Swift y está optimizada para dispositivos
iOS, la Apple App Store es la plataforma ideal para alcanzar a los usuarios de iPhone y iPad,
quienes son la audiencia objetivo principal de la aplicación.
7
Etapa 2
8
3. Seguridad:
o Swift ofrece características avanzadas de seguridad, como la gestión
automática de memoria y la prevención de errores comunes
(desbordamientos de buffer y referencias nulas). Esto contribuye a la
estabilidad y seguridad de la aplicación.
4. Comunidad y Soporte:
o Con una comunidad activa de desarrolladores y un robusto ecosistema de
recursos, bibliotecas y frameworks, Swift facilita el acceso a soluciones y
soporte durante el desarrollo de la aplicación.
9
Lenguaje y Framework de Interfaz de Usuario: SwiftUI
10
Almacenamiento de Datos en la App
Justificación de la Elección de Almacenamiento Local:
1. Simplicidad y Eficiencia:
o Almacenar los datos directamente en la aplicación simplifica la arquitectura
y reduce la dependencia de servicios externos, lo que puede ser beneficioso
para el rendimiento y la velocidad de la aplicación.
2. Privacidad y Seguridad:
o Mantener los datos de los usuarios dentro de la aplicación mejora la
privacidad y seguridad, ya que no se transmiten datos sensibles a través de
la red. Esto es crucial para una aplicación de gestión de tareas que puede
manejar información personal y confidencial.
3. Desempeño Offline:
o Al almacenar los registros en la misma app, los usuarios pueden acceder y
gestionar sus tareas incluso sin conexión a internet. Esto mejora la usabilidad
y proporciona una experiencia de usuario consistente en cualquier situación.
4. Control Total:
o Al gestionar el almacenamiento de datos internamente, se tiene un control
total sobre la estructura y acceso a los datos, lo que facilita la
implementación de características específicas y personalizadas para la
aplicación.
Interfaces de la App
Descripción General
La interfaz de MyTaskManager está diseñada para ser intuitiva, eficiente y fácil de usar. La
aplicación contará con una única pantalla principal que permite a los usuarios registrar
nuevas tareas y visualizar el listado de tareas existentes. Las acciones de marcar una tarea
como "hecha" o eliminarla se realizarán mediante botones de deslizamiento, facilitando
una interacción rápida y sencilla.
Elementos de la Interfaz
1. Campo de Entrada para Nuevas Tareas:
o Descripción: En la parte superior de la pantalla, se encuentra un campo de
texto donde los usuarios pueden escribir la descripción de una nueva tarea.
11
o Funcionalidad: Al ingresar una tarea y presionar el botón "Agregar", la tarea
se añadirá al listado de tareas.
2. Listado de Tareas:
Especificaciones de Diseño
1. Diseño Minimalista y Limpio:
o La interfaz utiliza un diseño minimalista con colores claros para un aspecto
limpio y moderno.
o La fuente es legible y de tamaño adecuado para facilitar la lectura y la
interacción.
2. Interacción Intuitiva:
o Los elementos de la interfaz están dispuestos de manera lógica, con el campo
de entrada en la parte superior y el listado de tareas debajo.
o Los botones de deslizamiento proporcionan una manera natural e intuitiva
de gestionar las tareas.
3. Retroalimentación Visual:
o Al agregar una tarea, un pequeño mensaje de confirmación aparece
brevemente en la parte inferior de la pantalla.
o Al marcar una tarea como "hecha" o eliminarla, la tarea se resalta
brevemente con un color diferente antes de desaparecer del listado.
12
Flujo de Interacción
1. Agregar una Nueva Tarea:
o El usuario escribe la descripción de la tarea en el campo de entrada.
o El usuario presiona el botón "Agregar".
o La nueva tarea aparece en el listado de tareas.
13
Navegación entre Interfaces
Descripción General
Dado que MyTaskManager está diseñada para ser una aplicación simple y eficiente, todas
las funciones se realizarán en una única interfaz. La navegación dentro de la aplicación será
mínima, enfocándose en la facilidad de uso y la eficiencia en la gestión de tareas. Esto
garantiza que los usuarios puedan realizar todas las acciones necesarias sin necesidad de
cambiar de pantalla, manteniendo la experiencia de usuario fluida y directa.
Interacción dentro de la Única Interfaz
1. Campo de Entrada para Nuevas Tareas:
o Ubicación: Parte superior de la pantalla.
o Funcionalidad: Permite a los usuarios ingresar la descripción de nuevas
tareas.
o Acción: El usuario escribe una nueva tarea y presiona el botón "Agregar" para
que la tarea aparezca en el listado debajo.
2. Listado de Tareas:
o Ubicación: Ocupa la mayor parte de la pantalla, debajo del campo de
entrada.
o Funcionalidad: Muestra todas las tareas registradas. Cada tarea es
interactiva, permitiendo acciones mediante deslizamiento.
o Acción: El usuario puede deslizar cada tarea hacia la izquierda para marcarla
como "hecha" o hacia la derecha para eliminarla.
3. Botones de Deslizamiento:
o Deslizar hacia la Izquierda:
§ Funcionalidad: Revela el botón "Hecho".
§ Acción: El usuario presiona "Hecho" para marcar la tarea como
completada.
o Deslizar hacia la Derecha:
§ Funcionalidad: Revela el botón "Eliminar".
§ Acción: El usuario presiona "Eliminar" para borrar la tarea del listado.
14
Flujo de Navegación
1. Inicio y Registro de Nuevas Tareas:
o Inicio: Al abrir la aplicación, el usuario se encuentra directamente en la
pantalla principal.
o Registro: El usuario puede inmediatamente empezar a escribir una nueva
tarea en el campo de entrada superior y agregarla al listado.
2. Gestión de Tareas:
o Visualización: Las tareas se listan en orden cronológico de adición o por
prioridad, dependiendo de la implementación.
o Interacción:
§ El usuario desliza una tarea hacia la izquierda para marcarla como
"hecha".
§ El usuario desliza una tarea hacia la derecha para eliminarla.
o Retroalimentación: Al realizar cualquiera de las acciones anteriores, la tarea
cambia visualmente o desaparece del listado, proporcionando una
retroalimentación inmediata.
3. Sin Cambios de Pantalla:
o Todas las interacciones se realizan en la misma pantalla, eliminando la
necesidad de navegación adicional entre diferentes interfaces.
o Esto reduce la complejidad y hace que la aplicación sea extremadamente
fácil de usar, asegurando que los usuarios puedan concentrarse en sus tareas
sin distracciones.
15
Etapa 3
Planteamiento
El modelo consta de una clase y esta de difrentes funciones en donde se implementó las
funciones CRUD que se describen a continuación:
CREATE.
El registro de las tareas utiliza la clase NoteViewModel en donde se declaró dos funciones,
en la cual una se encarga de registrar las tareas y la otra se encarga de asignarle las llaves
para el registro en la BD.
16
READ
17
UPDATE
La App debe estar emparejado con un servicio en la nube (Firebase, Azure, MongoDB)
para la base de datos
18
19
3.2 Implementación
Para el desarrollo de la App fue necesario insalar el IDE nativo de Apple XCODE en su
última versión para desarrolladores (15.4)
20
3.3 Pruebas de seguridad
Para el caso de desarrollo de aplicaciones con SwiftUI, decidí utilizar el paquete SwiftLint, el
cual es open source y se integra al IDE Xcode lo cual lo hace mucho más manejable para
desarrollo de aplicaciones en IOS.
SwiftLint
21
22
Pruebas de código estático:
23
• Realizar pruebas dinámicas sobre el funcionamiento de la App
Pruebas dinámicas
24
Registro de Tarea mediante text box
25
Registro de múltimples tareas
26
Funcionalidad de contador de tareas
27
Validación de gestos. Swipe izquierdo en la tarea para marcarlo como completado
28
Las tareas marcadas con el gesto izquierdo mostrarán el botón “Checkmark” en color
verde, lo que indicará que esta tarea ya ha sido completada.
29
Validación de gesto swipe derecho. Eliminar tarea
30
Al hacer el gesto derecho aparecerá el botón “trash” en color rojo, lo que indica que la
tarea se eliminará de la lista, se pedirá doble confirmación o tap en el botón de trash y
posteriomente la tarea marcada se elimina. El contador se actualiza.
31
Actualizar una tarea. Se hace un tap largo sobre la tarea y se podrá editar en el text box
32
33
Al cerrar la aplicación y volver a inicializarla vemos que los registros se guardan gracias
al almacenamiento que se tiene con Firebase / local
34
35
Referencias
• MoureDev By Brais Moure. (s.f) “SWIFT Desde Cero: Primero Pasos en una hora”.
[archivo de video] Recuperado de
https://www.youtube.com/watch?v=kpsVJptSv1U
• Bernal Raspall David. (26 de marzo 2022). AppleSfera. “Ocho recursos y cursos para
aprender a desarrollar en Swifth desde cero”. Recuperado de
https://www.applesfera.com/desarrollo-de-software/ocho-recursos-cursos-para-
aprender-a-desarrollar-swift-cero
• Apple. Com [sitio oficial]. “Swift. Un poderoso lenguaje al alcance de todos para
crear increíbles apps." (s.f). Recuperado de https://www.apple.com/mx/swift/
36