🚵 WayX | Proyecto Final de Ciclo – 2º DAM

runs with expo Java Android JavaScript React MySQL VS Code Eclipse-IDE

wayX-banner

Index

Enlace de descarga de la app ✨

Para poder probar WayX, tendrás que descargar la app desde el código QR indicado abajo.

  • Android:

QR-Android

Para poder instalar la app correctamente, deberemos dar permiso para instalar apps de fuentes externas, o bien, activar el modo avión. Esto será necesario, ya que no está publicada en Google Play Store.

También puedes testear el prototipo desde el siguiente enlace: Axure WayX Prototype

Contacto 👨🏻‍💻

const WayX = [
    developer: {
        name: "Eduardo Ruá Chamorro",
        email: "[email protected]; [email protected]",
        role: "Software Developer",
    },
];

Para cualquier duda sobre el funcionamiento de nuestra app, como para solucionar errores de ejecución, o sugerencias en cuanto al diseño y accesibilidad de WayX, puedes contactar conmigo a través de mi correo electrónico, mediante LinkedIn o Twitter, o bien, publicando una issue.

Descripción ⚙️

Proyecto de ampliación/mejora de la app propuesta, que recibe el nombre de WayX, cuyo propósito explico a continuación. ¿Por qué se ha elegido el nombre de WayX? Way, que en inglés quiere decir camino, en referencia a que, los puntos de interés creados por cada usuario servirán a otros para definir un “camino” de lugares interesantes. Asimismo, la X representa la exclusividad que se desea transmitir al ofrecer una app innovadora, que incluya diversas funcionalidades en un mismo lugar, facilitando al máximo la vida de la comunidad de usuarios. De manera breve, WayX es una aplicación que trata de facilitar a los usuarios la posibilidad de crear y recorrer puntos de interés turístico, en función del tipo de lugar y de actividad. Asimismo, los usuarios recibirán recomendaciones de lugares en función de la cercanía a la ubicación especificada en su perfil (siendo esta, una provincia española), y según qué actividad prefiera hacer. Todos los puntos de interés forman parte de la app gracias a la aportación de su comunidad de usuarios, creándolos, aportando la información requerida.

Para poder utilizar la app y disfrutar de las posibilidades que ofrece, será necesario registrarse como usuario.

Objetivo 📈

En sí, el objetivo principal es, acercar WayX a un mayor público, más concretamente a las personas que estén interesadas en descubrir lugares adaptados a sus necesidades e intereses, por lo tanto, se han mejorado funcionalidades que hacen hincapié en estos aspectos. No necesariamente está enfocada a un determinado sector de la población, quizá se podría pensar que está enfocada a los usuarios que practican senderismo o turismo natural, pero realmente, el objetivo no es ese. Para lograr captar el mayor número de usuarios, estos deben tener a su mano la posibilidad de personalizar todo lo posible su experiencia en la app, para que no se vean obligados a buscar fuera de ella, bien por páginas web, o mediante otras apps. WayX debe ser la que incluya todas las funcionalidades necesarias.

WayX será una aplicación gratuita en su lanzamiento y estará disponible, por el momento, a través de descarga escaneando el código QR indicado más arriba. En futuras actualizaciones, podrás encontrarla tanto en Google Play Store como en la Apple Store.

Justificación ⚖️

En ocasiones nos vemos obligados a utilizar diversas apps para obtener información de lugares turísticos, quizá para encontrar un buen restaurante donde comer, sitios interesantes por los que pasear o conocer nuevas experiencias, o tal vez rutas adaptadas a nuestras necesidades. En ese caso, podríamos pensar en una app que nos permita encontrar todo lo que necesitamos, sin tener que recurrir a fuentes externas, unificándolo todo en un mismo lugar. WayX ayudará a los usuarios a satisfacer todos los supuestos mencionados anteriormente, y a la vez, a mejorar su experiencia a través del feedback de la comunidad.

Resultados obtenidos 📊

Tras implementar las mejoras ideadas al principio del desarrollo del proyecto, se han obtenido los siguientes resultados.

Opciones de personalización

El usuario ahora podrá personalizar todavía más sus preferencias, pudiendo elegir un mayor número de tipos de ruta y de actividad. Al haber implementado la funcionalidad del pronóstico meteorológico, y desde la pantalla de configuración de perfil, el usuario podrá elegir las unidades de medida preferidas en las que desea ver la información del tiempo del lugar que va a visitar, pudiendo ser:

  • Temperatura: Unidades C (Celsius), Fahrenheit (F), y Kelvin (K)
  • Distancia: kilómetros (km), millas (mi), millas náuticas (nm)
  • Velocidad del viento: km/h (Kilómetros por hora), mi/h (millas por hora), m/s (metros por segundo)

Asimismo, y para aumentar el alcance de WayX, se ha añadido soporte para la mayoría de las lenguas españolas, pudiendo elegirse:

  • Inglés, valenciano, aranés, gallego, euskera, castellano, catalán, asturiano y aragonés.

Además, el usuario podrá añadir una biografía a su perfil, pudiendo añadir en ella la información que desee.

También hay que destacar, que, en el momento de crear un punto, si el tipo de ruta de este es por montaña, o bien, el tipo de actividad es el senderismo, se habilitará una opción más de configuración para ese punto, y es que el usuario podrá indicar el nivel de dificultad de este lugar, para que los usuarios que se animen a realizar caminos por montaña sepan a priori el nivel de experiencia que necesitarán para completar el recorrido.

Haciendo esto, podemos entender que el nivel fácil está destinado a personas con poca experiencia en lugares de este tipo, así como para familias que deseen pasar la tarde sin mayores problemas. En cambio, el nivel avanzado será sólo para personas con la suficiente experiencia como para afrontar caminos arduos y angostos.

Todas las opciones indicadas anteriormente estarán reflejadas e interactuarán con la base datos, para que exista una persistencia en los datos que nos haya proporcionado el usuario, así no tendrá que añadirlos de nuevo, con lo cual, quedarán guardados en la información de su perfil.

Funcionalidades que favorecen la experiencia del usuario

A continuación, se detallan las mejoras destinadas a brindar una mayor flexibilidad en el uso de la app:

  • En la pantalla PointMap, en el que el usuario puede guardar la ubicación del punto que desea crear, ya no será necesario arrastrar el marcador hasta el sitio, sino que se ha habilitado una barra de búsqueda que permitirá encontrar el lugar más fácilmente.
  • La funcionalidad de búsqueda mediante filtros ya no se encuentra en la pantalla Explore, sino que su funcionamiento se ha movido a un Backdrop que puede visualizarse al pulsar sobre la barra de búsqueda de la pantalla Home. Ahora es posible realizar el filtrado de una manera más cómoda y visual.
  • Se ha aplicado un nuevo diseño a toda la aplicación, con el propósito de crear una consistencia que antes no teníamos. Se ha seguido un esquema más minimalista para que el usuario pueda navegar por WayX sin ningún problema, y poder hacerlo cómodamente al encontrarse con elementos más vistosos y menos rígidos.
  • En RouteInfo, se ha quitado el contenedor que mostraba las coordenadas del punto de interés, ya que esto para el usuario es redundante. Además, no las necesita para dibujar el recorrido que debe realizar para llegar a su destino, ya que de esto se encarga la funcionalidad propia de Google Navigation invocada al pulsar en “Iniciar”.

Implementaciones destacadas

En la pantalla de RouteInfo, encargada de mostrar la información del punto de interés, se ha implementado un “widget” o “card” encargado de mostrar el pronóstico meteorológico del lugar que se está consultando. Este incluye detalles como:

  • Día de la semana
  • Temperatura actual, máxima y mínima
  • Hora de la última actualización
  • Localización
  • Velocidad del viento
  • Porcentaje de humedad
  • Descripción breve del pronóstico
  • Iconografía representativa del mismo

Finalmente, se ha añadido la funcionalidad social de WayX. Esta consiste en una sección que encontraremos en RouteInfo, en la que el usuario podrá escribir una reseña sobre el punto de interés, donde podrá opinar sobre si le ha parecido interesante, quizá si la recomienda o no a otros usuarios, etc. Al momento de publicar su reseña, tanto su imagen de perfil como el nombre de usuario, serán visibles junto al comentario publicado.

Esta última funcionalidad interactúa con la base de datos.

Tecnologías utilizadas 📱

Lenguajes de programación: 👾 Para realizar la programación de nuestra App, haremos uso del lenguaje React Native, mediante Expo, que nos proporcionará una cantidad generosa de herramientas, librerías, y recursos útiles disponibles en su documentación oficial. Además, este lenguaje es Cross-Platform, es decir, podremos desarrollar Apps tanto para iOS como para Android. Aparte, se programará con Java todo lo relacionado con la parte del servidor.

Servidores de bases de datos o hostings: 💾 Se hará uso de Microsoft Azure para todo el trabajo relacionado con el servidor de WebX, así como de MySQL para la programación de la base de datos.

Librerías utilizadas en el proyecto: 📚 A continuación se detallan las librerías, y haciendo click sobre ellas, se accederá a la documentación correspondiente.

Todas ellas están detalladas en el package.json del proyecto, pudiendo instalarlas fácilmente con npm install Los iconos de react-native-vector-icons utilizados en la app, pueden encontrarse en esta biblioteca.

IDE y editores de código: 🖥️

  • Mockups | UX/UI: El diseño ha sido realizado con la herramienta Axure, y el esquema de diseño que se ha seguido, ha sido propio, pero también mezclando elementos de Material Design de Android.
  • Programación: El desarrollo de WayX se ha realizado con React Native mediante la plataforma Expo, en el editor de código Visual Studio Code.
  • Backend: Se ha programado con el lenguaje Java, destinado a las peticiones REST API del servidor alojado en una máquina virtual de Microsoft Azure. Este servidor se encarga de gestionar las peticiones de envío y recepción de información, y persistirlas en una base de datos de MySQL. Esta última es gestionada desde PHPMyAdmin. El desarrollo del servidor java se realiza en el IDE de Eclipse.

GitHub

View Github