Titulación: Máster Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles Campo de trabajo final: Trabajo Fin de Máster DADM. Resumen del trabajo (máximo 250 palabras): con el propósito, contexto de aplicación, metodología, resultados y conclusiones del trabajo. El propósito de este trabajo es crear una aplicación donde los usuarios puedan estar constantemente informados sobre el mercado de las criptomonedas.
The idea is to have at least one minimally successful product and then continue as much progress as possible to achieve the best possible application within the times set by the academic calendar. The result will be a friendly app, easy to understand (considering how complex the cryptocurrency market is), where the user can be updated with the prices of 5 thousand cryptocurrencies with the highest market capitalization, can have their favorite cryptocurrencies for quick access. , can perform conversions between cryptocurrencies and between cryptocurrencies and fiat currencies, can view prices in Euros or USD, can register price alerts and can manage your chute from at least one exchange.
Introducción
- Objetivos del Trabajo
- Enfoque y método elegido
- Planificación del Trabajo
- Breve sumario de productos obtenidos
- Breve descripción de los otros capítulos de la memoria
RnF_003 La aplicación debe funcionar en al menos un teléfono móvil con sistema operativo Android. Se ha decidido que la solicitud se realizará en dos grandes partes, una donde no se requiere autenticación y otra donde sí se requiere. La primera opción se deja como funcionalidad que se agregará en una actualización posterior de la aplicación.
En este último caso, creo que la aplicación aún está lo suficientemente completa como para ser considerada una primera versión mínima viable. La aplicación en formato apk para ser instalada en un dispositivo móvil con sistema operativo Android.
Diseño Centrado en el Usuario (DCU)
Investigación y requisitos de usuario
- Ficha/s de persona y escenario
Ha dado los primeros pasos, pero encuentra que los intercambios son complicados de entender y además nunca encuentra la información que necesita, o le molesta que el intercambio donde guarda sus criptomonedas solo guarda informes durante tres meses. Afortunadamente recuerda que tiene la aplicación cryptocurrencies.app y tranquilamente desde su sofá, sin abrir la computadora, revisa las operaciones que ha realizado desde que creó su usuario y tiene los permisos necesarios para que la aplicación cryptocurrencies.app almacene dicha información. para él. Estás buscando una aplicación sencilla que te permita ver precios, enviarte alertas personalizadas, almacenar el historial de tu negocio y también quieres automatizar pedidos.
Un correo electrónico de cryptocurrencies.app le informó que la operación de compra incrustada que había programado se había registrado en el intercambio. Los usuarios demandan una aplicación sencilla que ofrezca información de mercado y herramientas para la toma de decisiones.
Diseño conceptual
- Benchmarking en las tiendas de aplicaciones
- Árbol de navegación
Este es el sistema que utilizará criptomonedas.app para obtener los datos del mercado para la sección de autenticación gratuita, te permite crear una cartera. A todas estas secciones se accede a través de un menú que se encuentra en todas las pantallas, por lo que se puede acceder a cualquier parte de la sección gratuita desde cualquier pantalla. A la sección restringida se accede a través de la home del usuario, esta pantalla contendrá un resumen de la sección privada y te permitirá ir a la configuración, la sección de alertas y la pantalla de intercambio de cex.io.
Desde la sección de intercambio se ingresa a la home de la sección en cuestión y de ahí a sus distintas secciones o para ingresar datos de autenticación. En caso de que surja una nueva idea para incluir en futuras versiones, se puede incorporar fácilmente sin modificar el árbol, solo se agregará para que se pueda acceder desde la sección privada de inicio.
Prototipado
- Sketching
- Prototipado
Gracias a la técnica del bocetado he podido enfrentarme al prototipado de alta fidelidad sin tener que enfrentarme al síndrome de la hoja en blanco. La creación de prototipos de alta fidelidad no solo me permitió visualizar mejor la estructura y la ubicación de cada elemento, sino que también descubrí que el árbol de navegación contenía errores conceptuales que pude corregir gracias al proceso iterativo de la metodología de desarrollo RAD. Al realizar prototipos de alta fidelidad, se tomaban decisiones que solo eran visibles durante este proceso.
Uno de ellos, explicado en el apartado 2.4, era la ruta de navegación para llegar a las alertas. La segunda fue la configuración de las alertas, el hecho de incluir la opción para que puedan llegar por correo electrónico. Anteriormente pensé que podía elegir no solo el correo electrónico sino también las notificaciones automáticas, pero pensé que las notificaciones automáticas siempre se incluían en las alertas.
Creo que las notificaciones automáticas siempre son importantes, especialmente porque es una aplicación móvil gratuita que gana con la publicidad. Otro de los problemas que puedes ver en este punto es que en el árbol de navegación no había notado la configuración de la clave API de Exchange. Tampoco había considerado la pantalla de la cartera de criptomonedas donde el usuario puede ver su cartera de criptomonedas más claramente que en el propio intercambio.
Evaluación
- Definición de los casos de uso
- Diseño de la arquitectura
Caso de uso Eliminar criptomoneda de la lista de favoritos Actor principal Usuario de la aplicación. Caso de uso Conversión de precios entre criptomonedas y divisas Actor principal Usuario de la aplicación. Use Case Ver los activos que posee en cex.io Exchange Actor principal Usuario autenticado.
Implementación
Entorno de desarrollo
Tecnologías
- Dependencias
- Autentificación
- Base de datos
- Apis
- Back end
Comparta para que los usuarios puedan recomendar rápidamente su aplicación a través de Intents en Android y UIActivityViewController en iOS. Sin embargo, en el código se implementa el método de verificación por parte de Facebook, que ha sido probado y funciona correctamente, pero se ha eliminado para entregar el TFM porque Facebook requiere que la aplicación sea revisada una vez registrada en la App Store. No se usó la autenticación con Apple.com porque todavía no estoy inscrito en el Programa para desarrolladores de Apple.
He abandonado la autenticación de Google porque es el método más extendido y rápido entre los usuarios para probar y ejecutar el desarrollo de aplicaciones en el proceso de implementación. Como se mencionó en el párrafo 2.4.2, se ha elegido una base de datos NoSQL, más específicamente Firebase Firestore. Aunque la sección 2.4.2 expuso el diseño de la base de datos para un modelo relacional, las bases de datos NoSQL están estructuradas en base a colecciones y documentos.
Cuando se activa, se notifica al usuario cuando se cumplen las condiciones de alarma. Después de seleccionar una metodología de desarrollo RAD, como se indica en la sección 1.3.4, el código fuente se prepara parcialmente para acomodar nuevos intercambios extrayendo su información de una base de datos (explicado más adelante en la sección de desarrollo). De momento los datos necesarios para conectarse a CEX.io están incluidos en el código fuente de la aplicación al ser un único intercambio, pero en versiones posteriores se obtendrán directamente de Firestore.
Esto significa que los datos en la sección de autenticación gratuita general se actualizan cada hora, lo que me parece aceptable ya que es una versión gratuita de la aplicación. Además, al utilizar un servidor externo para la api, permite a los usuarios cambiar de proveedor de información o acortar los tiempos de actualización de la información sin necesidad de que los usuarios actualicen la versión de la aplicación. Al igual que la api anterior, se utiliza a través de un servidor proxy que permite cambiar la api en cualquier momento sin que los usuarios tengan que actualizar la aplicación.
Desarrollo
- Sobre la seguridad
- Dar soporte a más exchanges
Y si el usuario ha terminado o suspendido la aplicación, aparecerá la alerta correspondiente y al pulsar se abrirá la aplicación y le traerá a esta pantalla. Tan pronto como el usuario cambia la moneda en el componente desplegable, la conversión se realiza automáticamente. A esta pantalla se accede desde la AppBar haciendo clic en el icono de persona en la parte superior derecha y siempre que el usuario no haya iniciado sesión.
Si el usuario no está autenticado, también se accede a este tocando alertas en el menú de navegación principal. A esta pantalla también se accede desde la AppBar haciendo clic en el icono de persona en la parte superior derecha y siempre que el usuario ya esté autenticado. Además, a continuación se muestra el valor total de la cartera en su equivalente a la moneda Fiat seleccionada por el usuario en el menú principal.
Pero también permite ver su valor correspondiente en la moneda Fiat elegida por el usuario, tanto para cada criptomoneda como para el total. Si el campo de precio unitario está activado, el usuario puede en cualquier momento seleccionar automáticamente como precio unitario el precio actual de la moneda a comprar en la moneda con la que se comprará. En cualquier momento desde cualquier pantalla, si el usuario está autenticado, puede volver a la pantalla principal para usuarios autenticados tocando el ícono de persona en la parte superior derecha.
Si el usuario está en alertas activas y desactiva una, automáticamente desaparece de dicha lista. Si el usuario hace clic en la notificación, la aplicación se abre en la sección de pedidos. Si el usuario hace clic en la notificación, la aplicación abre la página de detalles de la criptomoneda que el usuario seleccionó durante el registro de la notificación.
Pruebas
Cuando se registra un pedido planificado, el pedido se elimina de la base de datos y se notifica al usuario correspondiente en todos los dispositivos donde puede iniciar sesión. Cuando se cumplen las condiciones necesarias para ejecutar una alerta, se marca como deshabilitada y se envía una notificación al usuario correspondiente. Estos procesos son realizados por el back end como se explica en el apartado correspondiente.
Actualmente se crea un Crontab para que el último programa de Python se ejecute cada dos minutos.
Conclusiones
Glosario
Trading: Acción de comprar y vender criptoactivos repetidamente para ganar dinero o más criptoactivos con la diferencia de precios de cada compra y venta.
Bibliografía
Anexos
Obtención de credenciales de la API de Cex.io