/np-native

Primary LanguageJavaScript

NP PMS Mobile App Software

Aplicacion utilizada en Android para el NP PMS. Desarrollado por Nelson Pérez y Nathaly Persia como proyecto de grado. 2017-2018.

Para solicitar documentacion adicional sobre algo, enviame un email a me@nelsonperez.net

Recomendaciones previas

Esta app esta creada con React Native. Las ventajas que propone este hecho, es que se puede desarrollar una aplicacion nativa en Android y iOS utilizando Javascript.

Es muy importante hecharle muy buen ojo y entender lo siguiente:

Como instalar

Primero hay que seguir las isntrucciones de la guia de React Native. Luego de esto deberas tener Java, Android Studio, Node, y los demas componentes necesarios instalados. Tambien es necesario instalar Yarn.

Luego,

  • Haz cd al directorio del proyecto y ejecuta yarn. Esto instalara todas las dependencias de Node.
  • Conecta tu dispositivo android a la pc y sigue el siguiente tutorial. React Native - Running on Device
  • Luego, ejecuta yarn start, y en otra sesion de la terminal, yarn android (esto es lo mismo que correr react-native run-android, como se puede ver en la seccion scripts del archivo package.json).

La aplicacion deberia instalarse en tu equipo e iniciarse correctamente.

Comunicacion con el NP HUB

La app se conecta con el hub utilizando un modulo nativo creado en Java, llamado BluetoothModule. Se encuentra en el directorioandroid/app/src/main/java/com/nppms.

Es improbable que se tenga que modificar este archivo, ya que todos los metodos necesarios para trabajar con el Bluetooth se encuentran en app/components/Bluetooth/BluetoothModule.js. La fucion sendMessage de este objeto sirve para enviar mensajes de tipo BtMessage al hub, y la funcion on permite escuchar cualquiera de los siguientes eventos:

  • BT_STATUS_CHANGED : Estado del adaptador de bluetooth cambio.
  • STATUS_CHANGED : Estado de la conexion bluetooth cambio.
  • DATA_RECEIVED : Data enviada por el hub ha sido recibida.
  • SEARCHING : Se esta buscando una conexion con el hub.
  • CONNECTION_ATTEMP : Se intento conectar con el hub.

El evento mas importante aqui es DATA_RECEIVED, ya que es el evento que trae consigo la data enviada desde el nphub.

El objeto BluetoothConnector del directorio app/components/Bluetooth es el que se comunica con el BridgeService del Nphub. Osea, que todo lo que se envia desde el celular llega al BridgeService y todo lo que se envia desde el hub llega al BluetoothConnector.

El BluetoothConnector lo que hace es mapear los mensajes que vengan desde el hub que ean de cierto tipo a ciertas funciones del store de Mobx de la app, y el store tiene acciones que pueden ser llamadas desde cualquier parte de la app y envian mensajes al hub.