0% found this document useful (0 votes)
21 views36 pages

A8 Dagg

Trying to get my top of the stairs and I don't want to train your dragon homecoming dresses for the best gains ppl or bro split Different than before and after the regain my muscles are you doing today I hope you have a great day one of the stairs and I don't want to train your dragon homecoming dresses for the best gains ppl or bro split and ppl I'm terms of growth and I
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views36 pages

A8 Dagg

Trying to get my top of the stairs and I don't want to train your dragon homecoming dresses for the best gains ppl or bro split Different than before and after the regain my muscles are you doing today I hope you have a great day one of the stairs and I don't want to train your dragon homecoming dresses for the best gains ppl or bro split and ppl I'm terms of growth and I
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

SOLUCIONES DE PROGRAMACIÓN

MÓVIL
Actividad 3: Proyecto integrador [etapa 3]

Estudiante: Daniel Alejandro Garduño Galicia


Carrera: Ingeniería en Tecnologías y Sistemas
de Información

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

Desarrollo de una Aplicación Móvil de Tareas Personales


El proyecto consiste en el desarrollo de una aplicación móvil simple que permita a los
usuarios gestionar sus tareas diarias. La aplicación permitirá a los usuarios añadir, editar,
eliminar y marcar tareas como completadas. La aplicación estará disponible para
dispositivos iOS y se desarrollará utilizando Swift. El objetivo es proporcionar una
herramienta útil y eficiente para la gestión de tareas personales, mejorando así la
productividad de los usuarios.

Objetivos generales de la App

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.

Mercado objetivo de la App

Definición.

La aplicación móvil de gestión de tareas personales está dirigida a un amplio rango de


usuarios que buscan mejorar su productividad y organización diaria. A continuación se
describe el mercado objetivo en detalle:

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.

Características Demográficas y Psicográficas

• Edad: Principalmente entre 18 y 50 años.


• Ubicación: Urbanos y suburbanos con acceso a dispositivos iOS.
• Nivel Educativo: Desde estudiantes de secundaria hasta profesionales con
educación superior.
• Intereses: Tecnología, productividad, eficiencia personal, gestión del tiempo.

Beneficios para el Mercado Objetivo

• Mejora de la Productividad: La aplicación ayuda a los usuarios a gestionar mejor su


tiempo y sus tareas, aumentando su productividad diaria.
• Facilidad de Uso: Una interfaz intuitiva y fácil de usar que permite a los usuarios
añadir, editar, y completar tareas con facilidad.
• Flexibilidad: Adaptable a las necesidades de diferentes tipos de usuarios, desde
estudiantes hasta profesionales.
• Accesibilidad: Disponible en dispositivos iOS, permitiendo a los usuarios gestionar
sus tareas en cualquier lugar y momento.

Concepto de la App

“MyTaskManager” es una aplicación móvil diseñada para simplificar la gestión de tareas


personales y profesionales. La aplicación se enfoca en proporcionar una experiencia
intuitiva y eficiente para ayudar a los usuarios a organizar, priorizar y completar sus tareas
diarias. Con una interfaz amigable y funcionalidad robusta, MyTaskManager se convierte en
el asistente personal perfecto para cualquier persona que busque mejorar su productividad
y gestión del tiempo.

4
Características Clave:

1. Gestión de Tareas CRUD (Crear, Leer, Actualizar, Eliminar):


o Permite a los usuarios crear nuevas tareas, editarlas, actualizarlas y
eliminarlas según sea necesario.
2. Recordatorios y Notificaciones:
o Los usuarios pueden establecer recordatorios y recibir notificaciones para
asegurarse de que no olviden ninguna tarea importante.
3. Organización por Categorías y Prioridades:
o Las tareas se pueden organizar en diferentes categorías (trabajo, personal,
estudios, etc.) y asignar niveles de prioridad (alta, media, baja).
4. Interfaz Intuitiva:
o Diseño de interfaz de usuario simple y fácil de usar que permite una
navegación fluida y accesible para todos los usuarios.
5. Sincronización en la Nube:
o Sincronización de tareas a través de múltiples dispositivos, asegurando que
los usuarios puedan acceder a sus tareas en cualquier momento y lugar.
6. Funcionalidad de Búsqueda y Filtros:
o Búsqueda rápida de tareas específicas y filtros para visualizar tareas según
categoría, fecha, o prioridad.
7. Modo Offline:
o Los usuarios pueden gestionar sus tareas incluso sin conexión a internet, con
sincronización automática cuando la conexión se restablezca.
8. Temas Personalizables:
o Opciones de personalización del tema de la aplicación para adaptarse a las
preferencias estéticas del usuario.

Beneficios para los Usuarios:

• Mejora de la Productividad: Ayuda a los usuarios a gestionar su tiempo de manera


más efectiva, aumentando su productividad diaria.
• Reducción del Estrés: Facilita la organización de tareas, lo que reduce la ansiedad y
el estrés relacionados con el manejo de múltiples responsabilidades.
• Accesibilidad y Flexibilidad: Ofrece una solución accesible para gestionar tareas en
cualquier momento y lugar, tanto en línea como fuera de línea.
• Personalización: Permite a los usuarios personalizar la aplicación según sus
necesidades y preferencias individuales.

5
Elección de la Tecnología

Lenguaje de Programación: Swift

1. Compatibilidad con MacOS y iOS:


o Swift es el lenguaje de programación desarrollado por Apple,
específicamente optimizado para trabajar en sus sistemas operativos,
MacOS y iOS. Esto asegura una integración perfecta y un rendimiento óptimo
en dispositivos Apple, que es el objetivo principal de la aplicación
MyTaskManager.
2. Eficiencia y Rendimiento:
o Swift es conocido por su alta eficiencia y rendimiento. Su sintaxis moderna y
optimizaciones del compilador permiten la creación de aplicaciones rápidas
y con una menor cantidad de errores. Esto es crucial para una aplicación de
gestión de tareas que necesita ser responsiva y confiable.
3. Facilidad de Uso y Desarrollo Rápido:
o Swift tiene una sintaxis clara y concisa, lo que facilita el desarrollo rápido y la
reducción de errores comunes. Esto es beneficioso para mantener un ciclo
de desarrollo ágil, permitiendo iteraciones rápidas y mejoras continuas en la
aplicación.
4. Seguridad:
o Swift ofrece características de seguridad avanzadas, como la gestión
automática de memoria y la prevención de errores comunes como
desbordamientos de buffer y referencias nulas. Esto contribuye a la creación
de aplicaciones más seguras y estables.
5. Comunidad y Soporte:
o Swift cuenta con una amplia comunidad de desarrolladores y un robusto
ecosistema de recursos y bibliotecas. Esto facilita la resolución de problemas
y el acceso a herramientas y frameworks que pueden acelerar el desarrollo
de la aplicación.

Base de Datos: MongoDB Atlas

Justificación de la Elección de MongoDB Atlas:

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.

Tienda en donde publicar la App

• Apple App Store

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

Selección de la tecnología a usar para el desarrollo de la App

Lenguaje de Programación: Swift


Justificación de la Elección de Swift:
1. Compatibilidad y Optimización:
o Swift es el lenguaje de programación desarrollado por Apple, optimizado
para crear aplicaciones en los sistemas operativos iOS y macOS. Utilizar Swift
garantiza que la aplicación funcione de manera eficiente y esté
completamente integrada con las plataformas de Apple.
2. Rendimiento y Eficiencia:
o Swift es conocido por su alto rendimiento y eficiencia. Su sintaxis moderna y
optimizaciones del compilador permiten crear aplicaciones rápidas y con
menos errores, esenciales para una aplicación de gestión de tareas que
requiere rapidez y confiabilidad.

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

Justificación de la Elección de SwiftUI:


1. Desarrollo Declarativo:
o SwiftUI permite crear interfaces de usuario de manera declarativa, lo que
simplifica el código y hace que el diseño sea más intuitivo y legible. Esto es
especialmente útil para desarrollar interfaces complejas de forma más
sencilla y eficiente.
2. Integración con Swift:
o Al ser desarrollado por Apple, SwiftUI se integra perfectamente con Swift,
aprovechando al máximo las características del lenguaje y permitiendo una
coherencia total en el desarrollo de la aplicación.
3. Compatibilidad Multiplataforma:
o SwiftUI permite desarrollar interfaces que funcionan tanto en iOS como en
macOS, lo que facilita la creación de una experiencia de usuario consistente
en todos los dispositivos Apple.
4. Actualizaciones y Mantenimiento:
o SwiftUI se actualiza regularmente con nuevas características y mejoras por
parte de Apple, lo que garantiza que la aplicación se mantenga actualizada y
aproveche las últimas innovaciones en diseño y funcionalidad de interfaz de
usuario.

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:

o Descripción: Debajo del campo de entrada, se muestra el listado de todas las


tareas registradas. Cada tarea aparece en un recuadro con su descripción.
o Funcionalidad: Cada tarea en el listado incluye botones de deslizamiento que
permiten marcar la tarea como "hecha" o eliminarla.
3. Botones de Deslizamiento:
o Descripción: Los usuarios pueden deslizar cada tarea hacia la izquierda o
derecha para revelar botones de acción.
o Funcionalidad: Deslizar hacia la izquierda muestra el botón "Hecho" para
marcar la tarea como completada. Deslizar hacia la derecha muestra el botón
"Eliminar" para borrar la tarea de la lista.

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.

2. Marcar una Tarea como "Hecha":


o El usuario desliza la tarea hacia la izquierda.
o El botón "Hecho" aparece.
o El usuario presiona el botón "Hecho" y la tarea se marca como completada
(opcionalmente, puede moverse a una sección de tareas completadas o
desaparecer del listado).
3. Eliminar una Tarea:
o El usuario desliza la tarea hacia la derecha.
o El botón "Eliminar" aparece.
o El usuario presiona el botón "Eliminar" y la tarea desaparece del listado.

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

III. Desarrollo de la aplicación móvil

3.1 Descripción de funcionalidad

• La App móvil debe implementar las acciones básicas de un CRUD (Agregar,


Recuperación, Actualización y Borrado de Datos)

Se implementaron las funciones CRUD inmersas en la aplicación de MyTaskManager (Lista


de tareas)

Se creó un Modelo nombrado “NoteViewModel.swift” que se manda a llamar desde el


archivo main llamado “toDosListApp.swift”.

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

La función Read se implementó mediante la función getAllNotes, la cual recupera de la clase


NoteModel los datos de las notas registradas. Además se implementó un contador de notas
que también se encarga de leer la cantidad de registros y se vualizan en la parte superior
derecha.

17
UPDATE

La función Update se implementó mediante la funcionalidad de actualizar las tareas


previamente registradas, ya sea que se marquen como “completadas”, Eliminarlas o
actualizarlas. Para lo que se definió la función UpdateFavoriteNote

La App debe estar emparejado con un servicio en la nube (Firebase, Azure, MongoDB)
para la base de datos

Se realiza la integración a Firebase en donde se recopia la información de las tareas


existentes

18
19
3.2 Implementación

Conforme a la selección de tecnologías para el desarrollo de tu APP instala los


componentes de software requeridos y descritos en la Unidad 3 de esta asignatura.

Para el desarrollo de la App fue necesario insalar el IDE nativo de Apple XCODE en su
última versión para desarrolladores (15.4)

Adicional se instalaron los paquetes de dependencia de SwiftUI, FireBase y SwiftLint

20
3.3 Pruebas de seguridad

• Realizar pruebas estáticas sobre el código de la App

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

• Descripción: SwiftLint es una herramienta de análisis de código estático para Swift


que ayuda a mantener el estilo de código y detectar errores comunes.
• Características: Reglas de estilo configurables, informes detallados, integración
con Xcode.
• Enlace: SwiftLint en GitHub

21
22
Pruebas de código estático:

23
• Realizar pruebas dinámicas sobre el funcionamiento de la App

Pruebas dinámicas

Build de la aplicación emulado en Iphon 15 Pro 17.5

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/

• Mongo DB Atlas [sitio oficial]. “MongoDB Atlas. Mongo DB totalmente gestionada


en la nube” (s.f). Recuperado de
https://www.mongodb.com/es/lp/cloud/atlas/try4?utm_source=google&utm_ca
mpaign=search_gs_pl_evergreen_atlas_core-high-int_prosp-brand_gic-
null_amers-mx_ps-
all_desktop_eng_lead&utm_term=mongodb%20atlas&utm_medium=cpc_paid_se
arch&utm_ad=e&utm_ad_campaign_id=19617283631&adgroup=150779756612&
cq_cmp=19617283631&gad_source=1&gclid=Cj0KCQjwtZK1BhDuARIsAAy2Vzt4Ov
Zd5UrqbLRBqWPqGyJJ66qQa-
wAx1fIbtCTf5l7u2GBR_dI3TQaArJQEALw_wcB?utm_source=google&utm_campaig
n=search_gs_pl_evergreen_atlas_core-high-int_prosp-brand_gic-null_amers-
mx_ps-
all_desktop_eng_lead&utm_term=mongodb%20atlas&utm_medium=cpc_paid_se
arch&utm_ad=e&utm_ad_campaign_id=19617283631&adgroup=150779756612&
cq_cmp=19617283631&gad_source=1&gclid=Cj0KCQjwtZK1BhDuARIsAAy2Vzt4Ov
Zd5UrqbLRBqWPqGyJJ66qQa-wAx1fIbtCTf5l7u2GBR_dI3TQaArJQEALw_wcB
• Developers (01 de noviembre de 2021). Introducción a Android Studio [Archivo
PDF]. Recuperado de https://developer.android.com/studio/intro?hl=es-419
• Expo (01 de noviembre de 2021). Introducción a Expo [Archivo PDF].
https://docs.expo.dev/
• Flutter-dev (01 de noviembre de 2021). Introducción a Flutter [Archivo PDF].
https://esflutter.dev/

36

You might also like