3. MARCO TEÓRICO
5.10. Instalación APK en diferentes dispositivos
Al finalizar las pruebas y validar que el sistema estaba funcionando correctamente de acuerdo a lo planteado, se procedió a instalar la aplicación móvil en diferentes dispositivos con sistema operativo Android posteriores a la versión 4.0.3, que es la versión mínima en la que trabaja la App. Para ello el entorno de desarrollo Android Studio permite la exportación del proyecto y la obtención de un archivo ejecutable con extensión APK que Android por defecto reconoce como un programa a instalar. A continuación se muestra la aplicación funcionando en diferentes dispositivos móviles.
Figura 59. APK Instalado en Samsung Galaxy S5
Fuente: Elaboración propia
En la Figura 59 se observa un pantallazo de la aplicación con el detalle de una noticia que está dentro de Pereira Circula, la imagen fue capturada por un SmathPhone Samgung Galaxy S5 con las siguientes características.
Android 6.0.1
Tamaño de pantalla: 5.1 pulgadas Resolución de pantallas: 1920 x 1080 Memoria RAM: 2GB
143
Figura 60. APK Instalado en Motorola Moto G3
Fuente: Elaboración propia
La Figura 60 es una toma de pantalla donde un usuario se encuentra en Actividad de inicio de la aplicación. La imagen fue obtenida por un SmartPhone Motorola Moto G3 con las siguientes características.
Android 6.0.1
Tamaño de pantalla: 5 pulgadas
Resolución de pantallas: 720 x 1280 pixeles Memoria RAM: 1GB
144
Figura 61. APK Instalado en Samsung Tablet 3
Fuente: Elaboración propia
La Figura 61 pertenece a una toma de pantalla de un dispositivo Samsung Tablet 3, en la cual un usuario se encuentra creando un vehículo con el que quiere que Pereira Circula le recuerde sobre el pico y placa. Las características del dispositivo son las siguientes.
Android 4.4.2
Tamaño de pantalla: 7 pulgadas
Resolución de pantallas: 1024 x 600 pixeles Memoria RAM: 1GB
145
CONCLUSIONES
El desarrollo móvil es una alternativa cada vez más utilizada pues el uso de los dispositivos móviles inteligentes (Smartphone) y el afán de conocer información de primera mano y a la hora que sea necesaria genera gran expectativa en los usuarios de este tipo de tecnologías.
Las tecnologías de la información abarcan cada vez un campo más grande y motivan a las personas a sentir nuevas experiencias con el uso de aplicaciones móviles que hacen más fácil las tareas diarias.
Las aplicaciones móviles generan confianza y se vuelven parte esencial del diario vivir de las personas, es muy necesario estar informado sobre los cambios que se presentan al alrededor y la opción de poder personalizar hace que sea más intuitivo el uso de estas aplicaciones.
En la ciudad de Pereira existe diversa información de varios sectores importantes, que se puede recolectar y con ella crear un sistema de utilidad para el correcto uso de los dispositivos tecnológicos. El acceso a la información es de vital importancia.
La ingeniería de software es un proceso muy necesario al momento de desarrollar un programa, ya que permite saber qué elementos se requieren para hacer un software de calidad y evaluar qué características y funciones tendrá el sistema.
El almacenamiento externo de los datos con los que una aplicación móvil se relacionará, hace que el software sea más liviano y ligero, pudiendo así brindar una mejor satisfacción para el usuario.
El uso de sistemas controladores de versiones como GIT y repositorios son herramientas que se deben usar en todo proyecto que se trate en el desarrollo de un sistema, permite que todo sea ágil y seguro.
146
RECOMENDACIONES
El uso de aplicaciones móviles debe ser tomado por los usuarios como un medio tecnológico y de fácil acceso para mejorar u optimizar sus labores diarias tanto en el trabajo como en la vida personal.
Los dispositivos móviles inteligentes deben ser utilizados no solo para llamar o enviar mensajes, hay un sinnúmero de aplicaciones móviles que pueden llegar a ser bastante útiles y hacer que las personas mejoren su producción en el trabajo acortando tiempos de entrega o reduciendo distancias con la información aportada a tiempo.
Invitar a más personas profesionales o aficionados al desarrollo móvil o desarrollo web que implementen más aplicaciones que ayuden a los usuarios y que aporten de una u otra manera a la sociedad ya sea informando sobre temas de movilidad o sobre temas de entretenimiento y de sano esparcimiento.
Antes de empezar a desarrollar líneas de código se debe realizar el estudio e ingeniería de software para saber cómo se comportará el sistema, este diseño realizado a través de diferentes artefactos y diagramas, garantiza el flujo correcto del desarrollo del proyecto.
147
LISTA DE REFERENCIAS
Alcaldía de Pereira. (2015). Obtenido de DECRETO 516 DEL 21 DE JULIO DE 2015: https://www.pereira.gov.co/es/idocumentos/ver/G417/2889/
Andrade, J. (2013). Engadget. Obtenido de Strategy Analytics afirma que Android consiguió el 70% del mercado en el último trimestre de 2012: http://es.engadget.com/2013/01/29/strategy-analytics-dice-que-android- consiguio-un-70-por-ciento-d/
Android Developers. (s.f.). Developers. Obtenido de https://developer.android.com/ Android Open Source Project. (2016). Activity | Android Developer. Recuperado el
31 de octubre de 2016, de
https://developer.android.com/reference/android/app/Activity.html
Área Metropolitana de Centro Occidente. (2012). Quiénes Somos? Recuperado el 17 de Abril de 2016, de http://amco.gov.co/contenido-mision-y-vision- 108.html
Área Metropolitana de Centro Occidente. (2015). Quiénes somos? Recuperado el 17 de Abril de 2016, de http://amco.gov.co/contenido-organigrama- 1199.html
Área Metropolitna de Centro Occidente. (2012). Quiénes Somos? Recuperado el 17 de Abril de 2016, de http://amco.gov.co/contenido-jurisdiccion-118.html Bastera, & Bertea, B. C. (2012). Androidos. Obtenido de
http://androidos.readthedocs.io/en/latest/data/historia/ Chacon, S., & Straub, B. (2009). Pro Git. Apress.
Chamillard, G. (2011). UBUNTU Administracion De Un Sistema Linux. Barcelona: Edciones Eni.
Corporación Colombia Digital. (2014). Aplicativos móviles: más y mucho más…. Obtenido de https://colombiadigital.net/actualidad/noticias/item/7783- aplicativos-moviles-mas-y-mucho-mas.html
Django. (2016). Django. Recuperado el 8 de septiembre de 2016, de https://docs.djangoproject.com/en/1.10/
El Diario del Otún. (2013). Área Metropolitana Centro Occidente, nuestra área en común. Recuperado el 17 de Abril de 2016, de
148
http://www.eldiario.com.co/seccion/ESPECIALES/rea-metropolitana-centro- occidente-nuestra-rea-en-com-n1308.html
Google. (2016). Registering Client Apps. Obtenido de https://developers.google.com/cloud-messaging/registration
Google Play. (s.f.). Aplicaciones - Google Play . Obtenido de https://play.google.com/intl/es_es/about/apps/index.html
GoogleCloudPlatform. (2014). Google Cloud. Recuperado el 12 de Junio de 2016, de https://cloud.google.com/
Gradle Inc. (2015). Dependency Management. Recuperado el 31 de octubre de
2016, de
https://docs.gradle.org/current/userguide/dependency_management.html Gutiérrez, J. (2016). ¿Qué es un Framework web? Recuperado el 14 de
septiembre de 2016, de
http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf
JSON Org. (s.f.). Introducing JSON. Recuperado el 20 de 09 de 2016, de Json: http://www.json.org/
Kioskea. (2014). El Protocolo HTTP. Recuperado el 14 de Octubre de 2016, de http://es.ccm.net/contents/264-el-protocolo-http
Leclanche, J. (2016). Django Push Notifications. Recuperado el 8 de Octubre de 2016, de https://github.com/jleclanche/django-push-notifications
Martel, A. (2014). Gestión Práctica de Proyectos Con Scrum: Desarrollo de Software Ágil Para El Scrum Master. Recuperado el 14 de Octubre de 2016, de http://dnspes.com/informatica-internet-y-medios-digitales/gestion- practica-de-proyectos-con-scrum-desarrollo-de-software-agil-para-el-scrum- master-aprender-a-ser-mejor-gestor-de-proyectos-no-1.pdf
Moovit. (2016). Free public transportation app. Obtenido de Tu ciudad, tu App para el transporte urbano: http://moovitapp.com/es/
Navarro, M. R. (2007). Modelado, Diseño e Implementacion de Servicios Web. Noticias RCN. (2016). Uso de aplicaciones moviles en Colombia. Obtenido de El
boom de las apps en Colombia: http://www.noticiasrcn.com/tecnologia- tecnologia/el-boom-las-apps-colombia
149
Periodico El Tiempo. (2015). Aplicacion transmisitp brinda informacion sobre sitp y transmilenio. Obtenido de Conozca la 'app' que le brinda información sobre Sitp y TransMilenio: http://www.eltiempo.com/bogota/aplicacion-transmisitp- brinda-informacion-sobre-sitp-y-transmilenio/15071135
Pons, N. (2013). Linux Principios Basicos de uso del sistema. Barcelona: Ediciones Eni.
Schwarz, R., Dutson, P., Steele, J., & To, N. (2013). The Android Developer's Cookbook: Building Applications. New York, Estados Unidos: Addison- Wesley.
Smith, J. (s.f.). Android Asynchronous Http Client. Obtenido de http://loopj.com/android-async-http/
Talledo, J. (2015). Implantación de aplicaciones web en entornos internet, intranet y extranet. España: Ediciones Parainfo S.A.
Tarasevich, S. (2015). Android Universal Image Loader. Recuperado el 14 de Octubre de 2016, de https://github.com/nostra13/Android-Universal-Image- Loader
Tech.Freak. (2015). Pico y Placa Colombia- Aplicación de Google Play. Obtenido
de Pico y Placa Colombia:
https://play.google.com/store/apps/details?id=com.tech.freak.pyp
Universidad Politécnica de Valencia. (2015). Android Curso. Recuperado el 15 de abril de 2016, de Versiones de Android y Niveles de Api: http://www.androidcurso.com/index.php/tutoriales-android/31-unidad-1- vision-general-y-entorno-de-desarrollo/146-las-versiones-de-android-y- niveles-de-api
WAZE. (s.f.). Aplicación gratiuta de trafico y navegación basada en mapas de la comunidad. Obtenido de Waze: https://www.waze.com/es/
150 APÉNDICES
Apéndice A. Manual de usuario administrador plataforma web
1. Dirección de enlace página web.
2. Nombre de usuario Administrador (admin). 3. Contraseña aplicativo web (administrador). 4. Botón para iniciar sesión en el aplicativo web.
151 5. Añadir nuevo usuario
6. Modificar los usuarios agregados 7. Añadir una descripción de pico y placa 8. Modificar la descripción de pico y placa
9. Añadir noticias para ser mostradas en la aplicación móvil 10. Modificar las noticias agregadas
11. Añadir un pico y placa
12. Modificar los pico y placa agregados 13. Añadir las rutas de buses
14. Modificar rutas de los buses que se han agregado
15. Añadir información de los usuarios que tienen la aplicación 16. Modificar información de los usuarios que usan la aplicación 17. Añadir vehículos a la aplicación
152 19. Ingrese un nombre de usuario
20. Ingrese una contraseña para el usuario 21. Confirme la contraseña
22. Guardar y agregar un nuevo usuario
23. Guardar y continuar editando la información del usuario 24. Guardar los datos del usuario
153 25. campo para buscar usuarios inscritos
26. Si esta seleccionado algún usuario el campo Acción permite eliminarlo dando clic en el botón ir
27. Tabla informativa sobre los usuarios inscritos y los campos que estos ingresaron
28. Añadir un nuevo usuario
154 30. ingrese un titulo para la noticia
31. Ingrese el contenido de la noticia a publicarse 32. Adjunte una imagen para la noticia
33. Link (enlace) principal de la noticia 34. Fecha de publicacion de la noticia
35. Grabar campos y añadir una noticia nueva 36. Grabar los datos y seguirlos editando
155
38. Si esta seleccionada una noticia o todas pueden eliminarse en el campo acción y dando clic en el botón ir.
39. Tabla informativa de las noticias agregadas con los campos suministrados por el administrador.
156 41. Seleccionar un numero de pico y placa 42. Seleccionar un día de la semana
43. Seleccionar una descripción de pico y placa 44. Grabar campos y añadir un pico y placa 45. Grabar los cambios y continuar editando 46. Grabar los campos del formulario
157
47. Eliminar registros de pico y placa seleccionados dando clic en el botón “Ir” 48. Información de los registros en el módulo de pico y placa
158
50. Ingresar un numero de ruta de transporte publico
51. Ingrese una descripción del recorrido de la ruta de transporte publico 52. Imagen del recorrido que hace la ruta ingresada
53. Grabar los datos y agregar una nueva ruta
54. Grabar los datos y continuar editando el formulario 55. Grabar los datos que se ingresaron en el formulario
159
56. Eliminar rutas seleccionadas dando clic en el botón ir
57. Información de las rutas que han sido ingresadas previamente por el administrador
160
59. ingrese un usuario con el RegisterId (campo único de identificación de un móvil cuando descarga una aplicación)
60. Grabar el registro y añadir uno nuevo 61. Grabar el registro y editarlo o eliminarlo 62. Grabar el registro del RegisterId
161 63. Eliminar los registros seleccionados
64. Información del registro que fue previamente ingresado por el administrador 65. Añadir usuario nuevo
162 66. Ingrese un nombre para el vehículo nuevo 67. Ingrese la placa de su vehículo
68. Seleccione el tipo de vehículo que está ingresando (carro, moto)
69. Seleccione la hora que desea recibir su alerta de pico y placa para este vehículo
70. Seleccione el usuario
71. Grabar los campos del formulario y agregar uno nuevo 72. Grabar campos del formulario y editarlo o eliminarlo
163 74. Eliminar los vehículos seleccionados
75. Información de los vehículos ingresados previamente por el administrador 76. Añadir un nuevo vehículo a la plataforma
164
165 Apéndice B. Documentación de Web Services Datos servidor de pruebas:
URL Base API: http://pereiracircula.tk/api/
Parámetro de seguridad: llave_android=********, este parámetro se envía en todas las peticiones, el cual se creó para garantizar que la información sea entregada solo a la aplicación móvil.
Proyecto: Pereira Circula No.
Webservice
1
Función Crear un nuevo usuario con su respectivo RegistrationId
Tipo POST URL: BASE + “usuarios/”
Parámetros a enviar
Registration_id Identificador único del dispositivo del usuario Respuestas
200 Success "detalle":"usuario logeado" JSONArray 403 Error "detalle":"Método no permitido." JSONArray 400 Error "detalle":"Faltan campos por
diligenciar"
166
Proyecto: Pereira Circula No. Webservice 2
Función Obtener los vehículos de usuario
Tipo GET URL: BASE +”vehiculos/”
Parámetros a enviar
RegistrationId Se usa el RegistrationId para responder con todos los vehículos asociados a ese usuario
Respuestas
200 Success JSONArray
Ejemplo respuesta JSON 200 [ { "placa": "pft272", "nombre": "Aveo gt", "hora": "08:00:00", "tipo": "c" }, { "placa": "vay04d", "nombre": "Discovery", "hora": "07:00:00", "tipo": "m" } ] 403 Error "detalle":"Método no permitido." JSONArray 400 Error "detalle":"Atención el usuario no existe" JSONArray
167
Proyecto: Pereira Circula No. Webservice 3
Función Crear y modificar vehículo
Tipo POST URL: BASE + “vehiculos/”
Parámetros a enviar nombre Nombre que el usuario le da a su vehículo placa Placa del vehículo (max=6, min=5)
tipo Tipo de vehículo, si es moto o carro (m, c)
hora Hora en la que el usuario desea recibir la notificación de pico y placa del vehículo
usuario registrationId del usuario para asociar el vehículo
id_vehiculo Este campo se envía si es una edición de un vehículo, es la identificación para saber cuál vehículo editar si es un vehículo nuevo no se envía
Respuestas
200 Success "detalle":"Vehículo almacenado correctamente"
JSONArray
403 Error "detalle":"Método no permitido." JSONArray 400 Error "detalle":"El vehiculo no existe" JSONArray 400 Error "detalle":"Atención el usuario no
existe"
JSONArray
400 Error "detalle":"Faltan campos por diligenciar"
168
Proyecto: Pereira Circula No.
Webservice
4
Función Borrar vehículo
Tipo DELETE URL: BASE + “vehiculos/” Parámetros a enviar
usuario RegistrationId del dispositivo, para validar que el usuario dueño del vehículo es el que lo está eliminando
id_vehiculo Identificador del vehículo
Respuestas
200 Success "detalle":"Vehículo eliminado correctamente"
JSONArray
400 Error "detalle":"Faltan campos por diligenciar"
JSONArray
400 Error "detalle":"Atención el usuario no existe"
JSONArray
400 Error "detalle":"El vehículo no existe" JSONArray 403 Error "detalle":"Método no permitido." JSONArray
169
Proyecto: Pereira Circula No. Webservice 5
Función Obtener rutas
Tipo GET URL: BASE +”rutas/”
Respuestas
200 Success JSONArray
Ejemplo respuesta JSON 200 [ { "id": 1, "numero": 25 }, { "id": 2, "numero": 35 }, { "id": 3, "numero": 45 } ] 403 Error "detalle":"Método no permitido." JSONArray
400 Error "detalle":"La ruta no existe"
170
Para abrir la web view se debe ingresar a http://pereiracircula.tk/api/rutasvista/?id= +(id de la ruta)
Proyecto: Pereira Circula No. Webservice 6
Función Obtener noticias, y detalles de una noticia especifica
Tipo GET URL: BASE +”noticias/”
Respuestas
200 Success JSONArray
Ejemplo respuesta JSON 200 [
{
"imagen": "mapa_ruta/dia_sin_carro.png",
"contenido": "El pr\u00f3ximo martes 27 de septiembre se
realizar\u00e1 en algunos municipios de Risaralda el d\u00eda sin carro y sin moto.", "fecha": "2016-09-20",
"link": "",
"es_importante": true,
"titulo": "D\u00eda sin carro y sin moto", "id": 8
}, {
"imagen": "mapa_ruta/circunvalar2.jpg",
"contenido": "La infraestructura que unir\u00e1 la carrera 12 bis con la 9a en Pereira ser\u00e1 de 70 metros, adem\u00e1s contar\u00e1 con 2 luces de 35 metros cada una, una calzada de 7.20 metros y 2 andenes de 2.20 metros. Se contempla que el ancho de la obra quede de 14.80 metros",
"fecha": "2016-09-06",
"link": "http://www.eldiario.com.co/seccion/LOCAL/el-puente- que- unir-la-av-circunvalar-con-el-centro-de-pereira-valdr-10- 000-
millones1609.html",
"es_importante": true,
"titulo": "El nuevo puente de la Av. Circunvalar", "id": 3
} ]
171
403 Error "detalle":"Método no permitido."
JSONArray
Proyecto: Pereira Circula No. Webservice 7
Función Obtener datos sobre el pico y placa de Pereira
Tipo GET URL: BASE +”picoyplaca/”
Respuestas
200 Success JSONArray
Ejemplo respuesta JSON 200 {
"sunday": "", "monday": " 0 1", "descripcion": [ {
"descripcion": "Para los autom\u00f3viles el pico y placa rige con el \u00faltimo d\u00edgito num\u00e9rico de la placa y en las motocicletas rige con el primer d\u00edgito num\u00e9rico de la placa. El horario del pico y placa es 7 AM - 7 PM. Los d\u00edas festivos no hay el pico y placa.",
"ruta": "ruta_pico_y_placa/mapa-pereira-pico-placa.png" } ], "tuesday": " 2 3", "friday": " 8 9", "wednesday": " 4 5", "thursday": " 6 7", "saturday": "" } 403 Error "detalle":"Método no permitido." JSONArray