Ionic
Ionic
Ionic
Computacionales
Autor:
Director:
Ibarra- Ecuador
Mayo - 2018
i
UNIVERSIDAD TÉCNICA DEL NORTE
BIBLIOTECA UNIVERSITARIA
La UNIVERSIDAD TÉCNICA DEL NORTE dentro del proyecto Repositorio Digital Institucional
determina de disponer textos completos en formato digital con la finalidad de apoyar los
procesos de investigación, docencia y extensión de la Universidad. Por medio del presente
documento dejo sentada mi voluntad de participar en este proyecto, para lo cual pongo a
disposición la siguiente información.
E-MAIL lgyaguapaz@utn.edu.ec
DATOS DE LA OBRA
HIBRIDAS”
PROGRAMA PREGRADO
ii
iii
iv
v
vi
DEDICATORIA
Dedico este proyecto fin de carrera a todos mis familiares, amigos y compañeros que en algún
momento durante estos años de estudio me acompañaron, guiaron y apoyaron. Y sobre todo
a mi madre, que sin su esfuerzo e incansable apoyo nunca podría haber llegado a realizar
este uno de los tantos objetivos planteados.
“Llena tus ojos de ilusión -. Vive como si fueras a morir dentro de diez segundos. Ve al mundo.
Es más fantástico que cualquier sueño real o imaginario. No pidas garantías, no pidas
seguridad. Nunca ha existido algo así. Y, si existiera, estaría emparentado con el gran
perezoso que cuelga boca abajo de un árbol, y todos y cada uno de los días, empleando la
vida en dormir. Al diablo con eso-, sacude el árbol y has que el gran perezoso caiga sobre su
trasero “
Ray Bradbury
vii
AGRADECIMIENTO
A mi madre Patricia por todo el esfuerzo, atención y constante preocupación toda mi vida, mis
logros son gracias a su ayuda y apoyo incondicional. Ella ha representado siempre el motor
que mueve mi vida y me han motivado a avanzar y cumplir los objetivos trazados en mi vida.
A la Universidad Técnica del Norte por haberme acogido durante mi formación académica por
A mi familia, en especial a mi abuelo Gonzalo por sus palabras de aliento y apoyo, siempre
viii
Tabla de Contenido
CAPITULO I .................................................................................................................... 1
1. INTRODUCCIÓN ..................................................................................................... 1
1.1. Problema .................................................................................................................... 1
x
4.1.3. Prerrequisitos de hardware. .......................................................................... 50
4.1.4. Prerrequisitos de software. ............................................................................ 50
4.2. Especificación de requisitos de software (Product backlog) ............................ 55
4.2.1. Propósito........................................................................................................... 55
4.2.2. Alcance. ............................................................................................................ 55
4.2.3. Personal Involucrado. ..................................................................................... 55
4.2.4. Requerimientos Funcionales. ........................................................................ 56
4.2.5. Requerimientos no funcionales. ................................................................... 59
4.2.6. Funcionalidad del Producto. .......................................................................... 62
4.2.7. Características de los usuarios. .................................................................... 63
4.2.8. Planificación del proyecto (Sprint Planning). .............................................. 64
4.3. Proceso de desarrollo ............................................................................................ 69
CAPITULO V ................................................................................................................. 94
5. CONCLUSIONES Y RECOMENDACIONES ...................................................... 94
5.1. Conclusiones ........................................................................................................... 94
ANEXOS ........................................................................................................................ 96
Aplicación en Google Play ............................................................................................... 96
Bibliografía ..................................................................................................................... 98
xi
Índice de Figuras
xii
Fig. 33: Ejemplo de FABs en Ionic 2 .................................................................................. 42
Fig. 34: Uso de ion-content y ion-header .......................................................................... 43
Fig. 35: Segmento ................................................................................................................. 44
Fig. 36: Inputs ........................................................................................................................ 45
Fig. 37: Tabs .......................................................................................................................... 46
Fig. 38: Plugin Device ........................................................................................................... 48
Fig. 39: Instalación Composer ............................................................................................ 51
Fig. 40: Instalación Yii2 ........................................................................................................ 51
Fig. 41: Instalación XAMPP ................................................................................................. 52
Fig. 42: Panel de control XAMPP ....................................................................................... 53
Fig. 43: Instalación de Node JS .......................................................................................... 53
Fig. 44: Configuración de variables de entorno Android SDK ....................................... 54
Fig. 45: Arquitectura Aplicativo móvil ................................................................................. 70
Fig. 46: Arquitectura administrador de contenido ............................................................ 70
Fig. 47: Diseño inicial del aplicativo móvil ......................................................................... 71
Fig. 48: Diseño del administrador de contenido Yii2 ....................................................... 72
Fig. 49: Diseño de la página web del aplicativo móvil ..................................................... 72
Fig. 50: Diagrama de secuencia módulo Administración de contenido ....................... 73
Fig. 51: Diagrama de secuencia módulo de administración de usuarios..................... 73
Fig. 52: Diagrama de secuencia módulo de Respaldo y Recuperación ...................... 74
Fig. 53: Diagrama Entidad Relación .................................................................................. 76
Fig. 54: Configuración del archivo hosts ........................................................................... 78
Fig. 55: Configuración del archivo httpd-vhosts ............................................................... 79
Fig. 56: Configuración de la base de datos ...................................................................... 79
Fig. 57: Creación de módulos en GII ................................................................................. 80
Fig. 58: Modelo generado por CRUD ................................................................................ 81
Fig. 59: Controlador generado por CRUD ......................................................................... 82
Fig. 60: Vistas generadas por CRUD Generator ............................................................. 83
Fig. 61: Elaboración de CRUD en Yii2 .............................................................................. 83
Fig. 62: Archivo de Configuración de API ......................................................................... 84
Fig. 63: Consumo del ENDPOINT (API)............................................................................ 87
Fig. 64: Resolver una petición HTTP ................................................................................. 87
Fig. 65: Página de inicio del aplicativo ............................................................................... 88
xiii
Fig. 66: Patrimonio Turístico................................................................................................ 89
Figura 67: Detalle de lugar turístico ................................................................................... 89
Fig. 68: Servicios ................................................................................................................... 90
Fig. 69: Lista de eventos ...................................................................................................... 91
Fig. 70: Pantalla de búsqueda ............................................................................................ 91
Índice de tablas
xiv
RESUMEN
Destino Pimampiro es una aplicación móvil que brinda al turista local, nacional,
interés.
contenido.
herramientas usadas, así como los resultados obtenidos dentro del desarrollo del
software.
xv
SUMMARY
Ionic 2 is a powerful framework for the development of hybrid mobile applications. This
Destino Pimampiro is a mobile application that provides to the tourist local, national,
foreign and public in general information about tourism in the Pimampiro Canton,
where we find tourist places, services, maps, events and a section of interest.
In chapter 1: the objectives, justification and scope of the research are presented as
presented, tools that were used as IDE of development, development tools for the
In chapter 4: The development process of the application is presented with the tools
xvi
xvii
CAPITULO I
1. INTRODUCCIÓN
1.1. Problema
1.1.1. Antecedentes.
Desde algunos años atrás se vienen desarrollando aplicaciones móviles con distintos y
Uno de los frameworks de desarrollo más usados en la actualidad es Ionic que es un marco
híbridas. Creado por Drifty Co1. en 2013 y luego de su gran acogida esta prestigiosa
plataforma ha tomado la retroalimentación de los clientes y/o usuario que intentaron o intentan
Una de las razones de la gran acogida de Ionic entre los desarrolladores de aplicaciones
desarrollado por Google para la construcción de aplicaciones web. Otra de las razones de la
gran acogida de Ionic es que también implementa Cordova antes conocido como Apache
Cordova como enlace entre Ionic 2 y las API’s2 que proveen las plataformas de Android, iOS
y Windows Phone.
1
Drifty Co: Empresa de software radicada en Madison, Wisconsin en Estados Unidos.
2
API: vienen del inglés Application Programming Interface (Interfaz de Programación de Aplicaciones).
1
Basado en estas plataformas el equipo de desarrollo decidió construir su propio marco que
se centre en el rendimiento y en ser construido con los estándares web modernos, y después
Uno de los sectores en los que las aplicaciones móviles tienen gran acogida y se prestan
mucho para ser desarrolladas es el sector turístico, luego de un profundo análisis se llega a
sobre sitios turísticos que este cantón dispone, es por esto el interés en la creación de una
aplicación móvil para mejorar este proceso y así hacer del cantón un referente nacional en el
ámbito turístico.
1.1.2.1. Investigación.
Ionic2 en su versión 2.0 por lo que es necesario analizar todas y cada una de sus
1.1.2.2. Aplicación.
turísticos y culturales del Cantón Pimampiro lo cual genera una escasa afluencia de turistas,
difusión de información.
2
1.1.3. Prospectiva.
estructurada que servirá de ayuda para las personas en general que deseen instruirse y/o
necesiten una base sólida al momento de desarrollar aplicaciones móviles con el framework
Ionic 2.
La deficiente información para los desarrolladores tanto locales como nacionales incluso
de los países de habla hispana que empiezan a involucrarse con el framework es uno de los
realizar un estudio profundo, elaborar una guía completa para los programadores que se
inician con esta herramienta, finalmente teniendo en cuenta la deficiente información que
Se puede decir que la institución no cuenta con una aplicación móvil de difusión de
usando Ionic 2 para dar solución a dicho problema el cual se da a conocer en la Fig. 1: Árbol
de Problemas.
3
Fig. 1: Árbol de Problemas
Fuente: Propia
1.2. Objetivos
➢ Elaborar documentación técnica que servirá como guía para las personas interesadas
en el framework Ionic 2.
4
1.3. Alcance y Limitaciones
1.3.1. Alcance.
1.3.1.1. De la aplicación.
Se desarrolló una aplicación móvil para el Gobierno autónomo descentralizado del Cantón
Pimampiro, la cual dará a conocer los atractivos turísticos, atractivos culturales, eventos a
realizarse en dicho cantón la cual cuyo nombre fue Destino Pimampiro. Esta aplicación se
Framework Yii2, en el que se ingresó toda la información recolectada y que es vista por los
usuarios de la aplicación, los datos serán almacenados en una base de datos MySQL, en la
Fig. 2: Arquitectura de Ionic 2 orientado a servicios se presenta los detalles de la arquitectura que
fue utilizada.
• Lugares Turísticos
• Ubicaciones
• Administración de usuarios
Servicios: En este apartado que lo llamaremos API, tendremos al Framework Yii2, el que
será el proveedor de los servicios web REST los que serán consumidos por la aplicación.
Aplicación: Esta será la encargada de consumir las API’s que Yii2 nos ofrecerá, las cuales
desarrollada en Ionic 2 y está disponible en la tienda de Google Play únicamente para los
5
Fig. 2: Arquitectura de Ionic 2 orientado a servicios
Fuente: Propia
1.3.1.2. De la investigación.
1.4. Justificación
1.4.1. De la investigación.
1.4.2. De la aplicación.
Los beneficiarios directos con el desarrollo de esta aplicación son y serán los ciudadanos
tanto locales, nacionales y extranjeros. Este proyecto será de gran utilidad para las personas,
ya que tendrán información real y actualizada de atractivos turísticos del cantón Pimampiro.
Después de finalizar el proyecto, este será de gran ayuda para los estudiantes y personas
6
CAPITULO II
2. MARCO TEÓRICO
es por esto que desde hace aproximadamente dos años y medio, se creó el área de turismo
dentro de la unidad organizacional del cabildo, la cual entre uno de sus objetivos primordiales
estaba la creación me medios de difusión tanto digitales como físicos entre los que se
stands en ferias turísticas del país, señalización de sitios turísticos, creación de redes
Se ha podido apreciar que los esfuerzos han sido productivos y que poco a poco el cantón
se ha dado a conocer a nivel local, nacional incluso internacional como un destino turístico y
gran parte de esto es gracias a los medios digitales que incluyen en su mayor parte las redes
sociales, el sitio web y que se ha dado prioridad a los eventos culturales, festivos y cívicos
del cantón.
7
2.2. Introducción a herramientas de Desarrollo de Aplicaciones Móviles Hibridas
El enfoque híbrido combina desarrollo nativo con tecnología Web. Usando este enfoque,
los desarrolladores escriben gran parte de su aplicación en tecnologías Web para múltiples
Corporation, 2012)
Podemos decir que son ambientes de desarrollo en el cual el programador usa un mismo
esquema de trabajo o también puede ser llamado código fuente que puede ser reutilizado en
su mayor parte para producir una aplicación para las diferentes plataformas de dispositivos
móviles.
Estas tecnologías de desarrollo en un gran porcentaje usan Cordova antes conocido como
Apache Cordova que es un marco de desarrollo móvil de código abierto. Se permite el uso
8
enlaces de API compatibles con los estándares para acceder a las capacidades de cada
dispositivo.
sensores, GPS, gestos de pantalla, gestión de almacenamiento, cámara, audio entre otros.
Haciendo que el desarrollador utilice estas funciones fácilmente desde lenguaje web.
Las aplicaciones móviles hibridas en su gran mayoría usa un Web View o navegador web,
es por eso que la mayoría de los lenguajes de programación usan lenguaje de marcado para
elaborar páginas web (HTML) como una interfaz gráfica. Esta es una de las razones por la
que se torna muy cómodo para los desarrolladores web involucrarse con este tipo de
tecnologías, ya que dentro de estas se pueden usar etiquetas HTML, funciones JavaScript3 y
se usan variaciones de los lenguajes de programación como HTML5 que es una versión
3
JavaScript: Lenguaje de programación web, se usa para manipulación de objetos y clases HTML.
4
CSS: lenguaje de hojas de estilos creado para controlar el aspecto de documentos definidos con HTML.
5
ECMAScript: es una especificación de sintaxis de lenguajes de programación como JavaScript o JScript..
9
como TypeScript y finalmente SASS y/o SCSS que son lenguajes de programación basados
Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un marco para la
gestión de proyectos, que se ha utilizado con éxito durante los últimos 10 años.(Canós,
Letelier, Penadés, & Valencia, 2003) Está especialmente indicada para proyectos con un
a lo largo proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo
adaptación, iterativa, rápida, flexible y eficaz, diseñada para ofrecer un valor significativo de
10
forma rápida en todo el proyecto. Scrum garantiza transparencia en la comunicación y crea
Un proyecto de desarrollo de software u otro producto que usa Scrum implica un esfuerzo
Team Scrum, estos equipos están en la capacidad de dividir su trabajo en lapsos o ciclos de
tiempo que se denominan Sprints. La Fig. 6: Ciclo de trabajo de Scrum hace referencia al ciclo
desarrollo de proyectos Scrum y deberán ser aplicadas obligatoriamente para el éxito del
producto final.
del proyecto entre sí y entre el/los diseños del producto también llamado Product Owner
11
pilares fundamentales como el trabajo en equipo, el aprendizaje a través de la experiencia y
el compartir conocimientos.
Los equipos Scrum son multifuncionales y a su vez organizados entre sí, en el que los
otra u otras personas que no son parte del equipo. Los equipos autoorganizados se encargan
externas al equipo de trabajo. Este modelo de trabajo en equipo está basado en objetivos
El equipo Scrum está conformado por: El dueño del producto (Product Owner), un grupo
avances del producto final de forma iterativa, haciendo a si la retroalimentación más efectiva
El dueño del producto es aquel que guía al equipo de desarrollo y va de la mano con el
Scrum Master con la finalidad de que maximizar el valor del producto. El Product Owner
generalmente interactúa con el Scrum Master para brindar los requerimientos necesarios con
la finalidad de tener un producto final acorde a las necesidades. (Tobergte & Curtis, 2013)
Está conformado por un grupo de personas que se encargan de crear o desarrollar según
12
2.3.6. El director del Proyecto (Scrum Master).
Es el encargado de que los requerimientos obtenidos del Product Owner sean entendidos
a cabalidad por el Team Scrum. Desempeña el rol de líder y ayuda a que las iteraciones o
2.3.7. El Sprint.
En el ciclo de desarrollo del producto puede contener varios Sprints y en cada uno de estos
Durante un Sprint se puede realizar modificaciones al producto, cada Sprint tiene como
se incrementan.
2.4.1.1. Definición.
vocablo chino Yee cuyo significado es “Simple y Revolucionario”, pero para mejoras en su
pronunciación en occidente y Europa se lo nombró Yii que es un acrónimo de “Yes It Is” (Yii
programación PHP y orientado a objetos, virtudes que lo hacen muy potente y rápido al
especialmente adecuado para desarrollar aplicaciones de gran escala tales como portales,
6
MVC: Arquitectura modelo-vista-controlador para el desarrollo de software.
13
foros, sistemas de gestión de contenido (CMS), proyectos de comercio electrónico, servicios
2.4.1.2. Características.
pueden ser desarrollados por los programadores lo que hace que sea un framework amigable
con el programador.
Soporta de forma nativa el desarrollo de servicios web de tipo REST y generador de código
extensiones y CRUD9.
Construido sobre PDO, Yii DAO (Database Access Objects) proporciona una API orientada
a objetos para acceder a bases de datos relacionales y no relacionales. (LLC Yii, 2014)
7
CORE: código fuente base de un framework o software
8
GII: Herramienta generadora de código fuente del framework Yii2
9
CRUD: Acrónimo que hace referencia a los verbos de programación créate, read, update y delete
14
Incorpora de forma nativa la configuración de acceso a base de datos PostgreSQL, MySQL,
Esta plantilla incorpora una versión básica en su estructura, mas no reduce su potencia y
generador de código GII para la generación de código fuente funcional desde la base de datos
realizar la configuración manual del componente RBAC (Control de Acceso Basado en Roles)
Incorpora dos ambientes de trabajo un frontend que generalmente es usado como la parte
visual de la plataforma o el lado del cliente y el backend usado como capa de negocio es decir
el lado administrador.
Se podría decir que la plantilla avanzada incorpora dos plantillas básicas incluso podrían
ser tres o más, esta plantilla es ampliable en muchos de los casos se incorpora un módulo
para servicios web dentro del frontend o backend o de forma externa. En esta plantilla no es
de usuarios mismo que puede ser inicializado con la siguiente línea de comandos de símbolo
15
Fig. 8: Migración RBAC Yii2
Fuente: Propia
El patrón arquitectónico usado por Yii2 en este caso MVC se detallan en la Fig. 9: Uso de
MVC en Yii2
16
2.4.1.4.1. Modelo.
(Bahit, 2011)
Yii2 está basado en programación orientada a objetos POO es por eso que los modelos
usan herencia en este caso los modelos de acceso a datos heredan de ActiveRecord10.
2.4.1.4.2. Vista.
mediante textos o gráficos información. estructura la vista es código HTML, CSS, JavaScript
y PHP. El nombre de una vista debe estar como una acción en un controlador como se puede
2.4.1.4.3. Controlador.
Son clases que extiende de yii\base\Controller, contienen métodos y acciones tales como
peticiones y respuestas a las que acceden las vistas y a su vez los controladores acceden a
los modelos mediante instancias y así los modelos poder acceder a datos y devolverlos a las
10
ActiveRecord: Interfaz orientada a objetos para acceder y manipular una o más bases de datos.
17
vistas. En Fig. 11: Notación de un Controlador en YIi2 se observa detalladamente la notación
de un controlador.
JQuery pionero en el desarrollo de páginas web responsive creado por Mark Otto y Jacob
a Bootstrap.
Bootstrap se maneja bajo el concepto de responsive, esto es, que el desarrollador escribe
un solo código y mediante este framework la página web se adapta al dispositivo sea este un
18
2.4.2. Base de datos MySQL.
2.4.2.1. Definición.
MySQL es un motor de base de datos SQL11 muy rápido, multihilo, multiusuario y robusto.
MySQL está diseñado para sistemas de producción de carga crítica y de misión crítica, así
Actualmente MySQL es parte de Oracle, es una base de datos de dos tipos de licencias
2.4.2.2. Características.
Al igual que sus similares MySQL contiene características esenciales y básicas que un
Fuente: www.mysql.com
conectividad a la base de datos es sumamente segura, el puerto que por defecto incorpora
11
SQL: (Structured Query Language) es un lenguaje de programación estándar mediante el cual se accede a
información de la base de datos.
12
GNU: General Public Licence por sus siglas en inglés, es un estándar de licenciamiento gratuito.
19
es el 3306 que puede ser modificado si el usuario lo desea. La replicación es una de sus
2.4.3. JSON.
2.4.3.1. Definición.
ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para
realizan mediante HTTP y HTTPS. Uno de los lenguajes de programación que más
JavaScript.
servicios web, ya que el servicio web que usa JSON como formato es RESTful cuya
implementación es mucho más sencilla que el tradicional SOAP que usa XML. Las
plataformas o lenguajes de programación que dan más cabida a servicios web con este
2.4.3.2. Características.
Son muchos los aspectos que hace un potencial a esta notación es su simplicidad, la forma
de leer o escribir hace que sea sumamente fácil de identificar e incluso legible para cualquier
20
Es un lenguaje independiente es decir que tiene su propia notación y a su vez compatible
Muy fácilmente nos podemos dar cuenta que es un archivo es tipo JSON ya que su
2.4.4.1. Definición.
13
.json: Extensión de un archivo escrito en formato JSON
21
2.4.4.2. Características.
Hoy en día los servicios web de tipo REST tienen tanta acogida que grandes
organizaciones como Spotify, PayPal, Facebook, Microsoft Azure, entre otros, proveen este
tipo servicios web que se los denomina API’s que básicamente rutas las cuales reciben
Los métodos que HTTP más usados y más importantes PUT, GET, POST y DELETE. En
Fuente: Propia
Tabla 2: Equivalencias de peticiones HTTP
HTTP Método Backend SQL
22
CAPITULO III
3. FRAMEWORK IONIC 2
años desde su lanzamiento la versión 1, misma que desde sus inicios ya usaba Angular. Uno
de los aspectos que impulso a Ionic como uno de los frameworks de desarrollo de
permite aprovechar de mejor las API´s liberadas por los Sistemas Operativos y la
Aspectos importantes como una menor complejidad de código fuente lo que se traduce a
aplicaciones escalables. Y con el uso de TypeScript llego a ser una ventaja aun mayor ya que
Entre las fortalezas de Ionic es que es un framework 100% libre y de código abierto
masivo alrededor del mundo, tanto como en su SDK como en los plugins y componentes
Ionic posee más de cien plugins nativos como bluetooth, cámara, huella digital, entre otros
y gracias a que es un framework basado en Cordova, tiene gran compatibilidad con plugins
desarrollados para esta tecnología e incluso con los desarrollados para otros frameworks
23
Tener una base de datos en un dispositivo siempre es algo deseado y con Ionic 2 esto es
posible haciendo uso del plugin SQLite como se indica en la Fig. 17: Plugin SQLite, tanto por
la facilidad de i
3.2.1. Pre-requisitos.
Para hacer uso del framework Ionic 2 es necesario cumplir ciertos requisitos para su
óptimo funcionamiento.
Ionic 2 es compatible con los sistemas operativos que se indica en la Tabla 3: Requisitos
de Sistema Operativo.
24
Tabla 3: Requisitos de Sistema Operativo
Fuente: Propia
impedimento ya que tan solo se necesitaría 2 Gb adicionales de las que exige el sistema
de memoria RAM que las requeridas por el sistema operativo, es recomendable que nuestro
afectado.
El framework que estamos estudiando funciona mediante dependencias es por esto por lo
3.2.2. Instalación.
Una vez instalado y configurado los pre-requisitos, procedemos con la instalación para lo
25
3.2.3. Configuración.
de línea de comandos, existen ejemplos o temas para iniciar un proyecto en Ionic 2 estos
son:
• Blank que es un aplicativo en el que se puede desarrollar desde cero, este tema o
• Tabs mismo que brinda un espacio de trabajo con tres pantallas y lista horizontal que
• Sidemenu este tema nos coloca una barra de menú lateral en la que podemos escoger
templates de Ionic 2.
26
3.2.5. Estructura del proyecto.
27
.gitignore Archivo Archivo de uso para trabajar con repositorios Git.
config.xml Archivo Archivo de configuración en formato xml a ser utilizado
por cordova, contiene nombre de la aplicación, versión y
plugins a ser usados.
ionic.config.json Archivo Contiene el nombre de la aplicación, de utilidad para
subir a repositorios de Ionic.
package.json Archivo Archivo de dependencias del aplicativo se encuentra
todas las dependencias a ser usadas o ser instaladas en
caso de una migración.
README.md Archivo Este es un archivo de información para repositorios Git.
tsconfig.ts Archivo Contiene información sobre la versión de TypeScript a
ser usada en el aplicativo.
tslint.json Archivo Archivo que contiene información a ser usada en el
proceso de compilación, brindara alertas cuando no se
encuentre correcto.
28
3.2.6. Proceso de compilación.
desarrollando para las distintas plataformas es decir que podemos ir observando los cambios
que realizamos y el diseño de la aplicación en tiempo real. Esto lo podemos realizar con el
comando ionic serve --lab este comando compilará nuestro aplicativo para ser visto en un
navegador web. Como lo indica la Fig. 20: Vista previa del aplicativo en Ionic 2.
Existe la posibilidad de realizar una compilación directa en el dispositivo, esto es sin tener
depuración USB esto permitirá que podamos realizar pruebas de errores o bugs y aceptar
tienda oficial.
siguiente instrucción ionic cordova platform add andoird esta sentencia descarga a nuestro
29
Para el proceso de compilación al dispositivo se debe escribir la instrucción ionic cordova
run android se puede añadir a la instrucción la bandera --livereload que permitirá ver los
cambios que se vaya realizando en el dispositivo siempre y cuando siga conectado por USB.
cordova build android y si se desea realizar la compilación definitiva se debe añadir la bandera
--prod –release estos comandos adicionales dejaría nuestra aplicación lista para ser firmada
y subida a la tienda.
3.3.1. TypeScript.
en JavaScript. TypeScript no requiere de ningún tipo de plugin, puesto que lo que hace es
Una de las ventajas que tiene sobre JavaScript es el resultado final en líneas de código en
fragmento de código que lo que hace es recorrer un ciclo e imprimiéndolo en la consola del
navegador.
interpretar con facilidad clases, constructores, herencia e incluso interfaces, esto impulsado
por ES5, que es ECMAScript 5 que es una estandarización internacional ECMA internacional.
30
(Saini, 2017). Estándar que usan los desarrolladores de navegadores web o Web Browsers
primitivos como boolean, Number y String, tal como se describe en la Fig. 22: Tipos de datos
posible inyectar variables directamente en la plantilla, misma que puede ser modificada
31
3.3.1.1.2. Arrays o arreglos.
En la mayoría de los lenguajes de programación los arreglos son un dolor de cabeza para
los programadores principiantes, pero con TypeScript no es el caso trabajar con arreglos es
elementos al array.
3.3.1.1.3. Tuplas.
constantes o variables de diferentes tipos de datos, las matrices pude que nos ayuden en
muchos de los casos, pero ocupan muchos recursos ya que son arreglos multidimensionales,
en este caso específico TypeScript nos da un tipo de dato que lo que hace es brindarnos una
colección de valores heterogenia que puede contener uno o más tipos de datos primitivos que
Las tuplas se inicializan asignando un nombre y en corchetes ([] ) añadimos el o los tipos
de datos que contiene la tupla separados por coma( , ) como indica Fig. 23.
32
Este tipo de datos es desconocido por la mayoría de los programadores ya que no es de
fácil comprensión su funcionalidad, pero una de las mejores aplicaciones son el agrupamiento
datos.
3.3.1.2. Funciones.
Las funciones con estructuras de una clase de código reusable, que sirve para realizar
que JavaScript, en TypeScript podemos hacer uso de los diferentes tipos de funciones sean
como callback.
el uso de una función específica para realizar diferentes operaciones como se explica en la
Fig. 24.
Al igual que los parámetros opcionales podemos usar parámetros de descanso o reposo,
estos parámetros no restringen la cantidad de valores que una función puede recibir. Para
indicar que se trata de este tipo parámetros, en la declaración de las funciones se debe ante
poner 3 puntos (…) antes del parámetro de reposo tal como indica la Fig. 25: Funciones con
parámetros de descanso
33
Las funciones Lambda han tomado fuerza en los últimos años ya que son funciones
anónimas, también llamadas Arrow Functions o funciones de flecha. Son de fácil uso y
simplifican código fuente al ser usadas ya que es una declaración de una función anónimas
que hace referencia o apunta a un bloque de código de programación que realiza un algún
tipo calculo.
Dentro de las funciones no se necesita especificar el tipo de dato que ha de ser recibido
(Arrow Function).
Este tipo de funciones son las más usadas dentro de los desarrolladores de Angular 2 e
Ionic ya que tienen mucha versatilidad al momento de trabajar con servicios RESTfull, esto
34
3.3.1.3. Promesas o Promises.
operaciones que se ejecutan en este momento o en un futuro, y sus variables pueden ser
manera de interactuar con una promesa o Promise es a través del método then el cual registra
el Callback que recibirá la respuesta o la razón por la cual la promesa no ha podido ser
Entonces entendemos que las promesas en la mayoría de los casos nos ayudan a capturar
errores durante la ejecución de un método, un ejemplo básico sería el cálculo del impuesto al
valor agregado de una factura en la que se recibe el subtotal de la factura como se indica en
3.3.1.4. Interfaces.
Dentro de TypeScript existen principios y uno de estos es verificar que los valores o datos
estén asignados al tipo de dato correcto. Las interfaces son definidores de sintaxis y se
encargan de comprobar los tipos de las variables que se pasan como argumentos. Contienen
35
TypeScript brinda la facilidad que dentro de la definición de una interfaz usar funciones de
tipo flecha o Arrow Function, una de las ventajas de usar este tipo de interfaces es por ejemplo
ejemplo:
3.3.1.5. Clases.
incomodo ya que hace sudo de funciones y de herencia basada en prototipos para omitir el
puede hacer uso de clases e interfaces de manera dinámica, sencilla y de fácil aplicación.
seguido del nombre de la clase. En caso de que se requiera de instanciar una clase esta debe
Dentro de una clase podemos hacer uso de funciones sean estas de cálculo o retorno
como son los mutadores y accesores conocidos como Getters y Setters para acceder a las
Podemos hacer uso de clases e interfaces para acceder a los datos o realizar operaciones
que se requiera.
36
Fig. 29: TypeScript uso de clases
Fuente: Propia
3.3.2. Angular 2.
Desde su lanzamiento hace más de cuatro años, Angular es uno de los frameworks más
asíncrono y de una depuración compleja. Con estas particularidades hacen que sean más
aquí la necesidad crear un lenguaje de programación más lógicamente compatible con los
Aunque fue una de las actualizaciones más esperadas y que más dieron de hablar en el
mundo de los desarrolladores web. Angular 1 al igual que la segunda versión fueron y son de
gran utilidad para los desarrolladores web y de aplicaciones móviles hibridas en la que facilitó
Angular 2 es otro framework, no simplemente una nueva versión. A los que no conocían
Angular 1 esto les será indiferente, pero los que ya dominaban este framework sí deben
entender que el conocimiento que necesitan adquirir es poco menos que si comenzasen
37
Es un framework simplificado que permite a los desarrolladores crear aplicativos basados
Las alertas son de gran utilidad al momento de indicar a el usuario información importante
específica sobre algún evento, orientar al usuario a que tome una decisión especifica o en su
ventanas flotantes para ejecutar acciones rápidas tales como notificaciones y verificación de
datos, pero tienen muchas funcionalidades ya que son muy adaptables podemos usarlas
Los Badges o insignias generalmente los usamos como indicadores que comúnmente son
número y se usan dentro de un bloque de texto o en una lista. En la Fig. 30: Ejemplo de uso
38
3.4.4. Buttons (Botones).
Los botones son la manera más sencilla de interactuar entre el dispositivo y el usuario,
además permite navegar y realizar acciones específicas mismas que se realizaran luego de
Los botones están definidos por la etiqueta <button> pero se aplica la directiva ion-button
3.4.4.1. Colores.
Los buttons pueden tener infinidad de colores y se los asigna con la directiva
3.4.4.2. Formas.
Se tiene una variedad de formas de botones que tienen un estilo predefinido y que no
3.4.4.2.1. Outline.
Esta propiedad nos muestra un botón con borde y texto del color requerido y el relleno
3.4.4.2.2. Clear.
Esta propiedad nos muestra un botón limpio solo el texto del color requerido aplicando la
opción clear.
3.4.4.2.3. Round.
Esta propiedad nos da un botón con las esquinas redondeadas dando un aspecto muy
de nuestro botón.
39
3.4.4.2.4. Icon.
Es una de las funcionalidades más usadas en los botones de Ionic 2, ya que podemos
combinar texto e iconos o tan solo iconos. Para conseguir esta funcionalidad debemos que
añadir la directiva ion-icon. En la Fig. 31 Botones en Ionic 2 se detalla el uso de los botones.
Las tarjetas son una estupenda manera de presentar contenido y organizar información.
tamaños de pantalla sin perder estilo. Además, contienen un amplio grado de personalización
Al igual que los botones tenemos una gran algunos tipos de Cards o tarjetas que pueden
footer, de los cuales ion-card-content es obligatorio usar ya que lleva el contenido a ser
haciendo uso de las API´s de Google Maps, Open Street Maps entre otros. En la Fig. 32:
40
3.4.6. Checkbox (Botones de verificación).
Los botones de verificación o Checkbox son componentes que permiten marcar casillas
con valores booleanos que dan a conocer a la aplicación la opción que el usuario desea
seleccionar.
Tienen la misma funcionalidad que en el HTML tradicional, pero en Ionic 2 se puede añadir
FABs (Floating Action Buttons) son componentes estándares de Material Design14, cuya
forma de presentación son botones con apariencia flotante que representan acciones que la
La directiva que se usa para formar un FAB es ion-fab misma que puede ser acompañada
14
Material Design: Guía integral de diseño, movimientos e interacción del usuario con el dispositivo
41
Fig. 33: Ejemplo de FABs en Ionic 2
Fuente: Propia
Las Grid son un sistema para construir layouts o diseños de distintas formas y tamaños y
este a su vez utiliza una serie de filas, columnas y contenedores para alinear el contenido de
una vista siempre manejado bajo del concepto de Responsive Web Design.
<ion-grid>
<ion-row>
<ion-col> 1 de 3 </ion-col>
<ion-col> 2 de 3 </ion-col>
<ion-col> 3 de 3 </ion-col>
</ion-row>
</ion-grid>
3.5. API
servicios.
Las apis de componentes son aquellas que incluyen entre su nomenclatura de uso clases
como Item, Toogle, Icon y Card. Nos indican sus selectores, propiedades y eventos que
42
Dentro de las API´S de componentes más usadas de Ionic se encuentran:
Es la directiva Content indica el cuerpo del contenido de la interfaz a ser vista por el
usuario, su equivalente en html5 es la etiqueta <body> la etiqueta que indica su uso es:
su funcionalidad, como indica la Fig. 34: Uso de ion-content y ion-header. en la que se inyecta
3.5.1.2. Item.
De manera general se usa dentro de una lista, juntamente con otros elementos, este
componente se puede manipular fácilmente con acciones como deslizar, eliminar, ordenar y
43
3.5.1.3. Segment.
de interactuar con controles y/o páginas. Un segmento brinda una funcionalidad igual o
En los segmentos podemos utilizar infinidad de componentes como listas, botones, cards,
sliders e iconos, tantos elementos como se requiera para interactuar con el usuario.
IOS ANDROID
Fig. 35: Segmento
Fuente: Documentación Oficial
3.5.1.4. Input.
Los inputs o entradas de texto son nos ayudan a capturar información, Ionic es compatibles
con los elementos HTML tradicionales con la finalidad de facilitar el desarrollo para los
acompañado de atributos tales como text, number e email al igual que el HTML nativo.
Los inputs poseen atributos y eventos que pueden ser inyectados directamente que
facilitan su uso y potencian su alcance. Al igual que la mayoría de las componentes de Ionic
44
IOS ANDROID
Fig. 36: Inputs
Fuente: Documentación Oficial
A los ion-input se puede inyectar clases CSS y atributos adicionales que modifican su
Las API de servicio son clases como MenuController, Config o Platform. Son servicios
provistos por el marco de desarrollo de Ionic que pueden ser inyectados directamente las
clases. Dentro de las API de servicio más usadas por los desarrolladores se encuentran:
3.5.2.1. Tabs.
Al igual que los segmentos o segment las Tabs o pestañas facilitan la navegación entre
45
IOS ANDROID
https://ionicframework.com/docs/components/#tabs
La ubicación del conjunto de pestañas puede ser modificado sea este en la parte superior
sitúa en la parte superior de la pantalla y en la parte superior para las plataformas Android e
iOS.
Las API’S de servicios son aquellas que hacen uso clases como Nav, Toolbar, Platform y
Tabs. Mismos que son provistos por Ionic u que pueden ser usados directamente o inyectados
dentro de clases.
tenemos que obtener información del dispositivo u otros factores externos como direcciones
IP, almacenamiento de datos, notificaciones y mapas. Para estos casos Ionic provee plugins
46
Veremos algunos plugins, los más usados por los desarrolladores y los más útiles al
momento de desarrollar aplicaciones tales como Device, Google Maps, SQLite y Storage,
Todos los plugins se deben instalar vía consola o terminal del sistema operativo esto es
CMD 15 o Windows Power Shell 16 en Windows, para Linux y Mac a través de Terminal 17 para
lo que debemos navegar hasta la carpeta donde se encuentra nuestro aplicativo y escribir el
Estos comandos instalaran los archivos y dependencias necesarias para que podamos
usar el plugin.
3.6.1. Device.
funcionamiento es adecuado para todas las plataformas de Android, iOS, Windows Phone,
MacOS y navegadores.
Dentro del componente ponemos instanciar los siguientes objetos que nos brindaran la
• Model: esta instancia nos da a conocer el modelo o producto, este valor puede
aplicación.
15
CMD: Consola de Windows, es un intérprete de comandos.
16
Windows Power Shell: interprete de comandos similar a CDM
17
Terminal: interprete de comandos para los sistemas operativso basados en Unix (Linux, Mac)
47
• Version: obtiene la versión del sistema operativo por ejemplo podría ser 5.0 en
de los desarrollos, una de las opciones y la más valorada por los desarrolladores es Google
Maps.
Para la implantación de mapas de Google es necesario un API KEY18 estas claves o llaves
se las debe crear en Google Api Console. En este caso en la instalación del plugin se debe
añadir algunas variables adicionales en este caso el API KEY creado la cual.
18
API KEY: Clave o llaves para el uso de servicios de Google
48
CAPITULO IV:
4. DESARROLLO / FASE ELABORACIÓN
4.1. Planificación
Antes de iniciar la fase de diseño y proceder con el desarrollo del aplicativo, se tomará en
El proyecto es un aplicativo orientado a servicios esto nos dice que debemos realizar un
backend que ofrezca servicios RESTful que es Yii2 para ser consumidos por la aplicación
móvil es por esto por lo que tenemos que definir prerrequisitos para el proveedor de servicios
diferente.
• Windows 7 en adelante.
49
4.1.3. Prerrequisitos de hardware.
Como habíamos mencionado, usaremos Yii2 para la administración del contenido a ser
mostrado en el aplicativo móvil y como proveedor de Servicios Web de tipo REST. Para el
4.1.4.1.1. Composer.
En nuestro caso usaremos Windows como sistema operativo para desarrollo para lo cual
tenemos que:
• Descargar el instalador.
• Ejecutar el instalador.
estación).
50
Fig. 39: Instalación Composer
Fuente: (Composer, 2017)
lo cual debemos dirigirnos a la página web oficial del framework misma que se indica la Fig.
40: Instalación Yii2. En este caso instalaremos la plantilla avanzada en la que encontramos
final.
En este caso usaremos la plantilla avanzada, esta nos permitirá crear un backend modular
y orientado a servicios.
51
En proceso de instalación consiste en:
advanced turismoapp.
4.1.4.1.3. Xampp.
Es necesario un servidor web para poder visualizar los cambios que hemos realizado en
nuestro backend Yii2 para lo cual usaremos XAMPP que es una solución basada en Apache,
MySQL y PHP. En esta Ocasión utilizaremos la versión 5.6.33 de este software en este caso
• Ejecutar el instalador.
• Finalizar la instalación
• Ejecutar la aplicación.
52
• Verificar que una vez no iniciado Apache y MySQL se inicien los servicios. De no ser
V8 de Chrome. Node.js usa un modelo de operaciones E/S sin bloqueo y orientado a eventos,
que lo hace liviano y eficiente. El ecosistema de paquetes de Node.js, npm, es el más grande
53
4.1.4.2.2. SDK Android.
El SDK de Android nos permitirá compilar nuestra aplicación para este sistema operativo.
Una vez instalado el SDK de Android se debe añadir a las variables de entorno, en este
caso añadiremos una variable nueva llamada ANDROID_HOME cuyo valor será el directorio
entorno Android SDK. Luego en la variable PATH añadiremos los accesos a la carpeta
platform-tools y tools que son directorios que se utilizara para poder compilar nuestro
tools;%JAVA_HOME%\tools.
54
4.2. Especificación de requisitos de software (Product backlog)
4.2.1. Propósito.
propósito de realizar una descripción detallada de los requisitos que concierte al desarrollo
del aplicativo para analizar el funcionamiento y alcance del proyecto a ser realizado,
determinando así la funcionalidad que exige el aplicativo móvil, así como las condiciones que
4.2.2. Alcance.
El alcance del presente desarrollo es dar a conocer al ciudadano tanto local, nacional e
internacional el patrimonio turístico que el cantón Pimampiro ofrece y los lugares turísticos
55
Tabla 7: Descripción del Director de Sistemas
Fuente: Propia
atractivos turísticos del Cantón Pimampiro de una manera cómoda y de fácil usabilidad, sus
funciones son confiables, prácticas para enriquecer el conocimiento de esto sobre lo que el
turistas y ciudadanos en general con respecto a que ofrece Pimampiro en el ámbito turístico
actualizada, todo ello para mejorar la afluencia de turistas y fomentar la economía local.
56
4.2.4.2. Requerimientos De Usuario.
• Fácil de manejar: Todos los formularios de ingreso de información deben tener una
forma fácil de usar, con botones, listas desplegables y cuadros de selección que al
• Diseño amigable: Cada formulario debe ser claro e intuitivo, es decir, que va a
realizar dicho formulario con sus respectivos botones con iconos referentes a lo que
se está realizando.
• No muy colorido: Los colores serán puestos mediante un estándar brindados por el
colores muy fuertes provocan cansancio a la vista, o por otra parte que tenga los
cargase, debe haber mensajes que notifique sí que se está realizando la operación.
Dentro de los requerimientos del sistema encontraremos requerimiento del aplicativo web
Número de RF.APL.01
requisito
Nombre de Perfil de Acceso
requisito
Tipo X Requisito ☐ Restricción
Detalle del A los usuarios dados de alta en el sistema se les asociará un perfil de
requisito acceso y se identificará el nivel de actuación de su organización.
57
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
Número RF.APL.02
de
requisito
Nombre Límite de acceso de usuarios
de
requisito
Tipo X Requisito ☐ Restricción
Detalle Existirá 2 tipos de usuarios:
del Edición. Además de tener permisos de Lectura, podrá acceder a la
requisito aplicación para ejecutar ciertas funcionalidades del sistema como
edición y modificación.
Administración. Además de poseer los permisos de Lectura y
ejecución, tendrá acceso a la parte de administración de la información
en el sistema.
Auditoria. Además de poseer los permisos de Lectura, tendrá acceso
a la parte de auditoria en la que se detallan modificaciones realizadas.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
Número RF.ENT.01
de
requisito
Nombre Ingreso de la Información
de
requisito
Tipo X Requisito ☐ Restricción
Detalle La base de datos de MySQL debe ser capaz de recibir, validar, cargar y
del consolidar los datos de sus socios y transacciones registradas.
requisito A continuación, se enumeran los datos que inicialmente se recibirán:
Datos atractivos nuevos.
Datos de usuarios de aplicativo web con permisos de uso del sistema.
Datos de categorías de lugares turísticos.
Datos e imágenes de lugares turísticos.
Datos de eventos a realizarse.
Datos de distribución política de la provincia, cantón y parroquia.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
58
4.2.5. Requerimientos no funcionales.
4.2.5.1. Arquitectura.
Número RF.ARQ.01
de
requisito
Nombre Requisitos de hardware y de software
de
requisito
Tipo X Requisito ☐ Restricción
Detalle Sistema Web de administración de contenido se instalará bajo sistema
del operativo Linux, sobre un servidor de aplicaciones en la nube, que
requisito dispondrá de, un servidor web Apache, MySQL.
La aplicación móvil estará disponible en la tienda de Google (Google
Play)
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
4.2.5.2. Usabilidad.
Especificaciones destinadas a cubrir la capacidad del software para que éste sea
entendido, aprendido, operado y usable para los usuarios tanto del administrador de
Número RF.USA.01
de
requisito
Nombre Acceso al sistema web de administración de contenido.
de
requisito
Tipo X Requisito ☐ Restricción
Detalle La aplicación será accesible mediante un enlace web situado en la
del internet. Mantendrá los estándares de usabilidad que cumpla con la
requisito facilidad, seguridad y operabilidad accesible por los usuarios
autorizados.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
59
Tabla 14: Acceso la aplicación móvil
Fuente: Propia
Número RF.USA.02
de
requisito
Nombre Acceso al sistema web de administración de contenido.
de
requisito
Tipo X Requisito ☐ Restricción
Detalle La aplicación será accesible mediante en la tienda de Google esto des
del Google Play Store. Mantendrá los estándares de usabilidad que cumpla
requisito con la facilidad y operabilidad accesible para el usuario final.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
4.2.5.3. Seguridad.
Número RF.SEG.01
de
requisito
Nombre Seguridad de ingreso al sistema web de administración de contenido.
de
requisito
Tipo X Requisito ☐ Restricción
Detalle Los usuarios para ingresar al sistema web de administración de
del contenido utilizarán un usuario y una contraseña, que será
requisito proporcionados por el administrador.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
60
Tabla 16: Seguridades de base de datos
Fuente: Propia
Número de RF.SEG.02
requisito
Nombre de Seguridad de base de datos
requisito
Tipo X Requisito ☐ Restricción
Detalle del La seguridad de la base de datos estará bajo la responsabilidad del
requisito Director de Sistemas de la Institución o en su defecto del desarrollador
del sistema.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
4.2.5.4. Mantenibilidad.
Número RF.MAN.01
de
requisito
Nombre Tipo de mantenimiento
de
requisito
Tipo X Requisito ☐ Restricción
Detalle El mantenimiento del sistema estará bajo la responsabilidad del
del administrador del sistema de la institución o en su defecto el
requisito desarrollador, que llevará a cabo los procesos de actualización y
corrección de errores del sistema.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
4.2.5.5. Portabilidad.
Se especificará los atributos que el sistema web y aplicativo móvil debe mantener para
61
Tabla 18: Especificaciones de portabilidad
Fuente: Propia
Número RF.POR.01
de
requisito
Nombre Especificaciones de Portabilidad
de
requisito
Tipo X Requisito ☐ Restricción
Detalle No existe restricción de sistema operativo y se debe tener navegadores
del web con soporte de PHP, CSS, HTML, JAVASCRIPT, AJAX, VENTANAS
requisito EMERGENTES ACTIVADO, Y DESACTIVADO EL USO DE
ADBLOCKERS para esa dirección o dominio.
El servidor apache debe tener asignado un puerto que no ocupe otra
aplicación en el mismo entorno para evitar conflictos.
En el caso del aplicativo móvil no se debe volver subir a la tienda previa
compilación y cumpliendo los pre-requisitos de la misma.
Prioridad X Alta/Esencial ☐ Media/Deseado ☐ Baja/ Opcional
del
requisito
web.
62
4.2.6.1.4. Modulo administrador de usuarios.
En este módulo tiene la finalidad de administrar los usuarios, roles y acciones que un
Encargado de proveer los servicios web de tipo REST a ser consumidos por el aplicativo
móvil.
Conjunto de páginas o vistas donde se indica el patrimonio turístico del Cantón Pimampiro.
4.2.6.2.2. Servicios.
4.2.6.2.3. Interés.
Cantón Pimampiro como son zonas wifi, libros o revistas digitales y eventos.
4.2.6.2.4. Mapa.
Conjunto de páginas o vistas donde permite buscar los distintos lugres turísticos, servicios
63
Tipo de usuario Técnico de Turismo
Formación
Habilidades Editor de Contenido
Actividades Gestionar, supervisar y aprobar el contenido (texto o
imágenes) del aplicativo web de administración de
contenido
para su culminación, para lo que se ligará a los Sprints y sus requerimientos. A continuación,
4.2.8.1. Sprint 1.
TIEMPO
TAREA ESTIMADO
(Horas)
Adquisición e instalación de herramientas 2
Configuración del framework Yii2 12
Subida da BitBucket del proyecto de Yii2 1
Modelado de Base de Datos 5
Normalización de Base de Datos 4
Puesta a prueba de la base de datos 6
Modificación de la estructura de base de datos 4
Subida da BitBucket de la base de datos. 1
Creación de Módulos en el backend de Yii2 2
Configuración de generadores de CRUD's 3
Pruebas de generadores de CRUD's 2
64
Socialización Scrum, Retrospectiva Sprint 4
Planificación. 4
Revisión de desarrollos. 3
TOTAL 53
4.2.8.2. Sprint 2.
Parroquias) y añadir las vistas adicionales, así como las pruebas de funcionamiento de las
mismas.
TIEMPO
TAREA ESTIMADO
(Horas)
Generación y edición de crud de Provincias 2
Generación y edición de crud de Cantones 2
Generación y edición de crud de Parroquias 2
Pruebas de CRUD's de Provincias, Cantones y Parroquias 5
Corrección de Errores en CRUD's de Provincias, Cantones y
Parroquias 2
Generación y edición de crud Atractivo 2
Generación y edición de crud de CategoriaLugar 2
Pruebas de CRUD's de Provincias, Cantones y Parroquias 4
Corrección de Errores en CRUD's de Atractivo y CategoriaLugar 2
Socialización Scrum, Retrospectiva Sprint 4
Planificación. 4
Revisión de desarrollos. 3
TOTAL 34
4.2.8.3. Sprint 3.
subida de imagenes y añadir las vistas adicionales así como las pruebas de funcionamiento
65
Development: Luis Yaguapaz
Product Owner Daniel Rivera
Sprint 3
Fechas 01/03/2017
15/03/2017
Total horas 54
TIEMPO
TAREA ESTIMADO
(Horas)
Generación y edición de crud de Lugares 5
Generación y edición de crud de Imágenes 4
Generación y edición de crud de Eventos 3
Pruebas de CRUD's de Lugares, Imágenes y Eventos 5
Corrección de Errores en CRUD's de Lugares, Imágenes y Eventos 4
Generación y edición de crud Visitas 3
Pruebas de CRUD's de Visitas 1
Corrección de Errores en CRUD's Visitas 1
Pruebas del aplicativo en Yii2 6
Corrección de errores y diseño del aplicativo en Yii2 6
Configuración de directorio/modulo para API 5
Socialización Scrum, Retrospectiva Sprint 4
Planificación. 4
Revisión de desarrollos. 3
TOTAL 54
4.2.8.4. Sprint 4.
66
Creación y edición de páginas Atractivos Turísticos, Zonas
Seguras, Servicios (PROTOTIPO) 12
Creación y edición de páginas Atractivos Turísticos, Zonas
Seguras, Servicios (PROTOTIPO) 5
Creación de Servicios Web REST para el prototipo 12
Pruebas de Servicios Web REST para el prototipo 3
Corrección de errores de Servicios Web REST para el prototipo 3
Consumo de servicios web REST en el prototipo 12
Pruebas de consumo de servicios web REST en el prototipo 3
Corrección de errores en el consumo de servicios web REST en
el prototipo 3
Corrección de errores de diseño en el prototipo 5
Socialización Scrum, Retrospectiva Sprint 4
Planificación. 4
Revisión de desarrollos. 3
TOTAL 84
4.2.8.5. Sprint 5.
67
Socialización Scrum, Retrospectiva Sprint 4
Planificación. 4
Revisión de desarrollos. 3
TOTAL 51
4.2.8.6. Sprint 6.
aplicativo.
4.2.8.7. Sprint 7.
68
Deploy de la web app (Yii2) 3
Solicitud por parte de GAD Pimampiro de hosting y dominio 4
Socialización Scrum, Retrospectiva Sprint 4
Planificación. 2
Revisión de desarrollos. 2
TOTAL 23
4.2.8.8. Sprint 8.
TOTAL 36
69
4.3.1.1. Aplicación Android.
protocolo HTTP al proveedor de servicios, mismo que realizará una conexión directa a la base
se encuentra en un servidor Apache, mismo aplicativo almacenará los datos la base de datos
70
4.3.2. Diseño del aplicativo móvil.
El diseño del aplicativo móvil propuesto por el técnico de turismo del GAD Pimampiro, el
mismo que no es el definitivo puesto que se prevé cambiar durante el desarrollo se muestra
en la Fig. 48: Diseño del administrador de contenido Yii2 se tiene previsto un aproximado de un
la aplicación al diseño otorgado por el GAD Pimampiro esto es con datos ficticios con la
denominada AdminLTE, esta plantilla está disponible en el sitio web del desarrollador en
Github (https://github.com/dmstr/yii2-adminlte-asset).
71
Fig. 48: Diseño del administrador de contenido Yii2
Fuente: Propia
72
4.3.5.1. Módulo de contenido.
Esta parte del aplicativo web se desarrollará una correcta forma de administración de
73
4.3.5.3. Módulo de respaldo y recuperación.
74
4.4.1.2. Servidor web.
El servidor web es apache en su versión 2.4 en este caso instalaremos XAMPP ya que
nos provee una solución muy conveniente y adecuada para el desarrollo, su instalación no es
https://www.apachefriends.org/es/download.html.
Text en su versión 3 ya que es una herramienta muy poderosa y muy liviano al momento de
ejecutar.
Sublime Text 3 tiene la capacidad de instalar extensiones y plugins que nos serán de
Esta es una herramienta de pago, pero es posible usarla de forma gratuita sin necesidad
https://www.sublimetext.com/3.
75
4.4.2.2. Diagrama de Entidad – Relación.
Fuente: Propia
Fig. 53: Diagrama Entidad Relación
76
Tabla 20: Diccionario de datos
Fuente: Propia
77
auth_assignment Ítem_name 3 Tabla de
almacenamiento de
roles asignados a
usuarios
auth_item name 8 Tabla de
almacenamiento de las
rutas o permisos a ser
asignados
auth_item_child parent, child 2 Tabla de
almacenamiento de los
permisos asignados a
los roles
auth_item_group code 4 Tabla de
almacenamiento de los
grupos de usuarios
auth_rule name 4 Tabla de
almacenamiento de
reglas o acciones
permitidas por los roles.
que se tiene que configurar un host virtual en nuestro ordenador para lo cual se debe modificar
“C:\Windows\System32\drivers\etc” tal como nos indica la Fig. 54: Configuración del archivo
hosts.
78
y configuramos el archivo de la forma que indica la Fig. 55: Configuración del archivo httpd-
vhosts.
Ahora se procede con la configuración del proyecto en Yii2 para lo cual abrimos el símbolo
del sistema (CMD) y nos dirigimos a la ruta htdocs del directorio de instalación de XAMPP y
colocamos init este comando inicializa nuestro aplicativo en modo desarrollo o producción y
Una vez inicializado el aplicativo se debe configurar la base de datos a la que accede el
de la base de datos .
79
Yii2 trae en su core un sistema de administración de usuarios básico, en este caso no lo
configuración.
Para la creación de módulos haremos uso del módulo generador de código que nuestro
GII podemos apreciar la forma de proceder para generarlo, una vez generado se debe añadir
carpeta backend/config. Se debe realizar acciones similares para los módulos de atractivo
turístico y respaldo.
80
4.4.3.3. Elaboración de CRUD´s.
de una manera fácil, dinámica y con las validaciones respectivas campos a ser ingresados.
generar un modelo con atributos y validaciones necesarias para poder administrar los
controladores, Yii2 nos da la posibilidad de crear una clase o modelo de búsqueda avanzada
denominada SearchModel.
Modelos
81
Controlador
Vistas
• Index. - Archivo o directorio que lista los registros del modelo en una tabla (GRID)
82
Fig. 60: Vistas generadas por CRUD Generator
Fuente: Propia.
Se deberá modificar las vistas los CRUD´s generados con anterioridad en nuestro
aplicativo en cuanto sea necesario para que sea agradable a la vista de del usuario final, los
modelos deben aplicar las validaciones necesarias para que sean ingresados datos que no
Para las validaciones en las clases modelos existe una función denominada rules en lo
[['atractivo_nombre'], 'required'],
83
4.4.3.4. Creación de API
Para la creación del API se deberá crear un directorio en la raíz nuestro aplicativo, en las
que se creará directorios config, modules, runtime y web. Similar a los directorios backend y
frontend de proyecto.
Fig. 62: Archivo de Configuración de API en la que se configura las rutas de acceso a los
84
Dentro del archivo se encuentran el módulo v1 que es el cual se crearan los controladores
En los métodos de los controladores se hará uso de métodos propios del framework como
find(), findOne(), findWhere(), etc. ya por que tardan más tiempo en ejecución en este caso
haremos uso de sentencias SQL haciendo uso de conexión directa a base de datos.
Para el aplicativo móvil haremos uso de la plantilla Tabs propia del framework misma que
nos brinda navegación entre páginas en el inferior de la pantalla del dispositivo. Para la
Durante el desarrollo se usará del IDE de programación Visual Studio Code que es una
herramienta libre proporcionada por Microsoft, se recomienda usarla ya que incorpora interfaz
Se debe tomar en cuenta los comandos que podemos ejecutar en la línea de comandos
85
Tabla 21: Definición de comandos usados por Ionic 2
Fuente: Propia
Comando Descripción
4.4.4.1. Maquetación
tomará el prototipo realizado por el diseñador gráfico del GAD Pimampiro y será acoplado al
86
4.4.4.2. Consumo de servicios
mediante un provider que es un componente del framework que hace uso de paquetes que
La petición de datos parte del aplicativo mediante un conjunto de peticiones que indican
una acción a realizarse, sea esta de lectura o escritura en el servicio web. El aplicativo realiza
una petición de tipo OPTIONS el cual describe la acción a realizarse en la petición esta puede
Una vez realizada la petición el aplicativo procede a realizar un mapeo de datos y mediante
una suscripción al paquete de respuesta puede asignar los datos devueltos a una variable
dentro de una determinada página para que: si contiene un valor sea mostrado directamente
en la vista o si tiene más de un elemento sea iterado y/o procesado para posterior ser
presentado al usuario.
87
4.4.4.3. Resultados del desarrollo
Una vez concluido la creación de las paginas basada en los diseños, la implementación
la incorporación del plugin launch navigator mismo que nos permitirá abrir aplicaciones de
mapas como Google Maps, Waze, Maps.ME, HERE Maps entre otros, mismo plugin lo
navigator.
En Fig. 65: Página de inicio del aplicativo se puede evidenciar la pantalla principal del
aplicativo y en la parte inferior el menú de navegación de tipo Tabs mismo que contiene la
88
Fig. 66: Patrimonio Turístico
Fuente: Propia
turístico del Cantón Pimampiro, sección que pude ser modificada en el administrador de
contenido.
89
La Figura 67: Detalle de lugar turístico da a conocer detalles de ubicaciones, actividades,
teléfonos, etc. del lugar turístico, adicional al pulsar el botón ir traza una ruta desde nuestro
En la Fig. 68: Servicios evidenciamos los distintos servicios que esperan al turista en el
Cantón Pimampiro, las distintas categorías de los servicios pueden ser administradas en el
90
Fig. 69: Lista de eventos
Fuente: Propia
En la Fig. 69: Lista de eventos se puede evidenciar los eventos a realizarse en un futuro
con los detalles de sus rutas, al pulsar dentro de cada ruta la mismas muestra un mapa con
91
En la Fig. 70: Pantalla de búsqueda se evidencia un cuadro de búsqueda en el cual se
deberá ingresar un texto y nos dará a conocer una lista con los atractivos turísticos que
4.5. Pruebas
Motorola Moto X2
Android 5.0
Samsung Galaxy S5
Android 6.0.1
92
Samsung Galaxy J5
Android 7.0
93
CAPITULO V
5. CONCLUSIONES Y RECOMENDACIONES
5.1. Conclusiones
Una vez analizado los objetivos y el alcance planteados en este proyecto de titulación se
como los es Ionic 2 ayudan a los programadores y dueños del producto a ahorrar costos y
programación.
➢ El estudio de una herramienta debe ser lo más minucioso posible ya que brinda información
programación, incluso nos brinda una breve visión de si el framework tiene estabilidad a
futuro.
➢ Las metodologías de desarrollo de software como Scrum tienen como objetivo agilizar la
➢ Las nuevas tecnologías nos dan nuevos métodos de conectividad entre aplicaciones, esto
es los servicios RESTful, son servicios web completos, livianos y de fácil implementación
ya que usan JSON lo que hace que los datos sean multidimensionales y de fácil
manipulación.
94
5.2. Recomendaciones
Una vez analizado los objetivos y el alcance planteados en este proyecto de titulación se
➢ Profundizar el estudio del framework Ionic 2 para sacar ventajas de toda la capacidad que
➢ Usar Ionic framework en su versión 2 para el desarrollo de aplicaciones móviles nos brinda
software.
➢ Usar herramientas de código libre (Open Source) en los proyectos de desarrollo brindan
rentabilidad.
que usan el protocolo HTTP, adicional usa JSON lo que hace que sus objetos sean de fácil
manipulación.
95
ANEXOS
96
Certificado - IARC Content Ratings
97
Bibliografía
https://www.apachefriends.org/es/download.html
Apache: https://cordova.apache.org/
https://www.desarrolloweb.com/articulos/introduccion-angular2.html
https://getcomposer.org/download/
es.html
LLC Yii, S. (2014). The Definitive Guide to Yii 2.0. Retrieved from
http://www.yiiframework.com/doc-2.0/guide-db-dao.html
Phan, H. (2016). Ionic 2 Cookbook Second Edition. Birmingham: Packt Publishing Ltd.
Reference Manual, M. (2017). Oracle Corporation and/or its affiliates. Retrieved from
https://dev.mysql.com/doc/refman/5.7/en/introduction.html
http://www.gopensil.com/2017/10/pengertian-yii-framework.html
98
Canós, J. H., Letelier, P., Penadés, C., & Valencia, D. P. De. (2003). Métodologías Ágiles en
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.97.4553&rep=rep1&
;type=pdf
Schwaber, K., & Sutherland, J. (2013). La Guía de Scrum. Scrumguides.Org, 1, 21. Retrieved
from http://www.scrumguides.org/docs/scrumguide/v1/Scrum-Guide-ES.pdf
Tobergte, D. R., & Curtis, S. (2013). Sbok. Journal of Chemical Information and Modeling (Vol.
53). https://doi.org/10.1017/CBO9781107415324.004
https://doi.org/10.1002/ejoc.201200111
99