“APLICACIÓN PARA UBICAR LAS RUTAS DEL TRANSPORTE …
Transcript of “APLICACIÓN PARA UBICAR LAS RUTAS DEL TRANSPORTE …
“APLICACIÓN PARA UBICAR LAS RUTAS DEL TRANSPORTE
URBANO DEL ESTADO DE MÉXICO
(APP REDEDOMEX)”
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD PROFESIONAL
“ADOLFO LÓPEZ MATEOS” ZACATENCO
PRESENTAN:
MERLINA CONCEPCIÓN FLORES ARREDONDO
CYNTHYA YAZMIN GARCIA SANCHEZ
ASESORES:
M. en C. ALEJANDRO HERRERA MARTINEZ
M. en C. DAVID VÁZQUEZ ÁLVAREZ
CIUDAD DE MÉXICO, MARZO 2019.
TESIS
PARA OBTENER EL TÍTULO DE:
INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
IPN-ESIMEZ
APP
REDEDOMEX
1
Resumen
El siguiente trabajo de investigación, tiene como finalidad indicar la ruta de la zona que recorre
el transporte público del Estado de México, para fines de prueba se tomará la ruta del municipio
de Nezahualcóyotl. La realización de este proyecto, tiene como objetivo brindar al usuario una
alternativa para ubicar la zonas en las que circulan las unidades de transporte urbano del
municipio antes mencionado, con la finalidad de que si no conoce el lugar o región a la cual
desea llegar, le sirva como una opción de toma de decisión de cómo hacer uso de ese medio de
transporte. Surge de la necesidad de que, si un usuario requiere hacer uso de los transportes
urbanos del Estado de México y no tiene la suficiente información de las rutas por las que
circulan los microbuses, utilizando su dispositivo móvil pueda visualizar de forma gráfica el
recorrido que se realiza, desde el punto inicial y final que llevan a cabo. Con el objetivo de que el
usuario pueda llegar a su destino sin el problema de que se pierda en alguna zona desconocida.
El prototipo que a continuación se muestra, basó su desarrollo para sistemas operativos Android,
el motivo por el que se consideró utilizar este sistema operativo es debido a su extensa cobertura
dentro de la telefonía móvil. Para la realización se hará uso del entorno de desarrollo integrado
(IDE) Android Studio, software oficial para el desarrollo de aplicaciones Android, el cual utiliza
un lenguaje de programación orientado a objetos.
IPN-ESIMEZ
APP
REDEDOMEX
2
Índice
Contenido
Resumen .............................................................................................................................. 1
Índice ................................................................................................................................... 2
Glosario Técnico ................................................................................................................. 7
Capítulo 1 ............................................................................................................................ 9
1. Introducción…………………...………………………………………………………..9
1.1 Introducción…………….......………………………………………………....………9
1.2 Objetivos………………...…………………………………………………………...10
1.2.1 General.………………………………………….......……………………………..10
1.2.2 Particulares…….………………...…………………………………………………10
1.3 Planteamiento del Problema………...……………………………………………….11
1.4 Justificación…………………………...……………………………………………..11
1.5 Alcances……………………………………………………………………………...12
1.6 Marco Metodológico…………………………………………………………………12
Capítulo 2 .......................................................................................................................... 13
2. Estado del Arte………………………………………………………………………...13
2.1 Antecedentes……………………………...………………………………………….13
2.1.1 Teléfono Celular o Móvil…………………………………………………………..13
2.1.2 Funcionamiento…………………………………………………………………….13
2.1.3 Era Digital………………………………………………………………………….14
2.1.3.1 Aparición en el Mercado………………………..………………………..14
2.1.3.2 Mejoras al Dispositivo…………………….……………………………..15
2.1.3.3 Variación de los Dispositivos en el Tiempo…………….……………….15
IPN-ESIMEZ
APP
REDEDOMEX
3
2.2 Sistemas Operativos………………………………………………………………….16
2.3 Historia y Evolución de los Entornos de Programación Móvil…………...…………17
2.4 Aplicaciones Móviles para el Transporte Público…...………………………………17
2.5 El Valor de las Aplicaciones Android Dentro de Google en el Mercado……………21
Capítulo 3 .......................................................................................................................... 23
3. Análisis y Diseño……………...………………………………………………………23
3.1 Análisis…………….......…………………………………………………………….23
3.1.1 Conocimiento de las Herramientas y Recursos para el Desarrollo de Aplicaciones23
3.1.1.1 Comparativas de Entornos de Desarollo para Aplicaciones Móviles…...23
3.1.2 Android………………………………………………………...…………………..25
3.1.2.1 Versiones de Android en los Dispositios Móviles…….…………………25
3.1.3 Marco General e Introducción al Entorno de Desarrollo de Android Studio...……26
3.1.3.1 Arquitectura de Android……….....……………………………………...26
3.1.3.2 El Núcleo de Linux………….…………………………………………...26
3.1.3.3 Runtime de Android………………………………......………………….27
3.1.4 Lenguajes de Programación…………………………………....…………………..27
3.1.4.1 Surgimiento de Java………………………………….....………………..27
3.1.4.2 Nacimiento de XML………………………………….………………….27
3.1.5 Android SDK…………………………………………...………………………….28
3.1.6 APIs en Google………………………………….......……………………………..30
3.1.6.1 Funcionamiento de las APIs Implementadas en Android Studio.....…….30
3.1.6.2 Servicios………..………………………………………………………...31
3.1.6.3 Google Maps Android API………………………………….…………...31
3.1.6.4 Google Maps Geolocation API………………………….……………….32
3.1.7 Componentes de una Aplicación………………………………….......…………...32
IPN-ESIMEZ
APP
REDEDOMEX
4
3.1.7.1 APK Archivo para el Móvil…………………………….………………..33
3.2 Análisis del Costo/Beneficio de la Creación de la Aplicación………………...…….34
3.3 Diseño……………….......…………………………………………………………...36
3.3.1 Ubicación del Mapa del Prototipo a Diseñar…………………………...………….36
3.3.2 Obtención de la Clave de API Google Maps………………………...…………….37
3.4 Uso del Móvil en los Pobladores…..………………………………………………...48
3.4.1 Conclusión de las Encuestas.……………………………………………………....49
Capítulo 4 .......................................................................................................................... 50
4 Construcción e Implementación………………………………………………………..50
4.1 Construcción de la Aplicación……………………….......…………………………..50
4.1.1 Iniciando un Proyecto en Android Studio………………………....……………….50
4.1.2 Obtención del Mapa y Ubicar Localización………...……………………………..53
4.2 Diseño de la Interfaz……….......…………………………………………………….55
4.3 Requisitos Previos a la Compilación de la Aplicación……………...……………….57
4.4 Requerimientos para su Funcionamiento…………….……………...……………….58
4.4.1 Usuarios……………………………...…………….……………...……………….58
4.4.2 Infraestructura………………………..…………….……………...……………….58
4.4.3 Instalación………………………………………….……………...……………….58
Conclusiones ..................................................................................................................... 59
5.1 Trabajos Futuros……………………….…………….……………...……………….60
Anexos……………………….…………….……………...……………………………..61
Anexo A……………………………………………………………………………….....61
Manifiesto de Google Maps para el uso de los mapas…………………………………...61
Anexo B…………………………………..……………………………………………...61
Módulos de las clases para el trazado de rutas y visualización del mapa de Google……61
IPN-ESIMEZ
APP
REDEDOMEX
5
Anexo C………………………………………………………………………………….66
Diseño de la interfaz de usuario………………………………………………………….66
Referencias……………………………………………………………………………….68
Índice De Figuras
Capítulo 1
Figura 1.1: Tabla del número de habitantes por municipio en el Estado de México. ................... 10
Figura 1.2: Diagrama de Bloques de la Metodología de Desarrollo............................................. 12
Capítulo 2
Figura 2.1: Motorola Tought Talker(1985). ................................................................................. 14
Figura 2.2: Evolución del teléfono celular. .................................................................................. 15
Figura 2.3: Aplicaciones para Transporte Público. ...................................................................... 17
Figura 2.4: Forma de la App. ....................................................................................................... 19
Figura 2.5: Birmingham City Council Mapa. .............................................................................. 20
Figura 2.6: Estadística de Crecimiento del Mercado de las Aplicaciones. .................................. 21
Capítulo 3
Figura 3.1: Versiones de Android. ............................................................................................... 25
Figura 3.2: Captura de Pantalla del Emulador de Android Studio. ............................................ 30
Figura 3.3: Menú de Seguridad en el Dispositivo Móvil. ............................................................ 34
Figura 3.4: Mapa del Municipio de Nezahualcóyotl. .................................................................. 37
Figura 3.5: Captura de pantalla de la Consola de Google. ........................................................... 38
Figura 3.6: Opción de proyecto. .................................................................................................. 38
Figura 3.7: Captura de pantalla de la forma de dar de alta las credenciales. ............................... 39
Figura 3.8: Obtención de la clave de API. ................................................................................... 39
IPN-ESIMEZ
APP
REDEDOMEX
6
Figura 3.9: APIs Habilitadas. ....................................................................................................... 40
Figura 3.10: Captura de Pantalla Código de ejemplo de mapa. ................................................... 40
Figura 3.11: Captura de Pantalla de Ejemplo del Mapa en el Emulador. .................................... 41
Capítulo 4
Figura 4.1: Menú de Inicio Android Studio. ................................................................................ 50
Figura 4.2: Creación de Proyecto en Android. ............................................................................ 51
Figura 4.3: Menú de Selección. ................................................................................................... 51
Figura 4.4: Porcentajes de Uso de las Versiones de Android. ..................................................... 52
Figura 4.5: Captura de Pantalla. Selección de Actividad a Realizar. .......................................... 53
Figura 4.6: Captura de Pantalla. Código donde se Muestra la Clave API. .................................. 54
Figura 4.7: Código para Declarar los Valores de Latitud y Longitud. ........................................ 54
Figura 4.8: Código de Diseño de la Interfaz de Usuario. ............................................................. 56
Figura 4.9: Declaración de Dependencias. .................................................................................. 57
Figura 4.10: Declaración de Permisos. ........................................................................................ 57
Índice De Tablas Y Gráficas Capítulo 3
Tabla 1: Tabla Comparativa de los Entornos de Desarrollo para Aplicaciones Móviles ............ 24
Tabla 2: Sueldo bruto promedio por entidad federativa. mensual, en pesos mexicanos ............. 35
Gráfica 1: Número de usuarios que usan el transporte público ................................................... 43
Gráfica 2: ¿Qué tipo de transporte se usa más?. .......................................................................... 44
Gráfica 3: Uso en la semana del transporte ................................................................................. 34
Gráfica 4: ¿Qué tanto conocen las rutas?. .................................................................................... 37
Gráfica 5: Opciones de consultas. ................................................................................................ 38
Gráfica 6: Tipos de conexión a Internet. ...................................................................................... 38
IPN-ESIMEZ
APP
REDEDOMEX
7
Glosario Técnico
API: (Aplication Programming Interface), las iniciales en inglés de Interfaz de Programación de
Aplicaciones. Es una llave de acceso para hacer uso de funciones que un tercero provee.
APK: (Application Package File) paquete de las aplicaciones Android, utilizado para distribuir e
instalar componentes empaquetados para la plataforma Android en smartphones y tablets.
APP: Vocablo en inglés de Application, nombre comúnmente utilizado para referirse a las
aplicaciones. Software ejecutado en teléfonos móviles y tablets.
Base de Datos: Conjunto de datos organizados de modo tal que resulte fácil acceder a ellos,
gestionarlos y actualizarlos.
Benchmarking: Proceso sistemático para evaluar comparativamente productos, servicios y
procesos. Es el estudio comparativo y analítico de otras aplicaciones, con el fin de determinar la
calidad y características de cada una de ellas, tomándolas como parámetros de referencia.
Dispositivo Móvil: Aparato electrónico de tamaño pequeño, posee capacidad de procesamiento,
conexión a una red, memoria limitada. Una de sus características más destacables es que al ser de
pequeño tamaño puede transportarse fácilmente.
Emulador: Herramienta que permite probar la aplicación sin necesidad de contar con un
dispositivo móvil. De esta forma, se puede ejecutar el código en la computadora y ver los
resultados en la pantalla, con el fin de realizar comprobaciones preliminares sobre el
funcionamiento de la aplicación.
Geolocalización: Localización geográfica de un dispositivo, incluida en un móvil, Tablet o
computadora con conexión a Internet.
GPS: Sistema americano de navegación y localización mediante satélites.
IDE: Acrónimo en inglés de Integrated Development Enviroment, que en español se traduciría
como Entorno de Desarrollo de Aplicaciones. Programa informático compuesto por un conjunto
de herramientas de programación.
Información: Conjunto organizado de datos procesados, constituyen un mensaje sobre
determinado tema.
IPN-ESIMEZ
APP
REDEDOMEX
8
Interfaz de Usuario: Capa que existe entre el usuario y el dispositivo, es lo que le permitirá al
usuario interactuar de forma gráfica, a través de la pantalla del dispositivo con la aplicación.
Internet: Sistema mundial de redes de computadoras interconectadas. Actualmente es un espacio
público utilizado por millones de personas en todo el mundo como herramienta de comunicación
e información.
JavaScript: Lenguaje de programación principalmente en proyectos web como páginas o
aplicaciones, actúa en conjunto con HTML y CSS.
Lenguaje de Programación: Sistema de escritura para la descripción precisa de algoritmos o
programas informáticos.
Librería: Conjunto de código externo que puede aprovecharse para conseguir determinadas
acciones.
SDK: (Software Development Kit) o “Kit de desarrollo de software”, provee a los
programadores herramientas necesarias para desarrollar el código de una aplicación.
Servicio: Objeto que se ejecuta en segundo plano, sin necesidad de interfaz gráfica.
Sistema Operativo: Software que contiene cada uno de los teléfonos y sobre el cual se ejecutan
las aplicaciones. Ejemplo de ello son: Android, iOs y Windows Phone.
Smartphone: Conocidos como teléfonos inteligentes en los cuales se pueden hacer funciones
similares de una computadora. Ejemplo de esto es la edición de documentos, navegar por
Internet, compartir información, etc. Están diseñados para ejecutar una variedad de aplicaciones.
IPN-ESIMEZ
APP
REDEDOMEX
9
Capítulo 1
1. Introducción.
1.1. Introducción.
El presente proyecto consiste en la elaboración de una aplicación para dispositivos
móviles con sistema operativo Android, que apoye a los usuarios en recorrido de las rutas
del transporte urbano del Estado de México del municipio de Nezahualcóyotl.
En las grandes urbes del mundo, en las ciudades más pobladas de México, es necesario el
transporte público para trasladarse de un lugar a otro, pero usarlo es un peligro. La
población en el municipio de Nezahualcóyotl ha aumentado, en la actualidad son un 1
millón 039, 867 habitantes, según el último censo del INEGI. [Argüelles Efrén, Excelsior,
2017]
Para realizar la aplicación se pueden utilizar los distintos entornos de desarrollo
enfocados en la creación de aplicaciones. Una aplicación para el transporte público,
puede entenderse como una herramienta digital, que brinda información para que el
usuario pueda trasladarse de un lugar a otro indicándole la parada cercana o información
sobre las rutas por las que circula, resultándole de mucha utilidad.
Existen personas que no conocen las rutas de transporte urbano del municipio de
Nezahualcóyotl pero necesitan trasladarse de un lugar a otro de una manera económica,
por lo que hacen uso de este medio de transporte. Por este motivo una aplicación que
muestre las rutas que circulan por esta zona y cuales les convienen abordar sería
beneficiosa.
Una aplicación en sus dispositivos móviles les brindaría la opción de conocer las rutas
del transporte urbano en este sector del Estado de México y así llegar a su destino.
IPN-ESIMEZ
APP
REDEDOMEX
10
Figura 1.1 Tabla del número de habitantes por municipio en el Estado de México.
Fuente: INEGI. Encuesta Intercensal 2015.
1.2. Objetivos
1.2.1 General
Diseñar y desarrollar una aplicación que proporcione información a los usuarios de
transporte público para llegar de un punto a otro, por medio de las rutas de transporte
público del Estado de México.
1.2.2 Particulares
• Establecer una zona del Estado de México con la que se realizarán las pruebas para el
trazado del recorrido de una ruta.
• Analizar la información de rutas de transporte público del sector de Nezahualcóyotl.
• Diseñar una aplicación que muestre el mapeo del recorrido que realizan las rutas del
transporte urbano de la zona de Nezahualcóyotl, ubicando las paradas que realizan y
los transbordes necesarios.
• Desarrollar una aplicación móvil para teléfonos móviles que usan Android con
geolocalización.
IPN-ESIMEZ
APP
REDEDOMEX
11
1.3. Planteamiento del Problema
Desarrollar una aplicación móvil la cual muestre las rutas que maneja el transporte
público en la zona del Estado de México en el municipio de Nezahualcóyotl, dando la
ruta más cercana a la ubicación de usuario en tiempo real. No mostrará el tiempo de
espera para abordar, solo mostrara el punto donde puede abordarlo.
Dará la información básica de los distintos transportes que lo acerquen o lleven al destino,
el usuario podrá decidir cuál es el más conveniente de acuerdo a sus necesidades.
Actualmente no existe una vía de información clara de las rutas del Estado de México en
el municipio de Nezahualcóyotl, los usuarios primerizos incluso los que diariamente se
transportan por este medio, no cuentan con la información precisa de paradas e
intersecciones de microbuses, combis u otro medio que forma parte del transporte
público de esta urbe.
La inserción de nuevas rutas, modifica el sistema de movilidad, lo que provoca que se
tenga que reorganizar los recorridos y paradas, tiendo como necesidad una forma de
difusión informativa dirigida a los usuarios que hacen de este su medio de transporte, que
les permita comprenderlas, conocerlas y saberlas utilizar.
1.4. Justificación
Se pretende elaborar esta aplicación como recurso de ayuda para los usuarios del
transporte público del Estado de México en la zona de Nezahualcóyotl que colinda con la
CDMX, ya que actualmente no hay aplicación que muestre las rutas por donde circula
este tipo de transporte público. Se desea brindar una aplicación a los usuarios del
transporte urbano que diariamente circulan por esa zona, así como a los nuevos usuarios
que por primera vez hacen uso de este medio de transporte.
Actualmente existen varias aplicaciones de transporte público, pero no se cuenta con
alguna aplicación que se centre en el estudio del transporte urbano de la zona del Estado
de México.
Aplicaciones como Moovit, Waze y CityMapper, por mencionar algunas. No cuentan con
la red de transporte urbano del Estado de México dentro de la zona de Nezahualcóyotl,
siendo descartables al momento de que el usuario se encuentre en esta zona. Estas
aplicaciones se enfocan más en los transportes colectivos como: el metro, metrobus y
IPN-ESIMEZ
APP
REDEDOMEX
12
mexibus, los cuales sus rutas de transporte se encuentran dentro de las inmediaciones de
la CDMX, siendo este su alcance y con bases ya establecidas en su recorrido.
1.5. Alcances.
Se pretende delimitar el alcance de la aplicación a la zona del Estado de México, que
colinda en los límites de la CDMX, para la realización de este proyecto solo se realizarán
las pruebas con el municipio de Nezahualcóyotl. Al obtener la base de datos de las rutas
que circulan en esa zona se obtuvieron las siguientes:
El desarrollo se elaborará en un entorno de Android Studio, la mayoría de los usuarios
utilizan dispositivos con sistema operativo Android, al este ser un sistema operativo que
destaca sobre otros en cuanto a mayor uso se procederá a desarrollar la aplicación.
Durante el proceso del análisis para elegir la interfaz de desarrollo, en el capítulo III se
mostrará una tabla comparativa con la características de algunas plataformas de
desarrollo de aplicaciones, también se desarrollará el motivo por el que el IDE en el que
se trabajará el presente prototipo será desarrollado en Android Studio.
1.6. Marco Metodológico.
Para el presente proyecto, que consta del diseño de una aplicación móvil se llevó a cabo
la siguiente metodología para su desarrollo:
Figura 1.2 Diagrama de Bloques de la Metodología de Desarrollo.
Análisis de Programas
• Evaluar los tipos de entornos de desarrollo.
Caracteristicas y Obtención de Información
• Investigar y conocer los lenguajes a usar.
Google Developers
• Plataforma de desarrollo.
Creación del Entorno
• Hacer modificaciones de acuerdo a las necesidades.
IPN-ESIMEZ
APP
REDEDOMEX
13
Capítulo 2
2. Estado Del Arte. 2.1. Antecedentes.
2.1.1 Teléfono celular o móvil.
A través de los años los avances tecnológicos han ido mostrando nuevos dispositivos que
facilitan la vida cotidiana de los seres humanos, con la llegada de las redes de
comunicación telefónica se logró establecer comunicación de un lugar a otro a pesar de la
distancia. En los últimos años la sociedad ha sido testigo de los nuevos desarrollos y
mejoras que ha tenido la telefonía móvil, en este capítulo se hablará de la historia de los
teléfonos móviles y como han ido mejorando, las nuevas tecnologías que se les han ido
integrando y como ha ido evolucionando con el transcurso del tiempo.
Siendo un equipo para la segunda guerra mundial se trataban de dispositivos
inalámbricos con alcance de 600km de onda de radio creado por la compañía Motorola,
el modelo llamado Handie Talkie H12-16 era pesado y se transportaba en la espalda
dentro de una mochila adaptada.
En los años 80’s se comercializa para gente de negocio y como un accesorio de lujo, que
solo algunos podían costear.
2.1.2 Funcionamiento
Desde el telégrafo los teléfonos operan con la ayuda de una red y los teléfonos celulares
no son la excepción, utilizando una gran red que sigue evolucionando y adaptándose a un
mercado exigente, el sistema de esta red se lleva en tiempo real y se monitorea el flujo de
voz y el tráfico de información.
Esto se logra por el enrutamiento dentro de conmutadores multiplex digitales llevado a
cabo en diferentes partes del mundo dentro de las oficinas de las empresas de telefonías
móviles, siendo un ejemplo la llamada hecha desde nuestros hogares, esta viaja por cable
de cobre a una primera red de cables troncales, que pueden estar en los postes o en líneas
subterráneas, la línea troncal llega a una oficina central que conecta la línea del cliente
con otro tipo de cable llamado par trenzado terminando en una tarjeta de línea donde es
codificada de análoga a digital, la cual se manda por fibra óptica a su destino
dependiendo del cual sea, tomara diferentes caminos ya sea por repetidores, ondas de
IPN-ESIMEZ
APP
REDEDOMEX
14
microondas, si la señal viajara a otro continente se puede usar cables submarinos o vía
satelital.
La dirección destino esta decodificada en el número telefónico, este tiene 3 códigos, este
código le dice a qué línea de larga distancia está ubicado el remitente (código de área),
otro contiene la información de la oficina que corresponde a su zona (prefijo) y por
ultimo un conmutador lee la dirección del cliente al que fue hecha la llamada (número del
cliente).
2.1.3 Era Digital
En 1999 comienza la era digital telefónica, los conmutadores son cambiados rápidamente
por los digitales, siendo utilizados tanto para líneas locales como para los móviles.
2.1.3.1 Aparición en el Mercado
Figura 2.1 Motorola Tought Talker(1985).
Fuente: History Channel. Historia del Teléfono. Recuperado de: https://www.youtube.com/watch?v=xemRmISrHKQ
En principio los teléfonos inalámbricos se encontraban empotrados en algunos modelos
de vehículos, su modelo era casi similar al usado en la guerra, se basaba en radios
móviles con procesadores.
El gran paso a la tecnología portátil la logro Intel, con su ayuda se logró hacer más
compacto el sistema interno, con su microcomputador 8008 la unidad lógica del modelo
Motorola DynaTAC 8000X sale al mercado en 1984.
IPN-ESIMEZ
APP
REDEDOMEX
15
Pero aún no existe la red que satisfaga las necesidades de este teléfono, por lo que las
empresas telefónicas comienzan a apostar a la creación de dicha red.
Esta red llamada sistema celular, consta de antenas pequeñas en ciertos puntos de una
ciudad, cada antena da servicio a un área de ciertas dimensiones (13 Km a 30 Km de
radio) al moverse por las antenas la computadora interna hace el cambio de una a otra
automáticamente.
La señal era ineficiente y con zonas sin cobertura, incluso entre las mismas antenas,
algunos reglamentos y sanciones fueron puestos por el peligro que representan las
antenas ya sea ubicación material o caídas de las mismas.
Este problema se solucionó con la adaptación de seguimiento, este método triangula la
ubicación basada en una red que mide la intensidad de la señal del móvil entre 3-4 torres.
Algunos métodos más precisos incluyen la tecnología GPS (sistema de posicionamiento
global) esta consiste en usar los satélites que triangulan la posición del móvil sin importar
donde esté ubicado, gracias a las redes inalámbricas codificadas digitalmente.
2.1.3.2 Mejoras al Dispositivo
Figura 2.2 Evolución del teléfono celular.
Fuente: Curiosfera. Historia del Teléfono y su Evolución. Recuperado de: http://www.curiosfera.com/historia-del-
telefono/
2.1.3.3 Variación de los Dispositivos en el Tiempo
Los celulares comienzan a ser populares en los 90’s siendo un estuche de gadgets en sí,
aumentando las funciones internas como: reloj, agendas, calculadoras, etc.
Estas funciones fueron en incremento conectándonos de formas inimaginables, en este
tiempo los teléfonos celulares no solo sirven para llamadas y envió de texto ya sea por
IPN-ESIMEZ
APP
REDEDOMEX
16
wi-fi, bluetooth, o usando la red. Más que unos simples teléfonos, son computadoras que
funcionan con sistemas operativos específicos y optimizados según las condiciones de
cada aplicación, como tarjeta de wi-fi, antena GPS y antena emisora-receptora, capacidad
de envió de archivos, cámaras de gran potencia y mínimo tamaño.
Las terminales de hoy día, están preparados para permanecer conectados, tanto a la red de
telefonía como a la red de tráfico de datos e Internet, de alta velocidad, de manera
simultánea y permanente, ya que las baterías en promedio aguantan el funcionamiento
del dispositivo de manera correcta durante todo el día.
2.2. Sistemas Operativos
Los sistemas operativos son el software que ejecuta la interfaz de la computadora
logrando la interacción de usuario máquina, soporta los programas creados por su
compañía.
De un tiempo a esta parte, el boom de la telefonía móvil ha explotado, impulsado por la
aparición de sistemas operativos cada vez más y más complejos hasta el punto de
asemejarse mucho a los NetBooks actuales.
Los sistemas operativos fueron creados en primer lugar para computadoras de escritorio
y portátiles, los que ocupa los celulares son más simples lo que los hace totalmente
diferentes unos de otros, son orientados a la conectividad inalámbrica y a necesidades
específicas.
Los sistemas operativos que actualmente se puede encontrar en los dispositivos móviles
son principalmente Android, iOs y Windows Phone. Siendo el primero de estos en el que
se realizarán las pruebas del prototipo a realizar. Una de las principales razones por las
que se optó por realizar en Android, es debido a que estadísticamente la mayor parte de
los usuarios que hacen uso del transporte urbano del Estado de México y que cuentan con
un Smartphone, contiene sistema operativo Android.
En el siguiente capítulo se dará a conocer las herramientas que fueron utilizadas para el
desarrollo del prototipo del proyecto, se describirá cada una de ellas, las ventajas y
beneficios que ofrecen para los programadores en el desarrollo de aplicaciones móviles.
IPN-ESIMEZ
APP
REDEDOMEX
17
2.3. Historia y Evolución de los Entornos de Programación Móvil
Dentro de la industria de los dispositivos móviles y aplicaciones móviles se encuentran
en cambios constantes a lo largo de los últimos años. Plataformas de distribución,
operadas por las compañías propietarias de los sistemas operativos móviles como lo es el
caso de Android, iOs, Blackberry y en algún tiempo Windows Phone, se han ido
modernizando en el trascurso del tiempo, las tiendas de aplicaciones brindan grandes
ganancias a estas empresas lo que implica que constantemente exista una gran demanda
de desarrolladores con especialidad en tecnologías móviles.
Las principales medidas para el desarrollo de aplicaciones móviles han ido cambiando y
lo seguirán haciendo. Una de ellas es la popularidad de las diferentes plataformas entre
los desarrolladores. En los últimos años se ha producido una migración en las
preferencias de los desarrolladores hacia nuevos sectores como IOS y Android.
Las aplicaciones móviles, a las cuales también se le denomina apps, se encuentran muy
presentes en los teléfonos desde hace algún tiempo. Sistemas operativos como Nokia o
Blackberry ya contaban con aplicaciones años atrás.
2.4. Aplicaciones Móviles para el Transporte Público
Existen algunas aplicaciones que están en el mercado actual, cabe destacar que estas
aplicaciones solo cuentan con los transportes que se encuentran en la CDMX y algunos
del Estado de México, pero que ya cuentan con rutas establecidas tal es el caso del
metrobus, mexibus, metro, tren suburbano y RTP.
Entre las aplicaciones que se centran en el transporte público y más específicamente en
los usuarios del mismo, se mencionarán los que mayor alcance tienen en el público
mexicano.
Figura 2.3 Aplicaciones para Transporte Público.
IPN-ESIMEZ
APP
REDEDOMEX
18
Una aplicación que es internacional es Moovit, esta aplicación engloba varios países, en
los que presenta sus servicios de transporte y también han puesto sus servicios en nuestro
país, siendo popular en 1,200 ciudades de 70 países.
Su forma de operar consta de dos pasos:
1. Se ha acercado a los gobiernos de las ciudades y ha pedido los GTFS (General
Transit Feed Specification), que son las descripciones de las rutas de transporte
público de una ciudad, las líneas y paradas existentes, así como la frecuencia con la
que se mueven las unidades. De esta manera se crea un mapa de transporte público
con datos oficiales.
2. Los comentarios y revisiones que los usuarios hacen de las rutas y paradas, mejoran
los algoritmos y experiencia del uso de la aplicación.
Pero estas rutas no cuentan las rutas del Estado de México, por ser de otras dependencias.
Por lo que aun siendo una aplicación que cuenta con respaldo de la empresa con el
mismo nombre y 6 años de trabajo para mejorarla y expandirla.
Además de no mostrar las rutas de bus que se encuentran cerca del usuario, si no que el
mismo usuario debe de conocerlas siendo que el nivel de experiencia que debe tener el
usuario para usar Moovit debe ser media.
Citymapper, fue creada en Londres, esta aplicación ha tomado terreno en varios países
entrando en competencia con las grandes empresas como Google. En un principio solo
era para el sistema operativo iOS, estaba enfocada únicamente en las rutas de autobuses
por Londres, pero tiene una limitación, ya que solo funciona en 30 ciudades. Su función
principal es que el usuario pueda planear sus rutas utilizando el transporte público, si
bien, también sirve para ir a pie, en bicicleta o, en algunas ciudades por otros medios de
transporte. En 2013, hace alianza con el monopolio de Google y se une a la plataforma
de Android, abarcando más ciudades pero sin enfocarse en pequeñas urbes sino en las
grandes ciudades de los países.
A lo largo de los años ha cambiado de forma y algoritmo, pero aún hay deficiencias para
adaptarse al transporte de la CDMX. Aplicaciones como Citymapper, para que lleguen a
ciudades, especialmente aquellas en las que el transporte es más caótico y existen menos
datos disponibles.
IPN-ESIMEZ
APP
REDEDOMEX
19
Waze es una aplicación de mapas, tránsito y navegación, está aplicación cuenta con un
sistema en el que los mismos usuarios de la aplicación publican información del tráfico o
sucesos que acontezcan, lo que hará que se ahorre tiempo durante el transcurso del viaje.
En el mercado nacional, existen algunas aplicaciones especialmente diseñadas para los
transportes de la Ciudad de México, tal es el caso de MasMetro y Metrobus.
Metro – Metrobus México es una aplicación creada para viajar solo en la Ciudad de
México y área metropolitana. Está centrada en consultar los mapas, rutas, transbordes
entre estaciones e información general de los principales transportes de gobierno.
La aplicación cuenta con la capacidad de mostrar cada una de las redes de transporte por
mapa, estación o línea, permite trazar rutas con la estación más cercana al usuario, con el
GPS le permitirá ubicar el camino a tomar dentro de la red de transporte y acercar al
usuario a su destino.
Metro – Metrobus guía los recorridos de los principales transportes de la CDMX, que
son el metro y metrobus, tren suburbano, tren ligero, mexicable y mexibus, con el
propósito de facilitar la movilidad.
Estas aplicaciones fueron creadas para dar a conocer los recorridos de los transportes
públicos que dependen del gobierno, así como sus conexiones entre ellas mismas.
Siendo similares a las demás, contando con los mismos servicios que ofrecen las otras
apps y dirigidas a transportes enfocados en la CDMX.
Figura 2.4 Forma de la App.
IPN-ESIMEZ
APP
REDEDOMEX
20
En México, no se cuenta con una guía como tal de los transportes urbanos que no sean
parte de las redes manejadas por el gobierno, mientras que en otros países se pueden
encontrar estos sitios web, que han evolucionado adaptándose a las necesidades de los
pobladores.
En algunos países primermundistas, se han dado a la tarea de mejorar su transporte
colectivo para reducir la dependencia de los habitantes al automóvil. Siendo una página
donde se da toda la información que necesita el usuario para recorrer esta ciudad y un
municipio metropolitano perteneciente al Reino Unido, ubicado en el condado de
Midlands Occidentales. Por su población, Birmingham está considerada a la segunda
ciudad del país, se han dado a la tarea de crear y remodelar las rutas públicas, junto con
la creación de una página que les dé información sobre ella, tanto horarios como rutas.
Figura 2.5 Birmingham City Council Mapa.
Fuente:
https://www.birmingham.gov.uk/info/20013/roads_travel_and_parking/498/birmingham_connected
La página se encuentra en servicio actualmente y el proyecto está contemplado a terminar
en 20 años. Siendo los transportes del gobierno y no de uso confederado como lo es en
nuestro país.
Este proyecto, no solo muestra las rutas y ayuda al planear las salidas usando el
transporte de bus de Inglaterra, si no que tomara la infraestructura vial del poblado y la
reorganizará para dar un mejor servicio al usuario. Para su mayor comodidad al momento
de utilizar los servicios de transporte tanto para los nativos como para los turistas
extranjeros.
IPN-ESIMEZ
APP
REDEDOMEX
21
En los últimos años los usuarios europeos han optado por la bicicleta como medio de
transporte haciendo que este proyecto se adapte las necesidades y exigencias de los
pobladores creando rutas para ciclistas.
2.5. El Valor de las Aplicaciones Android Dentro de Google en el Mercado
Google Play, como el principal mercado de aplicaciones Android, funciona a base de
tendencias. Google Play, forma parte de los más importantes mercados de las
aplicaciones, aunque existen otro tipo de mercados.
En la actualidad el mercado es manejado por Google Play, siendo el portal que provee la
mayor parte de las apps para Android, las cuales pueden descargarse en la Google Play
Store, aun siendo es ella la tendencia de los usuarios de Google Play es que “todo debe
ser gratis”.
Sin publicidad, Google Play no podría ofrecer una amplia variedad de aplicaciones y
juegos con los que cuenta actualmente. Esto hace que casi todas las apps y juegos sean
de pago. Algunos desarrolladores optarían por elegir un modelo “fremium” que es dar
una parte gratis, enganchar al usuario y cobrar por el resto.
Mientras los usuarios no estén dispuestos a aceptar que el desarrollo de apps requiere de
muchos conocimientos técnicos, y además muy complejos, así como el tiempo requerido
para idear, diseñar, desarrollar y realizar pruebas a la app, tendrán que seguir existiendo
apps con publicidad. La publicidad, se ha convertido en un aliado para los
desarrolladores de aplicaciones, ya que el trabajo del programador viene pagado por este
medio.
En la siguiente gráfica se denota el incremento de este mercado:
Figura 2.6 Estadística de Crecimiento del Mercado de las Aplicaciones.
IPN-ESIMEZ
APP
REDEDOMEX
22
En este capítulo se presentaron las aplicaciones que se pueden encontrar en el mercado y
que brindan los servicios de ubicaciones de rutas de los servicios del transporte público
dentro de la Ciudad de México. Así como el crecimiento que han tenido dentro del
mercado de las aplicaciones móviles.
En el siguiente capítulo se darán a conocer las diferentes plataformas de desarrollo que
existen para la creación de aplicaciones móviles, sus características y cuál es la más
óptima para el desarrollo del presente proyecto.
También se informará sobre el entorno de desarrollo seleccionado para la elaboración
del proyecto, las herramientas del mismo, así como su arquitectura. Los dispositivos
móviles disponen de diferentes versiones de los sistemas operativos, conforme se
realizan actualizaciones las versiones del sistema operativo van cambiando, brindándole
al usuario nuevas opciones y/o actualizaciones para poder hacer uso de nuevas
características en el dispositivo móvil y la corrección de errores de la versión anterior.
Otro de los temas que se tomará en cuenta en el capítulo siguiente serán las herramientas
del entorno de desarrollo utilizado, los paquetes necesarios para realizar su instalación y
una breve descripción, para conocer los beneficios que brindan en la elaboración de
aplicaciones móviles, las API’s que utilizaron durante el desarrollo del proyecto y la
visualización de mapas de Google incorporados dentro de la aplicación desarrollada.
Mostraremos los pasos que se siguieron para la elaboración de la aplicación, en cuanto a
la implementación de las APIs usadas y las capturas de pantalla de como el usuario
visualizará la aplicación en su dispositivo móvil.
Para la elaboración de una aplicación se necesita conocer las necesidades de los usuarios
de aplicaciones móviles, por lo que se requiere realizar encuestas para conocer si la
aplicación es viable, para el caso del presente trabajo se mostrará una serie de gráficas
que reflejan el uso del transporte público en el Estado de México en el municipio de
Nezahualcóyotl, al existir en esta zona varias rutas los usuarios habituales ya conocen las
rutas recorridas, pero para los usuarios nuevos genera cierta confusión, por lo que la
elaboración de este proyecto busca dar a conocer las rutas recorridas a los usuarios que
desconocen las rutas existentes en este municipio.
IPN-ESIMEZ
APP
REDEDOMEX
23
Capítulo 3 3. Análisis y Diseño.
3.1. Análisis.
En el presente capítulo, se presentará la etapa de análisis, en donde se llevará a cabo
comparativas de las plataformas de desarrollo de aplicaciones móviles. Se visualizan
tablas comparativas de las herramientas que se utilizan actualmente en el mercado del
desarrollo de aplicaciones, describiendo de cada una sus características, para
posteriormente presentar el entorno adecuado para realizar la implementación. A
continuación se dará a conocer el entorno de desarrollo a utilizar, sus características y los
beneficios que brinda en cuanto a los otros entornos que fueron analizados en el proceso
de selección.
3.1.1 Conocimiento de las Herramientas y Recursos para el Desarrollo de Aplicaciones.
3.1.1.1 Comparativas de Entornos de Desarrollo para Aplicaciones Móviles.
Los entornos de desarrollo de aplicaciones móviles mejor conocidos como IDE
(acrónimo en inglés de Integrated Development Enviroment), son programas
informáticos compuestos por un conjunto de herramientas de programación. Estos IDE
han sido empaquetados como un programa de aplicación, es decir, contienen un editor de
código, compilador, depurador y constructor de interfaz gráfica (GUI)
Existen diversas plataformas de desarrollo de aplicaciones móviles, entre las más
utilizadas se muestran a continuación:
▪ Xamarin
▪ Adobe PhoneGap
▪ Plataformas web
En la siguiente tabla, se muestran las características que poseen cada una de las
plataformas que son analizadas en esta etapa. Una de las características que destacan a
Android Studio entre las demás es que al ser una plataforma gratuita y de código abierto,
cualquier persona puede iniciarse como desarrollador de aplicaciones.
IPN-ESIMEZ
APP
REDEDOMEX
24
Otra de las ventajas es que Android Studio al pertenecer a Google brinda distintas
herramientas de forma gratuita que pueden ser incorporadas en el diseño de las
aplicaciones, lo cual facilita en el proceso de desarrollo de la aplicación.
Al ser una aplicación que necesitara incorporar la herramienta de Google Maps, Android
Studio ya tiene incorporada la plantilla de mapas, mientras que en el caso de las otras
plataformas se tiene que realizar la descarga de los paquetes necesarios para incorporar
su uso.
Tabla 1 Tabla Comparativa de los Entornos de Desarrollo para Aplicaciones Móviles.
O = cuenta con los requerimientos.
X = no cuenta con lo requerido.
- = Sus alcances son limitados para las necesidades del proyecto.
Con base a la tabla anterior, se puede concluir que actualmente existen múltiples
plataformas de desarrollo de aplicaciones para diferentes sistemas operativos, entre las
que destacan están Xamarin y Android Studio. Estas brindan al desarrollador
documentación en línea, un ejemplo de ello son los pasos que se deben llevar a cabo para
la instalación, por otra parte cuentan con plataformas especiales para desarrolladores en
donde se puede encontrar información en foros donde se discuten temas relacionados
con problemas que se presentan a lo largo del camino en el desarrollo de las aplicaciones.
También cuentan con varios ejemplos de códigos que brindarán un apoyo en el inicio de
la programación.
Entornos
de
desarrollo
Uso de
lenguajes
Plantillas Permisos Compatibles
Maps
Cuotas por
Suscripción
Api google
Plataformas
web
X O X - O -
Xamarin O O X O - -
Adobe
PhoneGap
X O X X O O
Android
Studio
O O O O X O
IPN-ESIMEZ
APP
REDEDOMEX
25
3.1.2 Android
Es un sistema operativo basado en el núcleo de Linux. Fue diseñado en un principio para
dispositivos móviles, Android controla dispositivos por medio de bibliotecas
desarrolladas o adaptadas por Google mediante el lenguaje de programación Java.
Android al ser una plataforma de código abierto permite a los desarrolladores crear y
desarrollar aplicaciones escritas en lenguaje C u otros lenguajes y compilarlas a código
nativo de ARM(API de Android). [1]
3.1.2.1 Versiones de Android en los Dispositivos Móviles
Los dispositivos móviles emplean diferentes versiones de Android debido a las
actualizaciones y correcciones que se realizan en el transcurso del tiempo. A
continuación se muestran las antiguas y actuales versiones que se pueden encontrar en
los diferentes dispositivos móviles.
Figura 3.1 Versiones de Android
El propósito de conocer las versiones de Android es que se debe elegir a partir de que
versión se realizará la programación de la aplicación, con la finalidad de conocer la
compatibilidad y las funcionalidades que se han agregado o modificado.
A partir de la versión 4.1 “Jelly Bean” se realizará la experimentación del proyecto de
rutas de transporte urbano del Estado de México, para realizar dicha programación se
IPN-ESIMEZ
APP
REDEDOMEX
26
hará uso del software Android Studio, el cual nos brinda las herramientas necesarias para
realizar el prototipo.
3.1.3 Marco General e Introducción al Entorno de Desarrollo de Android Studio
A través de los años la telefonía celular ha ido cambiando la vida cotidiana de la sociedad,
en sus inicios solo era un medio de comunicación por el cual su principal objetivo era
comunicar a la sociedad con el exterior por lo que con lo que principalmente se contaba
era llamadas telefónicas y envió de texto por medio de mensajería, las principales
características que poseían los equipos móviles eran limitados, con el pasos del tiempo y
el desarrollo de nuevas tecnologías actualmente los dispositivos móviles cuentan con
mayores capacidades que se muestran semejanza con un ordenador personal, a lo que se
le denomina Smartphone.
El objetivo ya no es simplemente realizar llamadas o en envío de mensajes vía SMS, si
no que incluyen aplicaciones que brindan el usuario la oportunidad de realizar múltiples
tareas en un dispositivo de dimensiones no mayores a 1920x1080 pulgadas y que le
brindan la oportunidad de realizar actividades como las que haría en un ordenador, uno
de los beneficios ya incluidos en estos equipos es que poseen un sistema de ubicación
GPS, el cual posee la capacidad de geo localizar la ubicación en que el usuario se
encuentre.
3.1.3.1 Arquitectura de Android Studio.
Aplicaciones: Cualquier tipo de aplicación escrita en Java.
Framework de las aplicaciones: Acceso al API para rehusar componentes o modificarlos.
Bibliotecas en C/C++: El desarrollador puede usarlas a través del Framework
Runtime de Android: Bibliotecas del lenguaje Java y única instancia en la máquina
virtual Dalvik.
Núcleo Linux: Capa de abstracción del hardware y servicios de seguridad, gestión de
memoria, de procesos, pila de red, modelo de los controladores, etc.
3.1.3.2 El Núcleo de Linux.
Utiliza el núcleo de Linux 2.6, como interfaz entre software y el hardware del sistema,
proporcionando una plataforma de hardware estable sobre la cual se ejecuten las
IPN-ESIMEZ
APP
REDEDOMEX
27
aplicaciones. Esta capa proporciona servicios como la seguridad, el manejo de la
memoria, el multiproceso, la pila de protocolos y el soporte de drivers para dispositivos.
Es la única que es dependiente del hardware.
3.1.3.3 Runtime de Android.
Basado en el concepto de máquina virtual de Java. Debido a las limitaciones de los
dispositivos donde se había de ejecutar Android, como por ejemplo la memoria o que
posee un procesador limitado, no fue posible utilizar una máquina virtual Java estándar.
Google opto por crear una nueva máquina virtual a la que llamó “máquina virtual
Dalvik”, que generó mejores respuestas a estas limitaciones.
3.1.4 Lenguajes de Programación.
Google ha empleado Java como lenguaje de programación para crear aplicaciones
Android. El lenguaje Java es un lenguaje orientado a objetos. Además se usa el
metalenguaje XML para el diseño de interfaces.
3.1.4.1 Surgimiento de Java.
A principios de los años noventa, poner inteligencia en los aparatos domésticos se
consideraba como el siguiente paso de la tecnología. Algunos ejemplos de enseres
domésticos inteligentes incluyen las cafeteras controladas por computadoras, o
televisores controlados por un dispositivo programable interactivo. Anticipándose a un
fuerte mercado para tales dispositivos, en 1991, Sun Microsystems fundó un equipo de
investigación para trabajar en un “Proyecto verde” secreto, cuya misión era desarrollar
software para enseres domésticos inteligentes. [Dean Raymon, Intro. A la programación
con Java].
Al principio Sun nombró el nuevo lenguaje Oak (Roble, nombre que se le dio debido a
que había un árbol que se veía desde la ventana del líder de proyecto, James Gosling),
pero ese nombre ya le pertenecía a otro lenguaje de programación. Fue entonces, que
mientras un grupo de empleados de Sun tomaban un descanso en una cafetería local, se
les ocurrió el nombre de “Java”.
3.1.4.2 Nacimiento de XML.
A mediados de los años 90, el consorcio W3C(World Wide Consortium) quiso conseguir
que la web tuviera un lenguaje más potente y que pudiera darle una estructura semántica.
IPN-ESIMEZ
APP
REDEDOMEX
28
Por este motivo, se propusieron crear un nuevo lenguaje de marcas basado en
SGML(Standard Generalized Markup Language).
Finalmente, en 1998 nació el nuevo lenguaje XML(eXtented Markup Language), más
sencillo que SGML y más poderoso que HTML (Hyper Text Markup Language).
[Tortajada Juan, Lenguaje de marcas].
La difusión que ha tenido XML, ha sido en buena parte por el impulso que le ha dado
Internet y la necesidad de crear, transmitir y procesar información adecuadamente en
distintos campos.
Las ventajas que proporciona son:
• Mayor precisión en la utilización de buscadores.
• Reciclaje del formato según las necesidades.
• Desarrollo de aplicaciones informáticas.
• Uso simultaneo de los documentos.
• Presentación de la información en múltiples dispositivos, como libros electrónicos o
teléfonos móviles.
• Navegación rápida y eficaz.
Al procesar respuestas XML, es necesario utilizar un lenguaje de consulta adecuado para
seleccionar nodos dentro del documento, sin asumir que los elementos residen en
posiciones absolutas dentro del marcado XML.
3.1.5 Android SDK.
Google ofrece de manera gratuita el SDK (Software Development Kit) oficial de Android
Studio. El SDK se refiere a aquellas librerías, serie de drivers, herramientas y recursos
diversos que se deberán instalar para iniciar a programar en Android.
En Android Studio SDK se incluyen las herramientas necesarias para comenzar a
programar un proyecto de aplicación móvil, cuenta también con APIs facilitadas por
Google tanto para el control de ciertas funciones del dispositivo como para la integración
de servicios, cuenta con un depurador, un emulador para visualizar las aplicaciones y
toda la documentación para dar los primeros pasos programando en Android.
Para el caso de Android Studio, cuenta con una interfaz gráfica amigable para el
desarrollador se debe descargar y posteriormente instalar las librerías requeridas del SDK.
Es posible seleccionar las que se necesitan, pero principalmente se tienen que aceptar la
IPN-ESIMEZ
APP
REDEDOMEX
29
licencia y condiciones que se especifican antes de proceder a la instalación, para
posteriormente realizarla.
Android Studio ya incluye algunas SDK preinstaladas, sin embargo no serán suficientes
si se requiere tener un entorno de desarrollo completo.
Las librerías del Android SDK se dividen de la siguiente manera:
• SDK Platforms(Plataformas del SDK)
• SDK Tools (Herramientas del SDK)
• SDK Updates(Actualizaciones del SDK)
• SDK Platforms
Permitirán tener vistas previas en las distintas versiones de Android. Incluye varias
herramientas que requiere la plataforma de Android, incluida la herramienta adb.
Android Debug Bridge (ADB) es una herramienta que permite comunicarse con el
emulador o un dispositivo. Proporciona realizar diferentes acciones en dispositivos, como
la instalación y depuración de apps.
Se requiere al menos una plataforma para poder compilar una aplicación.
SDK Tools incluye varias herramientas esenciales, como Android Emulator y ProGuard.
La herramienta Android Emulator, es donde se podrá ir visualizando de manera virtual la
aplicación desde la computadora en donde se haya realizado la instalación de Android
Studio, pues nos muestra tal y como se observaría en el dispositivo móvil. Esta
herramienta, dentro de varias funciones que posee, permite al desarrollador ver los
errores que se generan al momento de ejecutar el código y afecten la funcionalidad de la
aplicación, así como modificar la estructura de los menús dentro de la misma, para lograr
una interfaz viable de acuerdo con las necesidades que requiere el público para el que va
dirigido.
IPN-ESIMEZ
APP
REDEDOMEX
30
Figura 3.2 Captura de Pantalla del Emulador de Android Studio.
3.1.6 APIs en Google
Las APIs, son un conjunto de funciones y procedimientos que permiten cumplir una o
varias funciones, su fin es ser utilizadas por otro software. API proviene de las siglas en
inglés (Application Programming Interface), que es español se traduciría como Interfaz
de Programación de Aplicaciones.
3.1.6.1 Funcionamiento de las APIs Implementadas en Android Studio.
Estas interfaces permiten implementar las funciones y procedimientos que engloban las
necesidades en el proyecto, sin la necesidad de programarlas desde cero. Permiten usar
códigos que otros desarrolladores han probado exitosamente, poniendo como prioridad el
asegurar un producto de calidad.
API REST, es una biblioteca apoyada totalmente en el estándar HTTP, la cual es un
servicio que provee funciones que dan la capacidad de hacer uso de un servicio web
privado, dentro de una aplicación propia.
IPN-ESIMEZ
APP
REDEDOMEX
31
Al hacer uso de las APIs no se pueden añadir nuevas funcionalidades. De esta manera
compañías como Twitter se aseguran de lo que pueden o no hacer los clientes.
3.1.6.2 Servicios.
Google Maps API proporciona ciertos servicios web, un ejemplo de ello es una interfaz
para solicitar datos de Maps API a servidores externos y usarlos dentro de las
aplicaciones de Maps. Estos servicios están diseñados para usarse junto con un mapa, de
acuerdo con las restricciones de la licencia para las condiciones de servicio de las Google
Maps API.
Los servicios web usan solicitudes tipo HTTP para direcciones en formato URL
específicas y les pasan a los servicios y parámetros, dentro de direcciones URL como
argumentos. Generalmente los servicios devuelven datos en la solicitud HTTP como
JSON o XML para que la aplicación los analice o los procese.
La información completa acerca de cada uno de los servicios se encuentra en las guías
del desarrollador específicas para esos servicios. Por otra parte en estas guías se abordan
algunas prácticas comunes, que resultan útiles para configurar las solicitudes de servicios
web y procesar respuestas.
3.1.6.3 Google Maps Android API.
Utilizando Google Maps Android API, se pueden agregar mapas basados en los datos
proporcionados por Google Maps a la aplicación. La API administra en forma automática
el acceso a servidores, descarga de datos, visualización de mapas y respuesta a gestos de
mapas de Google Maps. Usando el llamado de API es posible agregar marcadores,
polígonos y superposiciones a un mapa básico, es posible cambiar la vista del usuario
para que solo se pueda mostrar un área en particular dentro del mapa. Estos objetos
proporcionan información adicional de ubicaciones en el mapa y permitirá la interacción
del usuario con este.
A continuación se enlistan los gráficos permitidos por la API en un mapa:
• Iconos anclados situados en posiciones específicas dentro del mapa (marcadores).
• Conjuntos de segmentos de líneas (polilíneas).
• Segmentos cerrados (polígonos).
• Gráficos de mapa de bits anclados en posiciones específicas del mapa (marcadores).
• Conjuntos de imágenes que se muestran sobre los mosaicos de mapas básicos
(superposiciones de mosaicos).
IPN-ESIMEZ
APP
REDEDOMEX
32
Requisitos de atribuciones.
Al hacer uso de Google Maps Android API en una aplicación, se requiere incluir en el
texto de atribución de Google Play Services como parte de una sección “Avisos legales”
dentro de la aplicación.
3.1.6.4 Google Maps Geolocation API
Google Maps Geolocation API devuelve una ubicación y radios de precisión en función
de información acerca de torres celulares y nodos de WiFi que el cliente móvil pueda
detectar.
La comunicación se realiza a través de HTTPS usando POST. Tanto la solicitud como la
respuesta poseen formato JSON, y el tipo de contenido de ambas es application/json.
Las solicitudes de geolocalización se envían usando POST a una URL como la siguiente:
https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY
Para la cual se deberá especificar una clave en la solicitud e incluirla como el valor de un
parámetro key. Una key es la clave de API de la aplicación. Esta clave permitirá
identificar la aplicación la administración de la cuota.
Respuesta a solicitudes de geolocalización
Una solicitud de geolocalización devolverá una respuesta en formato JSON que definirá
una ubicación y un radio.
• Location: La latitud y longitud calculadas del usuario, en grados. Contiene subcampo
lat y lng.
• Accuracy: Precisión de la ubicación calculada, en metros. Esto representa el radio de
un círculo alrededor de la location especificada.
3.1.7 Componentes de una Aplicación
En el diseño de una aplicación móvil existen una serie de componentes que forman parte
de la estructuración de una app, algunos de estos los mencionamos a continuación:
• Activities: Componentes de la interfaz de usuario, al crear un Activity se representa
una pantalla que será lo que el usuario observará.
• Services: Son ejecutados en segundo plano y no contienen una interfaz para que el
usuario lo pueda ver.
IPN-ESIMEZ
APP
REDEDOMEX
33
• Content Provider: Proveedor de contenido, se encarga de proporcionar datos a la
aplicación.
• Views: Componentes de la interfaz de usuario, ejemplo de ello son los botones,
cuadros de texto, etiquetas, barra de herramientas, etc.
• Intents: Objetos que sirven para mandar mensajes. Forma de comunicación entre los
componentes de la aplicación y otras aplicaciones.
• Manifest: El archivo AndroidManifest.xml que se encuentra dentro del proyecto de
la aplicación, en el cual se agregan permisos, actividades, claves, etc.
3.1.7.1 APK Archivo para el Móvil
APK, es el formato de archivo utilizado para distribuir e instalar software de aplicaciones
en el SO (sistema operativos). Los celulares inteligentes usan SO (como las
computadoras) que permiten a los usuarios ejecutar aplicaciones o programas desde el
celular.
Esta clase de ficheros contienen softwares para los teléfonos celulares con sistema
operativo Android, permitiendo reconocer y ejecutar el programa. Un archivo APK, se
pueden descargar directamente desde sitios web en el teléfono o primero en la
computadora, para luego instalarlos mediante el uso de un cable USB o tarjeta SD.
Google Play Store simplifica este proceso, poniendo a disposición todas las aplicaciones
que se pueden descargar para el dispositivo del usuario con una interfaz amigable.
Los archivos APK se guardan en un ZIP y se pueden abrir con cualquier herramienta de
descompresión, son esencialmente un formato de paquetes basados en el formato de
archivo JAR, con .apk como extensión y el nombre de archivo. Estos contienen todos los
códigos, recursos, activos, certificados, y el archivo de manifiesto de ese programa.
Para poder ejecutar un archivo .apk, se debes autorizar la instalación de aplicaciones en el
equipo móvil. Para ello, se necesita ir a la opción de Configuración del equipo y al
submenú de Seguridad o Aplicaciones para activar la característica de Fuentes
Desconocidas.
IPN-ESIMEZ
APP
REDEDOMEX
34
Figura 3.3 Menú de Seguridad en el Dispositivo Móvil.
3.2 Análisis del Costo/Beneficio de la Creación de la Aplicación
El mercado de las aplicaciones móviles sigue en crecimiento, el usuario al tener varias
opciones se fija en la calidad del servicio, esta competencia dentro del mercado que, si
bien no es nuevo, aún falta por explotar.
La presente información da sustento al valor del trabajo realizado para esta aplicación y
su costo monetario en el sector público, también de ser costeada para el sector privado.
Teniendo como horas hombre de trabajo entre 5 a 7 horas por 2 personas, de lunes a
viernes dando un promedio de 20 días por mes, durante 12 meses, obteniendo 1,680
horas laboradas para la creación de este proyecto.
Sumado a ello en México, un programador cobra en la actualidad: $57.00 por hora.
Incluso con la devaluación que ha sufrido el peso contra el dólar, las personas de la
industria han mantenido su poder adquisitivo, lo que convierte a los desarrolladores de
aplicaciones móviles en un buen negocio para comercializar.
IPN-ESIMEZ
APP
REDEDOMEX
35
Estado Salario Promedio
Mensual (MXN)
Morelos 37,827
Ciudad de México 36,605
Jalisco 34,955
Colima 34,388
Aguascalientes 33,656
Coahuila 32,607
Sonora 32,466
Promedio Nacional 32,087
Nuevo León 30,949
Guanajuato 30,419
Estado de México 27,747
Yucatán 26,843
Quintana Roo 25,396
Michoacán 25,230
Chihuahua 24,994
Querétaro 24,797
Puebla 24,311
Baja California 22,082
Sinaloa 19,085
Veracruz 18,058 Tabla 2 Sueldo bruto promedio por entidad federativa. mensual, en pesos mexicanos.
Fuente:https://everac99.wordpress.com/2017/06/02/sueldos-it-en-mexico-2017-menos-equidad-de-
genero-mas-cloud-computing/
En la tabla anterior muestra el salario promedio mensual que recibe un programador de
aplicaciones, pero dependiendo de la distribución geográfica los valores monetarios
cambian.
Teniendo en cuenta que el desarrollo del proyecto ha sido elaborado por 2 personas, que
en promedio se trabajan 7 horas por día, por un total de 20 días por mes, dados los
siguientes datos sumaria la cantidad de $7,980.00 pesos mensuales por persona.
Esto engloba la técnica de desarrollo de apps, los conocimientos técnicos y complejos, el
tiempo destinado a planificar, diseñar, desarrollar e implementar la aplicación.
En concreto por el trabajo realizado resulta un promedio de: $191,520.00 pesos para su
venta al sector privado. Si se desea incorporar la app a una plataforma su costo se
modifica dependiendo de la plataforma y el uso.
Para la aplicación se sugiere que sea gratis su descarga con la renta de publicidad, ya que
en el mercado las app “gratis” son las que están en los estándares más altos, haciendo
invisible las de costo.
IPN-ESIMEZ
APP
REDEDOMEX
36
Las app deben ser catalogadas antes de su lanzamiento, siendo este tipo de catálogo para
que la publicidad mostrada sea apta para el usuario que pueda utilizar los transportes
públicos.
Si se desea ser autónomo o crear sociedad con la plataforma para declarar ingresos, hay
obligaciones específicas que se deben tomar en cuenta para cada caso. Si se desea ser
socio se debe tomar en cuenta que Google al ser una empresa gigante, si ocurre alguna
controversia será complicado el tener una respuesta por parte de ellos.
3.3 Diseño.
En la etapa de desarrollo se muestra el proceso del diseño de la aplicación. En la primera
parte se localizará la zona a trabajar en el prototipo utilizando la herramienta de Google
Maps, para poder visualizar la zona a trabajar a través de un mapa y poder tener la
localización de las rutas que circulan por la zona de Nezahualcóyotl y delimitar las rutas
con las que se trabajarán.
Se mostrarán los pasos a seguir para la obtención de la API Key, esta API es necesaria
para poder insertar un mapa de Google. Esta clave es un tipo de autenticación para hacer
uso de aplicaciones con Google Maps, es importante tener esta clave ya que será
solicitada por Android Studio para hacer uso de las API’s requeridas para poder utilizar
la plantilla de los mapas de Google integrada en la plataforma de desarrollo y la
habilitación de herramientas requeridas. Aunque existen dos versiones de esta clave, para
el desarrollo de este prototipo se hará uso de la API estándar, la cual no tiene costo.
3.3.1 Ubicación del Mapa del Prototipo a Diseñar
Como zona a trabajar se ha elegido a Nezahualcóyotl.
IPN-ESIMEZ
APP
REDEDOMEX
37
Figura 3.4 Mapa del Municipio de Nezahualcóyotl.
Fuente: Google Maps.
Por medio de la base de datos proporcionada por la página web https://viadf.mx/
visualizamos las rutas existentes en este sector del Estado de México.
3.3.2 Obtención de la Clave de API Google Maps
Para poder visualizar Google Maps en Android Studio es necesario dar de alta el
proyecto de la aplicación a realizar, para este procedimiento se deberá realizar lo
siguiente:
Pasos para dar de alta la clave de API
1. Entrar a la consola de desarrolladores de Google. Se debe tener en cuenta que para la
realización de este paso, se debe contar con una cuenta de correo en Gmail.
IPN-ESIMEZ
APP
REDEDOMEX
38
Figura 3.5 Captura de pantalla de la Consola de Google.
Fuente: Android Developers Recuperado de:
https://console.developers.google.com/apis/dashboard?project=apprededomex&duration=PT1H
2. Crear un nuevo proyecto, crear credenciales. Es esta sección es donde se asignará la
clave de API.
Figura 3.6 Opción de proyecto.
IPN-ESIMEZ
APP
REDEDOMEX
39
Figura 3.7 Captura de pantalla de la forma de dar de alta las credenciales.
Fuente: Android Developers Recuperado de:
https://console.developers.google.com/apis/dashboard?project=apprededomex&duration=PT1H
Figura 3.8 Obtención de la clave de API.
Fuente: Android Developers Recuperado de:
https://console.developers.google.com/apis/dashboard?project=apprededomex&duration=PT1H
IPN-ESIMEZ
APP
REDEDOMEX
40
3. Una vez que es asignada la clave de API se deben habilitar las bibliotecas que se
muestran en la figura:
Figura 3.9 APIs Habilitadas.
Fuente: Android Developers Recuperado de:
https://console.developers.google.com/apis/dashboard?project=apprededomex&duration=PT1H
4. Código de prueba para visualizar el mapa proporcionado por Google Maps.
Figura 3.10 Captura de Pantalla Código de ejemplo de mapa.
IPN-ESIMEZ
APP
REDEDOMEX
41
Figura 3.11 Captura de Pantalla de Ejemplo del Mapa en el Emulador.
IPN-ESIMEZ
APP
REDEDOMEX
42
El código de la ilustración 10.3 se genera al seleccionar la plantilla de mapas en Android
Studio, por defecto viene con la ubicación de Sídney, realizando una modificación al
código y colocando las coordenadas requeridas, en este caso para México se han
obtenido los resultados de la Figura 11.3.
Android Studio al ser una interfaz de desarrollo gratuito proporciona a los
desarrolladores una plataforma con guías que proporcionan la información requerida en
el proceso de desarrollo de la aplicación.
Las APIs necesarias para la visualización de los mapas dentro de la aplicación son:
• Google Maps Android API
• Google Maps Geocoding API
• Google Maps Geolocation
En la ilustración 9.3 se puede visualizar que dentro del proyecto creado están APIs están
habilitadas para que se puedan observar dentro de la aplicación a programar.
Cada API cumple con una función en específico la cual fue mencionada dentro del
Funcionamiento de APIs de Google. Android Studio al momento de realizar un proyecto
en el cual se haga uso de la plantilla de mapas nos pedirá la llave, de lo contrario al
compilar el programa este no se verá. Por lo que la obtención de la llave de API es muy
importante si se requiere hacer uso de los servicios de Google Maps.
Se tomaron datos recopilados de los usuarios del transporte público en el estado de
Nezahualcóyotl. En estos datos tomados de una encuesta realizada por la UNAM en
cooperación con INEGI en el año 2015, el cual tenía por objetivo conocer el uso diario
de los pobladores en los transportes públicos en el Estado de México. Esto para el
mejoramiento de vías de transporte a una ciudad en constante cambio y expansión.
Lo cual brinda una estimación de personas que diariamente transitan por este municipio
y que podrían hacer uso de aplicaciones móviles que les muestren como llegar de un
lugar a otro dentro del municipio de Nezahualcóyotl o que vías alternas tomar según sea
su necesidad, así como la incorporación de los nuevos usuarios que hagan uso del
transporte público que circula frecuentemente por esta zona, brindando la información
necesaria para evitar tomar la ruta equivocada.
A continuación se mostrarán algunas gráficas que mostrarán los resultados obtenidos en
las encuestas.
IPN-ESIMEZ
APP
REDEDOMEX
43
Gráfica 1 Número de usuarios que usan el transporte público.
En este primer esquema se tiene como resultado una mayor movilidad de personas en
edad de laborar por lo que el tener varias rutas alternativas por cualquier percance es una
forma de prevenir retardos en sus trabajos.
De estos en la encuesta se hicieron varias preguntas sobre cómo llegan a su destino y el
uso que dan a las diferentes opciones de trasladarse a sus destinos, ya sean diarios o
eventuales dentro del estado de México, en especial en el municipio de Netzahualcóyotl,
obteniendo los siguientes resultados.
78.773
21.227
0
10
20
30
40
50
60
70
80
90
trabajo estudios
Usuarios en el estado de mexico
usuarios en el estado de mexico
IPN-ESIMEZ
APP
REDEDOMEX
44
Gráfica 2 ¿Qué tipo de transporte se usa más?
Se puede ver reflejado en este esquema que la aplicación está orientada para el 77% de
los encuestados, la cual le sería útil por utilizar las rutas que recorren su municipio
mayormente que el mexibus, como medio de transporte.
Aun contando con la línea de mexibus los usuarios optan por otros medios de transporte,
siendo el publico el de mayor demanda, esto refleja que los encuestados, a pesar de
pertenecer a diferentes clases sociales, utilizan medios de transporte públicos, o al menos
es su primera opción.
61
17
6
17
00
10
20
30
40
50
60
70
microbus mexibus taxi metro otro
Tipo de transporte
tipo de transporte
IPN-ESIMEZ
APP
REDEDOMEX
45
Gráfica 3 Uso en la semana del transporte
En esta gráfica se ve que los usuarios, usan frecuentemente el transporte público, y esto
reflejaría un porcentaje aproximado de cuantas veces a la semana podrían acceder a la
aplicación los usuarios, permitiéndole reducir el tiempo que les toma decidir que ruta
tomar hacia su destino, de tener algún problema con la habitual o encontrar otras rutas
que no conocen.
Analizando la respuesta de los encuestados, se puede definir que la Aplicación es
necesaria para personas que necesitan trasladarse continuamente, y esto corresponde a
una problemática diaria de las personas.
21
57
21
0
10
20
30
40
50
60
1 - 5 veces 10 - 20 veces mas de 20 vees
Uso semanal del transporte publico
uso semanal del transporte
publico
IPN-ESIMEZ
APP
REDEDOMEX
46
Gráfica 4 ¿Qué tanto conocen las rutas?
Las personas que usan el transporte público, no saben realmente por donde pasan las rutas, al
menos están acostumbrados a tomar la ruta en una parada determinada, pero en sí, no conocen
el recorrido total. Por lo que solo un 27% está consciente de los lugares por donde pasan el
transporte público que usan frecuentemente, pero esto no determina si conocen las calles o si
conocen el recorrido de la ruta desde su salida, por lo que se nota una falta de información
entre todos los encuestados, y que la aplicación podría brindar.
27
73
0
10
20
30
40
50
60
70
80
Si No
Conocimiento del recorrido de las rutas
conosimiento del recorrido de
las rutas
IPN-ESIMEZ
APP
REDEDOMEX
47
Gráfica 5 Opciones de consultas
Por último se preguntó a los usuarios como saber que ruta tomar cuando se dirigen a un
lugar que no conocen, al no saber dónde realmente pasan las rutas, buscan maneras de
conseguir esa información, llegando hasta el punto de hablar con extraños poniendo en
riesgo su integridad. También se puede observar que la solución más “rápida” es tomar
un taxi, sin embargo no todos están en la posición económica para recurrir a esta opción
siempre que desean trasladarse, ya que no saben que ruta pasa por su destino. La falta de
información hace que las personas pierdan su tiempo, teniendo que estar parando en cada
parada que ven para preguntar si pasan por su destino, esto es incómodo no solo para el
usuario, sino también para el chofer.
50
14
31
13
0
10
20
30
40
50
60
preguntar al
chofer
preguntar en
la calle
utilizar taxi consultar
apps
otros medios
Llegar a nuevos lugares
llegar a nuevos lugares
IPN-ESIMEZ
APP
REDEDOMEX
48
3.4 Uso del móvil en los pobladores.
México, es un país en el que más del 80% de los mexicanos cuentan con un dispositivo
móvil, cuatro de cada diez poseen un smartphone por lo que el marketing móvil es un
sector en clara expansión que se ve confirmado por el número creciente de clientes de
México.
El fuerte incremento del número de smartphones, está provocando que las redes sociales
y correo electrónico se estén trasladando del PC al entorno móvil, y que las aplicaciones
móviles también se estén convirtiendo en un estándar dentro del marketing móvil de las
marcas.
Basada en datos del estudio realizado por IFT (Instituto Federal de Telecomunicaciones),
se considera la siguiente información para conocer los hábitos de los usuarios en torno al
uso de móviles en su vida diaria y como esta información es útil al proyecto.
Estos datos también pueden ser usados como retroalimentación para posibles mejoras
futuras del proyecto. Siendo una muestra de 649 personas encuestadas del estado de
México.
IPN-ESIMEZ
APP
REDEDOMEX
49
Gráfica 6 Tipos de conexión a Internet
En este esquema, nos muestra que la mayoría de los encuestados saben usar las aplicaciones de
sus móviles y depende de las redes de Internet, por lo que el funcionamiento de la aplicación
se mantendría constante dentro de los usuarios al necesitar de ella.
3.4.1 Conclusión De Las Encuestas
Teniendo estos datos podemos decir que la aplicación desarrollada si es subida a Google Play
Store tendría una clientela, ya que es útil y necesario para personas que usan el transporte
público en el Estado de México.
Después del análisis realizado, la selección de la tecnología Android Studio como sistema de
desarrollo y la aplicación de la metodología, se obtuvo como resultado el Análisis y Diseño de
una Aplicación Móvil para Localización de Rutas de Transporte Urbano en el estado de
México dentro del municipio de Netzahualcóyotl, de esta forma se detallan los requerimientos
mínimos para el funcionamiento y las respectivas funcionalidades de la Aplicación.
39
31
17
13
0
5
10
15
20
25
30
35
40
45
datos y wi-fi wi-fi por proveedor No conoce
Conexión a internet por el móvil
conexión a internet por el movil
IPN-ESIMEZ
APP
REDEDOMEX
50
Capítulo 4 4 Construcción e Implementación
4.1 Construcción de la Aplicación
En la etapa anterior se realizó en análisis de los entornos de desarrollo de aplicaciones
móviles, siendo seleccionado Android Studio como IDE para fines de este proyecto, al
presentar las características necesarias para uso.
La construcción de la aplicación estará basada en las plantillas que vienen incluidas en la
plataforma de Android Studio, para poder visualizar el mapa en la aplicación ya se cuenta
con la clave de API requerida para hacer uso de Google Maps, así mismo se procederá a
crear las rutas de Nezahualcóyotl y el menú de usuario, en el cual este podrá introducir su
ubicación actual y el destino al que quiere llegar.
4.1.1 Iniciando un Proyecto en Android Studio
Para iniciar un proyecto en Android Studio, se deben seguir los siguientes pasos:
Figura 4.1 Menú de Inicio Android Studio.
La ilustración 12.4 muestra el menú de inicio una vez que se inicia el programa. Para
crear un nuevo proyecto se da click en la opción “Star a new Android Studio Project”,
generando la siguiente ventana:
IPN-ESIMEZ
APP
REDEDOMEX
51
Figura 4.2 Creación de Proyecto en Android.
Figura 4.3 Menú de Selección.
Una vez asignado el nombre del proyecto y continuar al siguiente paso, aparecerá la
siguiente ventana ilustración 14.4. Es aquí donde se tiene que seleccionar con que
dispositivos será compatible la aplicación. Android Studio solicita un SDK mínimo de
soporte, lo cual significa que se debe seleccionar una versión de Android. Una de las
opciones que Android Studio brinda a los desarrolladores, es que muestra una gráfica del
uso de las versiones, incluyendo las antiguas y nuevas. Para esto se selecciona la opción
“Help me choose.”
IPN-ESIMEZ
APP
REDEDOMEX
52
Figura 4.4 Porcentajes de Uso de las Versiones de Android.
Fuente: Android Studio.
Basándonos en la estadística que proporciona Android Studio se puede observar que la
versión de Android que aún se encuentran activos en la plataforma de Google Play Store
es Jelly Bean de nivel de API 16. Por lo que el soporte mínimo será para dispositivos
móviles con sistema operativo Android, que cuenten con la versión Jelly Bean.
IPN-ESIMEZ
APP
REDEDOMEX
53
Figura 4.5 Captura de Pantalla. Selección de Actividad a Realizar.
En la ilustración 16.4 seleccionamos que actividad requerimos realizar. Para el caso de
este proyecto seleccionamos la opción de “Google Maps Activity”, la cual desplegará el
código mostrado anteriormente (tema 3.3.2) en la (ilustración 10.3). Donde también se
había dicho que se debe contar con la clave de API para poder usar los servicios de
Google Maps.
Una observación importante es que Google Maps Android API necesita de un nivel de
API de nivel 12 como mínimo para poder admitir los objetos de mapa.
4.1.2 Obtención del Mapa y Ubicar Localización.
Como se había mencionado anteriormente, para poder hacer uso de los mapas en
Android, se debe tener la clave de API, a continuación se muestra la parte del código en
la que se deberá colocar esta clave.
IPN-ESIMEZ
APP
REDEDOMEX
54
Figura 4.6 Captura de Pantalla. Código donde se Muestra la Clave API.
Esta clave de API es la que permitirá el uso de Google Maps Android API. Existen
algunas restricciones para las claves de API, dependiendo de la categoría que tenga la
aplicación y del uso que se le dará, la plataforma de Android Studio brinda planes
adecuados para los desarrolladores.
Para el caso de este proyecto se usó el Plan estándar, el cual es gratuito. A continuación
se mencionan las características que posee este plan:
✓ Implementaciones gratuitas, externas y disponibles de forma pública
✓ Uso limitado y gratuito de Google Android API y Google Maps SDK
✓ Tarifas individuales de API y límites de uso
En el caso de que el Plan estándar no cubriera las necesidades requeridas para la
aplicación y se tuviera que extender los beneficios del uso de estos servicios, se tendría
que contactar con el equipo de ventas de Google Maps API, para obtener la información
y solicitar precios y planes adecuados para el uso de estos recursos.
Figura 4.7 Código para Declarar los Valores de Latitud y Longitud.
IPN-ESIMEZ
APP
REDEDOMEX
55
En la ilustración 18.4 las líneas de código mostradas permiten crear la posición inicial,
las variables Lat y Lng corresponden a la latitud y longitud de la ubicación. El objeto
Map, por medio de Google Maps Android API que permite mostrar un mapa de Google
dentro de la aplicación Android. La forma es que se visualizará es de forma idéntica a los
mapas de la aplicación de Google Maps for Mobile(GMM). Existen dos diferencias entre
la aplicación GMM y los mapas que se muestran en Google Maps Android API:
• Los mosaicos que muestra la API no tienen contenido personalizado
• Los iconos del mapa no todos son seleccionables. Para este caso en los marcadores
son receptores de varias interacciones
Otra de las propiedades de los mapas es que se encuentran disponibles cuatro clases de
mapas en la Google Maps Android API. Estos pueden ser de tipo:
• Normal
• Hibrido
• Satélite
• Tierra
• Ninguno
Para el caso de los marcadores su función es indicar ubicaciones en el mapa. Los
marcadores se pueden personalizar.
4.2 Diseño de la Interfaz
La parte visual de la aplicación es declarada en un archivo de formato .XML, está
compuesta por los siguientes elementos: un Fragment, Map, que es donde se mostrarán
las ubicaciones en el mapa, un editor de texto, que permitirá al usuario ingresar su
ubicación y destino y un botón para seleccionar la opción de realizar la búsqueda de la
ruta. La distribución de estos elementos estará realizada sobre un LinearLayout, el cual
permite que las vistas secundarias se puedan alinear de forma vertical u horizontal, esto
dependerá del diseño que se desee lograr.
IPN-ESIMEZ
APP
REDEDOMEX
56
Figura 4.8 Código de Diseño de la Interfaz de Usuario.
IPN-ESIMEZ
APP
REDEDOMEX
57
En la ilustración se muestran los elementos que contiene la aplicación, este diseño será
el que el usuario vea en la pantalla del teléfono celular al momento de que la aplicación
se ejecute. Este código irá en el archivo activity_maps.xml
4.3 Requisitos Previos a la Compilación de la Aplicación
Primordialmente se debe asegurar el nivel de API y el SDK de destino. Para el caso de
este ejemplo deberán ser de 23 o superior. Asegurar estar utilizando la biblioteca se
soporte de V4 para la verificación y solicitud de permisos. Estos deberá ir dentro del
código en el grandle, a continuación se muestra la forma en que es declarado:
Figura 4.9 Declaración de Dependencias.
También se deberá declarar permisos dentro del archivo AndroidManifest.xml, en este
archivo se deberán declarar todos los permisos que se necesiten. A continuación se
muestra un ejemplo de un permiso requerido en el uso de mapas:
Figura 4.10 Declaración de Permisos.
Recordemos que para utilizar el servicio de mapas, previamente debemos ya tener la
clave de API con las bibliotecas requeridas habilitadas, dentro del código se deberá
colocar la clave de API para poder mostrar el mapa en el emulador o en él .apk una vez
que se proceda a realizar la prueba en un dispositivo móvil.
IPN-ESIMEZ
APP
REDEDOMEX
58
4.4 Requerimientos para su funcionamiento
4.4.1 Usuarios
El desarrollo de esta aplicación móvil REDEDOMEX va dirigido a personas de entre
14(estudiantes) a 60(trabajadores y visitantes) años de edad, que poseen dispositivos
móviles que cuenten con sensor GPS preinstalado y acceso a internet. La aplicación
tiene un diseño de interfaz amigable e interactiva para que su uso sea fácil y rápido.
4.4.2 Infraestructura
La aplicación móvil ha sido desarrollada en Android Studio 2.3.3 que es un entorno de
desarrollo integrado para la plataforma Android, y uso de las APIS pertenecientes a
Google en específico Google Maps.
Para alojar la aplicación móvil REDEDOMEX se requiere de un dispositivo móvil con
sistema operativo Android en su versión mínima hasta ahora, Jelly Bean.
4.4.3 Instalación
La aplicación REDEDOMEX que permite buscar autobuses de transporte urbano del
Estado de México en el municipio de Nezahualcoyotl, se podrá utilizar en dispositivos
móviles que cuenten con sistema operativo Android.
IPN-ESIMEZ
APP
REDEDOMEX
59
Conclusiones El uso de aplicaciones en los diferentes dispositivos móviles, es muy utilizado en la
actualidad, ya que facilitan ciertas tareas de la vida cotidiana de las personas, en el caso
de las aplicaciones de transporte público sirven como un recurso de información para
conocer los diferentes medios por los que se puede ir de un lugar a otro, haciendo uso
del mismo.
En cuanto a la elaboración de la aplicación (APP REDEDOMEX). A lo largo de la
elaboración del proyecto se identificaron algunos problemas como: Las dependencias,
las cuales cumplen con la función de ayudar a realizar de forma eficaz el añadir nuevas
funcionalidades a la aplicación. Con la ayuda de la etapa de análisis y la consola de
desarrolladores se pudieron solucionar estos errores de forma satisfactoria.
En cuanto a la compatibilidad de versiones, Android Studio cuenta con una biblioteca de
compatibilidad, está al incorporar la biblioteca appcompat permitirá que la versión
Android en la que esté trabajando, tenga acceso a las funciones disponibles en las nuevas
versiones. Lo que hará que la aplicación tenga una amplia variedad de versiones de
plataforma.
Objetivos Planteados Se
Cumplió
Establecer una zona del Estado de México para realizar las pruebas del
trazado de ruta.
Si
Analizar la información de rutas de transporte en el municipio de
Nezahualcóyotl
Si
Realizar el diseño de la aplicación que muestre el mapeo del recorrido de
las rutas de Nezahualcóyotl
Si
Diseñar una aplicación para teléfonos móviles con sistema operativo
Android
Si
IPN-ESIMEZ
APP
REDEDOMEX
60
5.1 Trabajos Futuros
Al ser una aplicación móvil de transporte público para el Estado de México, a futuro se
podría agregar rutas de más municipios, así como la actualización de las rutas que se
vayan integrando a este sector.
Soporte para el sistema operativo iOS y las nuevas versiones de Android.
Integrar un monitoreo de ruta, para que el usuario pueda visualizar en tiempo real la ruta
por la que está trasladándose.
Brindar servicios para turistas que necesiten usar el transporte público del Estado de
México, contando con retroalimentación de los usuarios, para brindar mejor información
sobre ciertas zonas de inseguridad.
IPN-ESIMEZ
APP
REDEDOMEX
61
ANEXOS
ANEXO A
Manifiesto de Google Maps para el uso de los mapas.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rutaedomexapp.computacion.aplicacionmapa">
<!--
The ACCESS_COARSE/FINE_LOCATION permissions are not required
to use
Google Maps Android API v2, but you must specify either coarse
or fine
location permissions for the 'MyLocation' functionality.
-->
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ANEXO B
Módulos de las clases para el trazado de rutas y visualización del mapa de Google
Package Modules;
IPN-ESIMEZ
APP
REDEDOMEX
62
import android.os.AsyncTask;
import com.google.android.gms.maps.model.LatLng;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
public class DirectionFinder {
private static final String DIRECTION_URL_API =
"https://maps.googleapis.com/maps/api/directions/json?";
private static final String GOOGLE_API_KEY = "AIzaSyAil6yckpQdWb-
KYsRvSy14eDyW3nCZBrk";
private DirectionFinderListener listener;
private String origin;
private String destination;
public DirectionFinder(DirectionFinderListener listener, String
origin, String destination) {
this.listener = listener;
this.origin = origin;
this.destination = destination;
}
public void execute() throws UnsupportedEncodingException {
listener.onDirectionFinderStart();
new DownloadRawData().execute(createUrl());
}
private String createUrl() throws UnsupportedEncodingException {
String urlOrigin = URLEncoder.encode(origin, "utf-8");
String urlDestination = URLEncoder.encode(destination, "utf-8");
return DIRECTION_URL_API + "origin=" + urlOrigin +
"&destination=" + urlDestination + "&key=" + GOOGLE_API_KEY;
}
private class DownloadRawData extends AsyncTask<String, Void,
String> {
@Override
IPN-ESIMEZ
APP
REDEDOMEX
63
protected String doInBackground(String... params) {
String link = params[0];
try {
URL url = new URL(link);
InputStream is = url.openConnection().getInputStream();
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader(new
InputStreamReader(is));
String line;
while ((line = reader.readLine()) != null) {
buffer.append(line + "\n");
}
return buffer.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String res) {
try {
parseJSon(res);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
private void parseJSon(String data) throws JSONException {
if (data == null)
return;
List<Route> routes = new ArrayList<Route>();
JSONObject jsonData = new JSONObject(data);
JSONArray jsonRoutes = jsonData.getJSONArray("routes");
for (int i = 0; i < jsonRoutes.length(); i++) {
JSONObject jsonRoute = jsonRoutes.getJSONObject(i);
Route route = new Route();
JSONObject overview_polylineJson =
jsonRoute.getJSONObject("overview_polyline");
JSONArray jsonLegs = jsonRoute.getJSONArray("legs");
JSONObject jsonLeg = jsonLegs.getJSONObject(0);
JSONObject jsonDistance = jsonLeg.getJSONObject("distance");
JSONObject jsonDuration = jsonLeg.getJSONObject("duration");
JSONObject jsonEndLocation =
IPN-ESIMEZ
APP
REDEDOMEX
64
jsonLeg.getJSONObject("end_location");
JSONObject jsonStartLocation =
jsonLeg.getJSONObject("start_location");
route.distance = new
Distance(jsonDistance.getString("text"), jsonDistance.getInt("value"));
route.duration = new
Duration(jsonDuration.getString("text"), jsonDuration.getInt("value"));
route.endAddress = jsonLeg.getString("end_address");
route.startAddress = jsonLeg.getString("start_address");
route.startLocation = new
LatLng(jsonStartLocation.getDouble("lat"),
jsonStartLocation.getDouble("lng"));
route.endLocation = new
LatLng(jsonEndLocation.getDouble("lat"),
jsonEndLocation.getDouble("lng"));
route.points =
decodePolyLine(overview_polylineJson.getString("points"));
routes.add(route);
}
listener.onDirectionFinderSuccess(routes);
}
private List<LatLng> decodePolyLine(final String poly) {
int len = poly.length();
int index = 0;
List<LatLng> decoded = new ArrayList<LatLng>();
int lat = 0;
int lng = 0;
while (index < len) {
int b;
int shift = 0;
int result = 0;
do {
b = poly.charAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >>
1));
lat += dlat;
shift = 0;
result = 0;
do {
b = poly.charAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
IPN-ESIMEZ
APP
REDEDOMEX
65
int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >>
1));
lng += dlng;
decoded.add(new LatLng(
lat / 100000d, lng / 100000d
));
}
return decoded;
}
}
package Modules;
import com.google.android.gms.maps.model.LatLng;
import java.util.ArrayList;
import java.util.List;
import Modules.Route;
public interface DirectionFinderListener {
void onDirectionFinderStart();
void onDirectionFinderSuccess(List<Route> route);
}
package Modules;
public class Distance {
public String text;
public int value;
public Distance(String text, int value) {
this.text = text;
this.value = value;
}
}
package Modules;
public class Duration {
public String text;
public int value;
public Duration(String text, int value) {
this.text = text;
this.value = value;
}
}
IPN-ESIMEZ
APP
REDEDOMEX
66
package Modules;
import com.google.android.gms.maps.model.LatLng;
import java.util.List;
public class Route {
public Distance distance;
public Duration duration;
public String endAddress;
public LatLng endLocation;
public String startAddress;
public LatLng startLocation;
public List<LatLng> points;
}
ANEXO C
Diseño de la interfaz de usuario
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.rutaedomexapp.computacion.aplicacionmapa.MapsActivit
y"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/etOrigin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Ubicacion inicial" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Destino"
android:id="@+id/etDestination" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
IPN-ESIMEZ
APP
REDEDOMEX
67
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Buscar"
android:id="@+id/btnFindPath" />
<ImageView
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/ic_distance"/>
<TextView
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0 km"
android:id="@+id/tvDistance" />
<ImageView
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="5dp"
android:src="@drawable/ic_schedule_black_24dp"/>
<TextView
android:layout_marginLeft="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0 min"
android:id="@+id/tvDuration" />
</LinearLayout>
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
IPN-ESIMEZ
APP
REDEDOMEX
68
Referencias
Argüelles, Efrén (2017). Excelsior. Recuperado de:
http://www.excelsior.com.mx/comunidad/2017/05/17/1164086
Desarrollo de aplicaciones para Android. Edición 2015, Ribas Lequerica, Joan
[1] http://www.mundomanuales.com/telefonia/telefonos-moviles/que-es-android-caracteristicas-
y-aplicaciones-4110.html
[2]Gabino González Santos. (2017). El Economista. Ciudad de México. Recuperado de:
https://www.eleconomista.com.mx/opinion/Apps-y-derecho-20170601-0123.html
[3]https://everac99.wordpress.com/2017/06/02/sueldos-it-en-mexico-2017-menos-equidad-de-
genero-mas-cloud-computing/
[4]https://www.google.es/admob/
[5]https://developers.google.com/maps/web-services/overview?hl=es-419
[6]https://hipertextual.com
[7]https://www.ibm.com/support/knowledgecenter/es/SS7K4U_8.5.5/com.ibm.websphere.zserie
s.doc/ae/csec_sslsecurecom.html
[8]https://blog.neothek.com/blog-neothek/que-es-un-certificado-ssl-y-como-funciona/
[9]https://docs.microsoft.com/es-es/dotnet/csharp/expression-trees-explained
[10]http://omicrono.elespanol.com/2015/02/diferencia-entre-http-y-https-2/