UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES “UNIANDES” FACULTAD DE SISTEMAS MERCANTILES INGENIERA EN SISTEMAS E INFORMÁTICA TRABAJO DE TITULACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERIA EN SISTEMAS E INFORMÁTICA. TEMA: Estudio comparativo entre plataformas ANDROID e IOS para el desarrollo de aplicaciones móviles inteligentes para el centro de capacitación y asesoramiento informático (CCAINFOR) - Ibarra AUTOR: Tnlgo. Tixicuro Chiza Marlon Javier ASESOR: Ing. Eduardo Fernández. Mgs. AMBATO – ECUADOR 2015 CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación, certifico que la tesis cuyo título es “Estudio comparativo entre plataformas ANDROID e IOS para el desarrollo de aplicaciones móviles inteligentes para el centro de capacitación y asesoramiento informático (CCAINFOR) - Ibarra”, elaborada por Tixicuro Chiza Marlon Javier, cumple con los requisitos metodológicos y científicos que la Universidad Regional Autónoma de los Andes UNIANDES exige, por lo tanto autorizo su presentación para los trámites pertinentes. Atentamente, _________________________ Ing. Eduardo Fernández. Mgs. Asesor DECLARATORIA DE LA AUTORÍA Ante las autoridades de la Universidad Regional Autónoma de los Andes declaro que el contenido del presente proyecto cuyo título es “Estudio comparativo entre plataformas ANDROID e IOS para el desarrollo de aplicaciones móviles inteligentes para el centro de capacitación y asesoramiento informático (CCAINFOR) - Ibarra” presentado como requisito previo a la obtención del título de INGENIERIA EN SISTEMAS E INFORMATICA es original, de mi autoría y total responsabilidad. Además autorizo a la Universidad Regional Autónoma de los Andes (UNIANDES) para que pueda emplear el presente trabajo como apoyo para futuras investigaciones relacionadas con el tema planteado. Atentamente, Tnlgo. Marlon Javier Tixicuro Chiza. C.I. 1003624093 DEDICATORIA Dedico este trabajo con todo mi amor y cariño: A Dios por brindarme salud y vida llenarme de bendiciones y mucha sabiduría para poder alcanzar todos los objetivos que me he propuesto en esta etapa de mi vida. A mi madre Magdalena Chiza, a mi padre Francisco Tixicuro quienes me dieron la vida, la educación por ser un apoyo incondicional y por tenerme paciencia en los buenos y malos momentos académicos y en mi vida diaria, se han convertido en mi motivo y razón de vida para poder llegar a esta instancia de mis estudios, ya que ellos siempre han estado presentes apoyándome. A mi hermano Juan Tixicuro por su ayuda y apoyo moral en los momentos buenos y malos de nuestras vidas. A mi novia Katherine Ramos quien con su apoyo constante y amor incondicional ha sido amiga y compañera inseparable, fuente de sabiduría, calma y consejo en todo momento. Marlon Tixicuro AGRADECIMIENTO A, la Universidad Regional Autónoma de los Andes (UNIANDES) y a sus catedráticos que me impartieron en las aulas todos los conocimientos y mostraron también sus valores permitiendo así una formación integral en mi y en varios de sus alumno por eso mil gracias a ustedes mis maestros. De manera muy especial quiero agradecer al Ing. Eduardo Fernández. Mg, asesor de elaboración de trabajo de titulación quien supo realizar su trabajo con mucho profesionalismo y ser una persona amable y paciente, también a mis maestros que por años impartieron sus conocimientos y que por ultimo aportaron con criterios, consejos y conocimientos y tiempo valiosos para culminar este trabajo. Para todos ustedes mi gratitud y respeto. A mi familia, mi novia y amigos/as importantes en mi vida, como también no serlo en esta una de mis etapas, la de estudiante y ahora profesional muchas gracias por estar siempre allí en el momento y tiempo exactos. Marlon Tixicuro. ÍNDICE GENERAL INTRODUCCIÓN .............................................................................................. 1 Antecedentes de la investigación .................................................................. 1 Planteamiento del problema .......................................................................... 3 Identificación de la línea de investigación ..................................................... 3 Justificación del tema .................................................................................... 4 OBJETIVOS: ..................................................................................................... 5 Objetivo General............................................................................................ 5 Objetivos Específicos .................................................................................... 5 CAPITULO I ...................................................................................................... 6 FUNDAMENTO TEÓRICO CONCEPTUAL DE LA PROPUESTA..................... 6 1.1. Aplicaciones web ........................................................................... 6 1.2. Estructura De Las Aplicaciones Web ............................................. 7 1.3. Lenguajes de Programación .......................................................... 7 1.4. Clasificación de las Aplicaciones Web ........................................... 8 1.5. Procesador de textos en Línea ...................................................... 8 1.6. Aplicaciones móviles o App ........................................................... 9 1.7. Mobile Sistemas Operativos ........................................................ 12 1.8. Android SDK ................................................................................ 14 1.9. Sistemas Operativos.................................................................... 16 1.10. Lenguajes de Programación SDK ................................................ 16 1.11. Netbeans ..................................................................................... 20 1.12. Apache. ....................................................................................... 21 1.13. Propiedades de Apache ............................................................. 22 1.14. Mysql ........................................................................................... 25 1.15. Características Técnicas de MySql .............................................. 26 1.16. Php .............................................................................................. 27 1.17. Java............................................................................................. 28 CAPITULO II ................................................................................................... 30 METODOLOGÍA DE LA INVESTIGACIÓN ..................................................... 30 Bibliográfica ................................................................................................. 31 De campo .................................................................................................... 31 Las técnicas ................................................................................................ 31 Población y Muestra .................................................................................... 31 Histórico – Lógico ........................................................................................ 32 Analítico – Sintético ..................................................................................... 32 Inductivo – Deductivo .................................................................................. 32 CAPITULO III .................................................................................................. 47 DESARROLLO DE LA PROPUESTA .......................................................... 47 3.1. Tema:................................................................................................. 47 3.2. Descripción de la propuesta ........................................................ 47 3.3. Desarrollo de la Propuesta .......................................................... 47 3.3.1. Metodología de Desarrollo ........................................................... 47 3.3.2. Análisis Previo ............................................................................. 48 3.3.3. Diseño ......................................................................................... 49 3.3.4. Desarrollo .................................................................................... 50 3.3.5. Pruebas ....................................................................................... 62 3.3.6. Implementación ........................................................................... 63 3.3.7. Validación de la propuesta........................................................... 65 CONCLUSIONES Y RECOMENDACIONES................................................... 67 Conclusiones ............................................................................................... 67 Recomendaciones ....................................................................................... 68 ÍNDICE DE TABLAS Tabla 1, Marco Mostral……………………………………………….…………… 32 Tabla 2, Pregunta 2……………………………………….……………………….. 33 Tabla 3, Pregunta 3……………………………………….……………………….. 34 Tabla 4, Pregunta 4……………………………………….……………………….. 35 Tabla 5, Pregunta 5……………………………………….……………………….. 36 Tabla 6, Pregunta 6……………………………………….……………………….. 37 Tabla 7, Pregunta 1……………………………………….……………………….. 38 Tabla 8, Pregunta 2……………………………………….……………………….. 39 Tabla 9, Pregunta 3……………………………………….……………………….. 40 Tabla 10, Pregunta 4…..………………………………….……………………….. 41 Tabla 11, Pregunta 5…..………………………………….……………………….. 42 Tabla 12, Pregunta 6…..………………………………….……………………….. 43 ÍNDICE DE GRÁFICOS Gráfico 1, Pregunta 1…………………………………….………………..……….. 33 Gráfico 2, Pregunta 2…………………………………….……………………..….. 34 Gráfico 3, Pregunta 3…………………………………….………………………… 35 Gráfico 4, Pregunta 4…………………………………….……………………….... 36 Gráfico 5, Pregunta 5…………………………………….……………………..….. 37 Gráfico 6, Pregunta 6…………………………………….…………………..…….. 38 Gráfico 7, Pregunta 1…………………………………….………………..……….. 39 Gráfico 8, Pregunta 2…………………………………….………………..……….. 40 Gráfico 9, Pregunta 3…………………………………….………………..……….. 41 Gráfico 10, Pregunta 4…………………………………….……………………….. 42 Gráfico 11, Pregunta 5…………………………………….……………………….. 43 Gráfico 12, Pregunta 6…………………………………….……………………….. 44 Gráfico 13, Desarrollo de plataformas ANDROID e IOS……………………….. 48 Gráfico 14, Diagrama de entrada y salida de datos...….……………………….. 50 Gráfico 15, Desarrollo de Aplicaciones…. ……..……….……………………….. 63 RESUMEN EJECUTIVO Análisis comparativo entre las plataformas de desarrollo de aplicaciones móviles para los sistemas operativos android y ios para esto se utilizó el método científico con las técnicas de observación y técnicas de estudios de caso en la creación de prototipos para ambas plataformas de desarrollo que permitieron dar resultados de manera cuantitativa y cualitativa a la investigación. Se utilizó los siguientes materiales, en elementos hardware: 2 computadores, 1 tablet y en elementos software: Eclipse, SDK de android, Netbeans, Mysql, Xcode Framework. Mediante los parámetros de medición, se obtuvo los siguientes puntajes: Android 93,75% y iOS con 77,5%, siendo el de mayor productividad en la implementación de aplicaciones la plataforma Android con una equivalencia de Muy bueno. Aplicando en el desarrollo de dos aplicaciones móviles, con este último en una aplicación Nativa para Android, el mismo que cuenta con un diseño de ambientes amigables y es de fácil uso para el usuario. Se concluye que la plataforma de desarrollo Android mejora la productividad en la implementación de aplicaciones porque en el desarrollo de la mayor parte de los parámetros establecidos obtuvo un mayor desempeño. Se recomienda para la realización de proyectos en aplicaciones móviles utilizar la plataforma Android ya que ofrece un conjunto de herramientas que facilitan la implementación de aplicaciones, brinda una extensa documentación y existe una gran comunidad de desarrolladores. EXECUTIVE SUMMARY Comparative analysis between the platforms of mobile application development for android and ios operating systems for this the scientific method was used with observational techniques and case studies techniques to create prototypes for both development platforms that allowed to results quantitative and qualitative research way . The following materials were used in hardware elements: 2 computers , one tablet and software elements : Eclipse, Android SDK , Netbeans , Mysql , Xcode Framework. By the measurement parameters , the following scores were obtained: 93.75 % Android and iOS with 77.5 %, the highest productivity in the Android application deployment platform with an equivalence of Very Good . Applied in the development of two mobile applications, with the latter in a native app for Android, featuring the same design environment friendly and easy to use for the user. We conclude that Android development platform improves productivity in deploying applications development because most of the established parameters obtained higher performance . It is recommended for projects in mobile applications using the Android platform and offers a set of tools that facilitate the deployment of applications , provides extensive documentation and there is a large community of developers . INTRODUCCIÓN Antecedentes de la investigación El desarrollo de aplicaciones móviles originariamente tuvo amplias barreras correspondidas a la velocidad de procesamiento y a las restricciones técnicas de su hardware, mismas que limitaban la ejecución e instalación de aplicaciones de mediana complicación. Hace algunos años estos dispositivos se utilizaban elementalmente para realizar llamadas, escribir mensajes de texto (SMS) y divertir al usuario con el uso de juegos sencillos. Debido al progreso del hardware de los dispositivos móviles, su rango de uso se ha desarrollado a varios campos, como el multimedia, el uso de sensores, el uso de servicios web y la navegación por Internet. Estas capacidades han generado una petición de aplicaciones que admitan hacer uso de ellas de modo sencillo e intuitivo, llevando así a los dispositivos móviles a cubrir necesidades que antes sólo lo hacía un computador. La visión de los terminales móviles inteligentes ha disparado una revolución en los últimos años en lo que concierne a la utilización y concepción de Internet. Hoy es amplia la utilización de dispositivos móviles inteligentes y su conveniente uso ha autorizado optimizar la gestión de los tiempos de labor e incrementar el rendimiento, todo ello ayudado de una gran portabilidad, característica esencial de los dispositivos móviles, que ha autorizado que ellos sean parte de nuestra vida diaria. Nuestro país no ha emprendido aún por explotar en gran medida esta tecnología, es por ello que no se ha visto el gran ahorro de tiempo y bienestar que puede ofrecer en varias áreas de labor. 1 La pagina de StatConter (http://gs.statcounter.com) en su artículo menciona que “Con relación al movimiento de la colaboración en el mercado mundial de los sistemas operativos para dispositivos móviles a febrero del 2013, según el informe de StatCounter Android se lleva el 15,2% a la alza, frente al 14,5% de RIM a la baja, Symbian con el 30,7% a la baja, seguida de cerca por iOS con el 24,6%. El alza proyectada que presenta Android dentro de estas estadísticas es elevada y llevaría a pensar que es un sistema operativo que a corto plazo ocupará una cuota de gran calidad en el mercado. Este fenómeno ha comenzado a brotar en Estados Unidos donde, las estadísticas según el informe de Nielsen, indican que Android ocupa el 31% de colaboración mientras el periodo de Enero del 2013 a Marzo del 2013.” De la misma manera, iOS está conservando gran acogida de los usuarios, tal es el caso de Europa, que según el estudio de StatCounter publicado en su pagina (http://gs.statcounter.com) menciona en uno de sus artículos que recoge el 43% de mercado de sistemas operativos para dispositivos móviles. Es por este motivo que se puede percibir una tendencia actual de una gran cantidad de aplicaciones móviles desarrolladas para las plataformas android y iOS. Así como las aplicaciones, las herramientas para el desarrollo de las mismas han ido creciendo casi a la par, mejorando la experiencia que brindan a los desarrolladores e incluyendo paulatinamente las nuevas versiones de APIS para estos sistemas operativos. Esta variedad de sistemas operativos y plataformas de desarrollo existentes consienten mantener un alto grado de competitividad en el mercado, lo cual es bueno para los consumidores, sin embargo es de gran impacto para las personas y empresas que consagran sus esfuerzos a la implementación de aplicaciones y servicios para dispositivos móviles. Para estos últimos, es muy compleja la tarea de escoger una plataforma sobre la cual puedan realizar el desarrollo de un producto software logrando una máxima productividad en la implementación, adaptándolo cada vez a las necesidades cambiantes de los clientes 2 Planteamiento del problema El Centro de Capacitación y Asesoramiento Informático “CCAINFOR” es una microempresa nacida de la iniciativa de su gerente propietario, el cual en base a sus habilidades de desarrollo de aplicaciones móviles así como Web, de escritorio y mas, inicia sus actividades en el año 2008 desarrollando las aplicaciones antes mencionados e implantando directamente en el ámbito local a través de gestiones a varias instituciones .De las visitas realizadas a la micro empresa y también en base a las conversaciones mantenidas con su gerentepropietario, se han podido detectar las siguientes dificultades al momento de elegir un sistema operativo viable para el desarrollo de sus aplicaciones móviles inteligentes, así tenemos: • El desconocimiento de las arquitecturas en las plataformas de los sistemas operativos para el desarrollo de aplicaciones móviles inteligentes. • Limitado conocimiento en lenguajes y entornos de programación restringe el correcto desarrollo de las aplicaciones móviles inteligentes en sus respectivos sistemas operativos. • Desconocer las restricciones que tienen cada una de las plataformas para desarrollar aplicaciones cumpliendo con los objetivos de los usuarios. Estos problemas afectados con la distribución e implantación, están causando un resultado negativo en la microempresa, primordialmente en el ámbito mercantil, ya que está produciendo una incapacidad, debido a la poca recuperación del capital de trabajo así como a la des actualización de aplicaciones móviles. Identificación de la línea de investigación El presente trabajo investigativo se enmarca en la línea denominada: • Desarrollo de software y programación de sistemas 3 Justificación del tema Al conocer con exactitud los resultados derivados por este proyecto admitirá conocer que brindan cada una de las plataformas de desarrollo de aplicaciones móviles en los sistemas operativos ANDROID y IOS. También accederá mantener un alto grado de competencia en el mercado, lo cual es bueno para los desarrolladores y micro empresas que dedican sus esfuerzos a la implementación de aplicaciones y servicios para dispositivos móviles podrán elegir una plataforma sobre la cual puedan ejecutar el desarrollo de un producto software logrando una máxima productividad en la implementación de una aplicación, con la cabida de adaptarlo a las necesidades cambiantes de los clientes consumidores. Los procesos más notables que se realizarán para el análisis comparativo se ejecutaran mediante pruebas en prototipos en las dos plataformas android y IOS. Con esta premisa es que al analizar el proceso comercial de la micro empresa “CCAINFOR” se puede deducir que necesita de una renovación y sobre todo de una forma alterna de llegar al cliente frecuente o para capturar nuevos usuarios en este mercado tan competitivo. Es por ello que se propone que la micro empresa inicie un proceso complementario de comercialización, esta forma de hacer negocio se la denomina comercio electrónico y se lo hará a través de un portal web. Esto significa que la propuesta implica a la micro empresa empiece también a vender sus aplicaciones por Internet, lo cual significa algunos cambios en cuanto al proceso de ventas y también sobre los aspectos promocionales. Todo lo mencionado es muy positivo para la micro empresa y para el estudiante debido a que se está atacando su problema relacionado con la disminución de desarrollo de aplicaciones, esto significa que la propuesta planteada como solución a la problemática es viable y sobre todo de gran utilidad para “CCAINFOR” por lo tanto se justifica plenamente su realización 4 OBJETIVOS: Objetivo General Realizar un estudio comparativo entre plataformas ANDROID e IOS para el desarrollo de aplicaciones móviles inteligentes para el centro de capacitación y asesoramiento informático (CCAINFOR) - Ibarra Objetivos Específicos • Estudiar las plataformas de desarrollo para dispositivos móviles inteligentes. • Analizar la plataforma de desarrollo de aplicaciones para los sistemas operativos ANDROID y IOS. • Determinar los parámetros de comparación para obtener una mayor productividad en el desarrollo de aplicaciones para los sistemas operativos ANDROID y IOS. • Seleccionar la plataforma de desarrollo en base a los parámetros de comparación establecidos y a pruebas realizadas en los prototipos. 5 CAPITULO I FUNDAMENTO TEÓRICO CONCEPTUAL DE LA PROPUESTA 1.1. Aplicaciones web La Autora (Romina, 2012) indica que: “Aplicaciones Web no son más que las herramientas de ofimática procesadores de texto, hojas de cálculo) de la Web 2.0 que se ma nejan simplemente con una conexión a Internet, y en estos casos cabe la opción de utilizar el ordenador sólo como forma de acceso a la aplicación remota”. Según Wikipedia. En la ingeniería software se denomina aplicación Web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor Web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores Web (HTML. JavaScript. Java, etc.] en la que se confía la ejecución al navegador. (Romina, 2012) nos dice “Como consecuencia, los archivos (documentos de trabajo, cartas personales, currículos. etc.) pueden dejarse guardados en un servidor que ofrece la herramienta ofimática junto a los de muchos otros usuarios. Las aplicaciones Web son populares debido a lo práctico del navegador Web como cliente ligero, así como a la facilidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones Web. Es importante mencionar que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar 6 formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo”. 1.2. Estructura De Las Aplicaciones Web (Romina, 2012) Nos señala que aunque existen muchas variaciones posibles, una aplicación Web está normalmente estructurada como una aplicación de trescapas. En su forma más común, el navegador Web ofrece la primera capa y un motor capaz de usar alguna tecnología Web dinámica (ejemplo: PHP. Java Servlets o ASP, ASP. NET. CGI. ColdFusion. embPerl. Python (programming languagel o Ruby on Rails) constituye la capa intermedia. Por último, una base de datos constituye la tercera y última capa. El navegador Web manda peticiones a la capa de media que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario. 1.3. Lenguajes de Programación Según, (Romina, 2012) Existen numerosos lenguajes de programación empleados para el desarrollo de Aplicaciones Web, entre los que destacan: PHP ASP/ASP.NET Java, con sus tecnologías Java Servlets y JavaServer Pages (JSPI Perl Ruby Python HTML XML ASP no es un lenguaje de programación en sí mismo, sino una arquitectura de desarrollo Web en la que se pueden usar por debajo distintos lenguajes (por ejemplo VB.NET o C# para A5P.NET o VBScript/JScript para ASP). 7 1.4. Clasificación de las Aplicaciones Web Las herramientas Web se pueden clasificar de la siguiente manera: • Procesador de Textos en línea. • Hojas de Cálculo en línea. • Presentación de Diapositivas. • Aplicaciones y servicios \mashups]. • Editor de diagramas y otras representaciones gráficas. • Exportación a formato PDF. • Calculadora virtual. • Calendario. 1.5. Procesador de textos en Línea (Romina, 2012) explica que: Se trata de herramientas de procesamiento de texto, cuya plataforma está en línea y por tanto se puede acceder desde cualquier computadora conectada. Esta aplicación permite acceder, editar, reformatear y compartir documentos. Una de sus cualidades es posibilitar la creación de contenidos de manera colectiva y colaborativa. Múltiples usuarios pueden editar texto de manera simultánea, quedando un registro histórico de sus modificaciones. Aunque se pueden importar/exportar documentos desde y para Microsoft Word (DOC), también se cuenta con la posibilidad de trabajar con otros formatos como PDF. ODT. SXW. RTF. HTML, TXT, entre otros. Sitios Web destacados: • http://thinkfree.com • http://docs.google.com • www.ajaxwrite.com 8 Writely, aplicación que acaba de ser comprada por Google, ofrece un procesador de texto en línea. Es gratuito, permite compartirlos documento con otros usuarios e incluso publicar automáticamente en Blogger. 1.6. Aplicaciones móviles o App El Autor (Chiles, 2012) nos dice que:”Toda persona con un dispositivo móvil utiliza Apps. Las aplicaciones son el segmento más rentable y de mayor crecimiento parte de la industria del comercio móvil. Mobile Apps son aplicaciones de software para teléfonos inteligentes y tabletas que se pueden descargar desde el App Store y se instalan en el dispositivo. App y las Compras In App (IAP) están generando suficientes ingresos para algunos desarrolladores y empresas para ganarse la vida y obtener ganancias. Algunas personas pagan para Aplicaciones, otros compran cosas dentro de ellas, y algunas personas lo hacen ambos. Descarga de una aplicación es una compra o adquisición de contenido. La mayoría de las aplicaciones populares son gratuitos. Apoyan a otro modelo de negocio relacionado o utilizar el modelo de negocio freemium para generar ingresos. Aplicaciones se descargan por los compradores móviles. Un comprador móvil es una persona que utiliza un dispositivo móvil a la investigación de bienes y servicios, así como realizar compras. Un comprador móvil es un comprador móvil, pero un comprador móvil no es necesariamente un comprador móvil. Las aplicaciones son aplicaciones de software diseñadas para un dispositivo móvil que utiliza un sistema operativo móvil (OS). Un sistema operativo móvil le permite instalar aplicaciones en los dispositivos móviles, l-os dispositivos móviles son ordenadores de mano que se pueden utilizar sin ajuste de ellos hacia abajo. Los teléfonos celulares, teléfonos inteligentes, tabletas, y asistentes digitales personales (PDA) son los dispositivos móviles. Smartphones y tablets permiten descargar e instalar aplicaciones desde el App Store. Las aplicaciones pueden ser clasificados según el tipo de software, el modelo de negocio, y el tipo de uso. Un tipo de software de aplicaciones es la categoría amplia de la función de los programas. Un modelo de negocio aplicaciones se 9 refiere a las opciones de pago y las razones para su descarga e instalación. El tipo de uso es como se vende y se clasifica en una App Store la aplicación. Tipos de software para aplicaciones incluyen la utilidad, productividad, redes sociales, entretenimiento y juegos. Hay tres modelos de negocio para Aplicaciones, gratis, freemium.y de la prima. Cada tienda App clasifica más aplicaciones en función de su uso y la función de mostrar a los compradores de móviles. Las aplicaciones pueden ser comprados y descargados de tiendas de aplicaciones. El sistema operativo y el tipo de dispositivo de determinar qué se utiliza App Store. Hay diferentes tiendas de aplicaciones para distintos dispositivos y del sistema operativo”. (Chiles, 2012) nos indica que: Por ejemplo, el sistema operativo Android de Google utiliza la Google Play Store; Sin embargo, hay otras tiendas de aplicaciones que son compatibles con los dispositivos Android. Por ejemplo, la tableta Kindle Fire de Amazon utiliza el sistema operativo Android, pero Aplicaciones sólo se pueden comprar en la App Store de Amazon, ya que utiliza una versión especial de Android exclusiva de la marca Kindle de dispositivos móviles. Tipos de software de la aplicación se refieren a la utilidad de la forma en que se utiliza, en lugar de la clasificación de marketing de una tienda de aplicaciones. Utilidad, la productividad, las redes sociales, el entretenimiento y los juegos son el tipo de aplicaciones disponibles para los dispositivos móviles. Segun (Chiles, 2012) indica que: La utilidad Apps soporte utilizando el propio dispositivo móvil. Son administradores de archivos, antivirus y aplicaciones de copia de seguridad. Aplicaciones de servicios públicos están diseñados para ayudar a su dispositivo móvil un rendimiento óptimo. A las redes sociales App le permite conectarse a su cuenta de redes sociales con su dispositivo móvil. Dependiendo de las características de la aplicación puede conectarse con sus amigos, aficionados y seguidores para compartir información, comunicarse y entablar entre sí de la actividad en línea. Aplicaciones de redes 10 sociales son generalmente libres y con el apoyo de los ingresos por publicidad en algunos casos. Un videojuego es un juego electrónico que desempeña el uso de un dispositivo de entrada para manipular los datos en una pantalla de video. Aplicaciones móviles permiten a los usuarios jugar juegos de video con los dispositivos de entrada en ellos y mostrar el juego en la pantalla de vídeo. Aplicaciones de videojuegos son el tipo más popular y rentable de la aplicación. Aplicaciones de entretenimiento son los reproductores de música y vídeo, así como los lectores de libros. Servicios de streaming de música y otras aplicaciones proporcionan a sus clientes. Servicios de vídeo proporcionan aplicaciones para streaming y otra reproducción de vídeo por parte de sus clientes también. Aplicaciones de productividad le permiten producir información. Esto incluye la modificación de él también. Aplicaciones que le permiten crear o modificar documentos, audio, video o imágenes son aplicaciones de productividad. Aplicaciones libres son los más populares. De carga para la descarga e instalación de una aplicación es una barrera importante para la compra. Compradores móviles instalan aplicaciones gratuitas. Ellos no compran Aplicaciones regularidad. Android fue fundada en 2003 por un grupo de desabolladores. Google lo compró en 2005. En 2007 Google formó la Open Handset Alliance para crear estándares para el código de Android. Android 1.0 fue lanzado en 2008. El HTC Dream es el primer dispositivo móvil Android. Android ha crecido hasta convertirse en el sistema operativo más popular en el mundo. Android Jelly Bean 4.1 fue lanzado en julio de 2012. Key Lime pastel de la versión 5.0 se produce después de Jelly Bean. Aplicaciones para dispositivos móviles Android se puede descargar desde la tienda Play Google y varias otras tiendas de aplicaciones. 11 Google establece sus propias normas y revisa aplicaciones antes de ser puestos en el Google Play Store. Esto no garantiza la calidad de una aplicación. Apple utiliza ¡OS para sus dispositivos móviles y la integra en otras cosas como el Apple TV. Comenzó como el iPhone OS en 2007 y ha llegado a ser conocido como Internet o sistema operativo iOS desde entonces. Las aplicaciones pueden ser descargadas e instaladas desde App Store de Apple en exclusiva. Apple iOS fue el líder de la industria durante muchos años. Sin embargo, ya que la pérdida de su líder, Steve Jobs, ha estado plagado de bugs y fallos de seguridad. iOS se acredita a menudo con el auge de la tableta y la popularidad de los teléfonos inteligentes. IPad de Apple 1.7. Mobile Sistemas Operativos El autor (Chiles, 2012) manifiesta que: “Sistemas operativos móviles (OS) de permitirle instalar aplicaciones desde una tienda de aplicaciones en su dispositivo móvil. Los fabricantes de dispositivos por lo general incluyen el acceso a la App Store oficial del OS como un componente del dispositivo. Alternativamente, se puede acceder a través de un navegador web o la aplicación instalada por usted. Hay otras tiendas de aplicaciones, dependiendo del sistema operativo y el dispositivo móvil. Google Android OS y Apple Internet Operating System (IOS) son los más populares sistemas operativos para teléfonos inteligentes y tabletas. Windows Phone y Blackberry son otros sistemas operativos notables para los teléfonos inteligentes también. Windows Phone y Blackberry no se centran en el mercado de las tablets. Los fabricantes de dispositivos móviles, empresas de desarrollo de software de OS, y los desabolladores de terceras partes hacen Apps. Correo electrónico, gestores de contactos y calendarios son aplicaciones preinstaladas comunes de los fabricantes. Google, Apple, Microsoft y Blackberry hacen pre-instalados y aplicaciones descargares también. 12 Android es el sistema operativo más popular. Es propiedad de Google. El código se basa en el código de Linux de código abierto. Apple, Microsoft y Blackberry OS de se basan en código propietario. Apple es un sistema completamente cerrado”. F.l sistema operativo Android es el más popular en el mundo. Alimenta los dispositivos más móviles. Cada versión tiene un número y un nombre. Jelly Bean fue la primera versión optimizada para tablets. Dispositivos Android van desde los modelos de nivel de entrada de gama baja para los productos premium de alta gama. Los modelos de gama baja generalmente tienen acceso a la GetJar App Store en lugar de la Google Play Store. El Getlar App Store tiene un montón de aplicaciones gratuitas. Android fue fundada en 2003 por un grupo de desabolladores. Google lo compró en 2005. En 2007 Google formó la Open Handset Alliance para crear estándares para el código de Android. Android 1.0 fue lanzado en 2008. El HTC Dream es el primer dispositivo móvil Android. Android ha crecido hasta convertirse en el sistema operativo más popular en el mundo. Android Jelly Bean 4.1 fue lanzado en julio de 2012. Key Lime pastel de la versión 5.0 se produce después de Jelly Bean. Aplicaciones para dispositivos móviles Android se puede descargar desde la tienda Play Google y varias otras tiendas de aplicaciones. Para (Chiles, 2012) Google establece sus propias normas y revisa aplicaciones antes de ser puestos en el Google Play Store. Esto no garantiza la calidad de una aplicación. Apple utiliza ¡OS para sus dispositivos móviles y la integra en otras cosas como el Apple TV. Comenzó como el iPhone OS en 2007 y ha llegado a ser conocido como Internet o sistema operativo iOS desde entonces. Las aplicaciones pueden ser descargadas e instaladas desde App Store de Apple en exclusiva. Apple iOS fue el líder de la industria durante muchos años. Sin embargo, ya que la pérdida de su líder, Steve Jobs, ha estado plagado de bugs y fallos de 13 seguridad. iOS se acredita a menudo con el auge de la tableta y la popularidad de los teléfonos inteligentes. IPad de Apple 1.8. Android SDK Según (Sanderson 2, 2012), el kit de desarrollo de software de android (software development kit o SDK) incluye un conjunto de herramientas de desarrollo,tales como un debugger, librerías, un emulador, documentación, código de ejemplo y tutoriales. Está soportado en Sistemas Operativos Windows, Linux y Mac. El entorno de desarrollo (integrated development environment o IDE) oficialmente soportado es Eclipse conjuntamente con el plugin ADT proporcionado por Google. Desde noviembre del 2007 a septiembre del 2008 han ido surgiendo nuevas actualizaciones del SDK siendo la última la 18, la cual soluciona algunos errores de las anteriores y añade nuevas funcionalidades y cambios en las APIs. En cuanto a las herramientas del SDK se tiene: • Android Eclipse Views.- El plugin de Android para Eclipse añade un número de vistas para poder debugar la aplicación. Una de las más importantes es el LogCat, un visor de logs del dispositivo que puede ser filtrado en 5 categorias: V — Verbose (Prioridad más baja) D — Debug I — Info W — Warning E — Error F — Fatal S — Silent (Alta prioridad) • Emulator Console.- Algunas funciones en tiempo real del emulador, como el envió de SMS, pueden ser accedidas usando la consola del emulador mediante telnet a localhost y puerto, normalmente, 5554. 14 • Android Debug Bridge (ADB).- Proporciona acceso a funciones del emulador, incluido el redireccionamiento de puertos. • Dalvik Debug Monitor Service (ddms).- La "Dalvik Debug Monitor Service" es un herramienta integrada con la "Dalvik Virtual Machine", y nos permite administrar los procesos que corren en una instancia de emulador/dispositivo y nos asiste en la depuración de ellos. Podemos usar esta herramienta para terminar la ejecución de un proceso, seleccionar un determinado proceso para depurar, generar reportes a partir de información de bitácoras, examinar el "heap" y la información de "thread, tomar fotografías de la pantalla del emulador/dispositivo y mucho más. • Android Debug Bridge (adb).- La herramienta "adb" nos permite instalar nuestras aplicaciones (archivos ".apk") en una instancia de emulador/dispositivo y accesar una instancia de emulador/dispositivo usando comandos de línea. También podemos utilizarlo para enlazar un depurador estándar al código de una aplicación que esté corriendo en una instancia de emulador/dispositivo. • Android Asset Packaging Tool (aapt).- La herramienta "aapt" te permite crear archivos ".apk", los cuales contienen las imágenes binarias de tu código y recursos de tus aplicaciones. • Android Interface Description Language (aidl).- Te permite generar código para una interface de interproceso, tal como la que un servicio podría utilizar. • sqlite3.- Esta herramienta ha sido incluida para comodidad de los desarrolladores. Nos provee acceso a los archivos de datos "SQLite" creados y usados por las aplicaciones Android. 15 • Mksdcard.- Esta herramienta nos ayuda a crear una imagen de disco que podemos usar con el emulador, para simular la presencia de una tarjeta de almacenamiento externa (tal como una tarjeta "SD"). • Dx.- La herramienta "dx" convierte los archivos de "bytecode"43 estándar (".class") en archivos "Android bytecode" (".dex"). 1.9. Sistemas Operativos Para (Sanderson 2, 2012), El SDK se encuentra disponible para los siguientes sistemas operativos: • Linux (Todas las Distribuciones) • Windows • Mac OS X 1.10. Lenguajes de Programación SDK El autor (Sanderson 2, 2012), manifiesta que: Para trabajar con Android el lenguaje de programación más óptimo es Java, ya que la mayoría de programas para Android están escritos en este lenguaje y utilizan las API de la biblioteca Java 5 Standard Edition (SE). Android también utiliza un compilador estándar Java para compilar el código fuente, lo que lo hace que Java sea un lenguaje completamente integrado en Android. Opcionalmente se puede desarrollar en C o C++ utilizando un NDK (Kit de Desarrollo Nativo) para incrementar velocidad en el funcionamiento de las aplicaciones ejemplo en el desarrollo de juegos. Eclipse.- Es una herramienta para el programador diseñada principalmente para el desarrollo de aplicaciones Java, facilitando al máximo la gestión de proyectos colaborativos mediante el control de versiones', es posible también con subversión, exportar e importar proyectos. 16 Cocoa Touch.- es un framework que permite el desarrollo de aplicaciones nativas para Mac OS X. En el caso de iOS el framework se llama "Cocoa Touch" que incluye reconocimiento gestual, animaciones y una librería distinta para la interfaz de usuario; el cual se usa en dispositivos Apple como el iPhone, el iPod Touch y el iPad. Tambien (Sanderson 2, 2012) señala que: Principalmente, el lenguaje en el que se programa con esta biblioteca es Objective-C, lenguaje orientado a objetos, aunque también es posible programar con otros lenguajes de programación. El entorno de desarrollo que Apple proporciona es Xcode. Este entorno de desarrollo es gratuito, y proporciona muchas ayudas de productividad. Aun así, algunos programadores para tener un mayor control prefieren utilizar directamente las GNU Compiler Collection. Por el contrario Xcode sólo está disponible para Mac OS X. Sin embargo, se puede acceder al ambiente de programación usando otras herramientas, tales como Clozure CL, LipsWorks, Object Pascal, Python, Perl, Ruby y AppleScript con la ayuda programas de interconexión como PasCocoa, PyObjC, CamelBones, RubyCocoa y D/Objective-C Bridge . Symfony.- es un completo framework diseñado para optimizar el desarrollo de las aplicaciones web basado en el patrón Modelo Vista Controlador. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web. Symfony está desarrollado completamente en PHP 5.3. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de 17 primer nivel. Symfony es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows. Más rápido y menos codicioso: En el mundo de TI, no es raro que la gente se refiere al rendimiento de una aplicación... una vez que lleguen al final del proyecto! Es decir, una vez que todo ha sido diseñado tanto en lo funcional y los niveles de tecnología. Y a menos que usted tome todo menos una vez más, la optimización del rendimiento no es precisamente una tarea fácil. Por otro lado, Symfony2 fue concebido desde el principio para ser rápido y para favorecer el rendimiento. A modo de comparación, Symfony2 es aproximadamente 3 veces más rápido que la versión 1,4 o de 1,10 Zend Framework, teniendo hasta 2 veces menos memoria. Flexibilidad ilimitada: Sean cuales sean sus necesidades, Symfony2 será adaptable. Su dependencia del inyector y el despachador de eventos que sea totalmente configurable, con cada uno de los ladrillos son totalmente independientes. A 3-en-1 marco, de todo tipo • Línea indentada Stack completo (versión completa): se quiere desarrollar una aplicación compleja y que necesita muchas funcionalidades. • Ladrillo por ladrillo: a construir su estructura de acuerdo con las funciones que usted necesita • Microframework: como un independiente, Symfony2 también se puede utilizar para desarrollar una funcionalidad específica en uno de sus proyectos. Sin tener que reconstruir todo y sin necesidad de instalar todo el marco, pero sólo el ladrillo concreto que usted necesita. El autor (Sanderson 2, 2012) indica que: La permanencia es también algo que se relacione con apoyo a largo plazo. Hoy en día, este apoyo es proporcionado por Sensio naturalmente. Pero también hay todo un ecosistema que ha crecido 18 alrededor de Symfony desde su lanzamiento: la comunidad (listas de correo, IRC, etc) y las empresas de servicios de muchos otros que han invertido en el marco. Por último, también es con miras a un desarrollo sostenible que Symfony se distribuye bajo licencia Open Source MIT, que no impone restricciones y permite el desarrollo de código abierto, así como aplicaciones propietarias. Ampliable: Desde el más pequeño ladrillo a la base completa en sí, todo lo que se presenta como un "paquete" (o plug-in en el lenguaje Symfony) en Symfony2. Cada paquete está destinado para añadir funcionalidad al marco, por supuesto, y cada paquete también puede ser reutilizada en otro proyecto o compartida con el resto de la comunidad. En cualquier caso, el sistema de haces permite que todo cambio dentro de Symfony, incluyendo el propio núcleo. Uso de contratos de la interfaz del sistema entre los ladrillos, el comportamiento del marco así puede ser cambiado a voluntad, sin necesidad de reconfiguración completa. Estable y sostenible: Desarrollado por los Laboratorios Sensio, las principales versiones de Symfony son soportados por 3 años por la empresa. E incluso de por vida en cuanto a las cuestiones relacionadas con la seguridad se refiere. Para mayor estabilidad, las versiones menores del contrato Symfony2 y la interfaz también están garantizadas y la compatibilidad entre todas las versiones secundarias se llevará a cabo en el API definido por las interfaces públicas. La alegría de desarrollo: En un entorno altamente funcional, Symfony2 también garantiza un cierto nivel de comodidad para los desarrolladores. Al cuidar de una serie de tareas desagradables (desarrollo de funcionalidades de menor importancia, por ejemplo), Symfony2 permite a los desarrolladores centrarse en los aspectos más destacados reales de una aplicación y para ambos completamente validar su papel y mejorar su productividad. Entre las herramientas de Symfony diseñados para que el vida de un desarrollador mucho más fácil, está la barra de herramientas de depuración web legendario, así como soporte nativo para entornos de desarrollo, páginas de error detallados o incluso de seguridad nativa. 19 Facilidad de uso: Completamente flexible para satisfacer las necesidades de los profesionales y usuarios avanzados por igual, Symfony2 es también muy accesible. Abundante documentación, la comunidad y el apoyo profesional, y "incrustados" mejores prácticas dentro del marco (las mejores prácticas que se aplican de forma nativa sin necesidad de ser conscientes de ellos o entenderlos) permiten que un principiante se sienta muy rápidamente a gusto con Symfony. 1.11. Netbeans El autor (Sanderson 2, 2012) indica que: es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso. NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos. La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software. El NetBeans IDE es un IDE de código abierto escrito completamente en Java usando la plataforma NetBeans. El NetBeans IDE soporta el desarrollo de todos los tipos de aplicación Java (J2SE, web, EJB y aplicaciones móviles). Entre sus 20 características se encuentra un sistema de proyectos basado en Ant, control de versiones y refactoring. NetBeans IDE 6.5, la cual fue publicada el 19 de noviembre de 2008, extiende las características existentes del Java EE (incluyendo Soporte a Persistencia, EJB 3 y JAX-WS). Adicionalmente, el NetBeans Enterprise Pack soporta el desarrollo de Aplicaciones empresariales con Java EE 5, incluyendo herramientas de desarrollo visuales de SOA, herramientas de esquemas XML, orientación a web servicies (for BPEL), y modelado UML. El NetBeans C/C++ Pack soporta proyectos de C/C++, mientras el PHP Pack, soporta PHP 5. Modularidad. Todas las funciones del IDE son provistas por módulos. Cada módulo provee una función bien definida, tales como el soporte de Java, edición, o soporte para el sistema de control de versiones. NetBeans contiene todos los módulos necesarios para el desarrollo de aplicaciones Java en una sola descarga, permitiéndole al usuario comenzar a trabajar inmediatamente. Sun Studio, Sun Java Studio Enterprise, y Sun Java Studio Creator de Sun Microsystems han sido todos basados en el IDE NetBeans. Desde julio de 2006, NetBeans IDE es licenciado bajo la Common Development and Distribution License (CDDL), una licencia basada en la Mozilla Public License (MPL). En octubre de 2007, Sun anunció que NetBeans desde entonces se ofrecerá bajo licenciamiento dual de Licencia CDDL y la GPL versión 2. 1.12. Apache. Según (Kabir, 2010) Apache, es el número uno de los servidores Web de todo el mundo. Más del 50% de los servidores de la Red utilizan Apache, de acuerdo con una encuesta desarrollada por Netcraft (www.netcraft.co.uk/Survey/). Si está barajando la idea de montar un servidor Apache, sepa que está en el lugar indicado. Este capítulo le mostrará cómo hacerlo. 21 En los primeros días de la Red, NCSA (National Center for Supcr Computing Applications) creó un servidor Web que se convirtió en el número uno de los servidores Web a principios de 1995. De todas formas, por esa misma época el proyecto de NCSA cayó en el olvido. Los usuarios de dicho servidor comenzaron a intercambiar los parches que tenían y en breve se die¬ron cuenta de que había que crear un foro que se encargase de la administra¬ción de dichos parches. Había nacido Apache Group. Utilizaron el código del servidor Web de NCSA y crearon un nuevo servidor al que llamaron Apache. Procedente del código fuente de NCSA y de una gran colección de parches, el servidor Apache se ha convertido en la comidilla de la comunidad de Internet. Apenas le ha llevado tres años convertirse en el servidor por excelencia del mercado. Para el Autor (Kabir, 2010), Cualquiera que sepa cómo participar en el desarrollo del servidor o de sus módulos, puede hacerlo, aunque es verdad que el grupo tiene la última palabra a la hora de decidir qué se incluye en la distribución estándar conocida como Servidor Web Apache. De esta forma se ha conseguido que sean miles las personas que trabajan en el desarrollo de nuevas propiedades, corrección de errores, puertos para las nuevas plataformas, etc. Cuando se envía el nuevo código a Apache Group, sus miembros investigan todos los detalles, lo someten a todo tipo de test y comprueban su calidad. Si están satisfechos con los resultados, incluyen el código en la versión que se distribuye. Ahora que ya sabemos algo más sobre la historia de Apache, vamos a conocer sus propiedades. 1.13. Propiedades de Apache También (Kabir, 2010) señala que: Una de las características más importantes de Apache es que se utiliza en casi todas las plataformas. Al principio únicamente funcionaba con los servi-dores Web Unix, pero la situación cambió. En la actualidad Apache no sólo funciona con todas las versiones de Unix sino que también lo hace con Win-dows 95/NT, Amiga y OS/2. 22 El autor (Kabir, 2010) manifiesta sobre las características: Apache tiene otras muchas características, como la indexación de directorios, uso de sobrenombres con las carpetas, negociación de contenidos, informes configurables sobre los errores HTTP, Ejecuciones SctUID o Programas CGI, administración de recursos para los procesos emparentados, mapas de imagen para los servidores, reescritura de URL, corrección de URL y manuales online. Entre sus principales propiedades tenemos las siguientes: • Admite la última versión del protocolo HTTP/1.1 (Apache es uno de los primeros servidores Web que trabajó con este protocolo). Es completamente compatible con el nuevo estándar HTTP/1.1 y con su versión anterior HTTP/1.0. Está preparado para hacerse cargo de todas las nuevas propiedades que tenga que ofrecer este protocolo. Por ejemplo, antes de HTTP/1.1 un explorador Web tenía que esperar la respuesta del servidor Web antes de poder enviar otra petición. Con esta nueva versión esto ya no hace falta. Un explorador Web puede enviar peticiones en paralelo, con lo que se ahorra ancho de banda al no tener que incluir una cabecera en todas y cada una de las solicitudes. Con este sistema las respuestas a las peticiones del usuario aparecerán antes en la pantalla de su explorador. • Simplicidad, aún con las potentes configuraciones basadas en ficheros, ni servidor Apache no dispone de una interfaz gráfica. Tiene tres archivos de configuración (en texto plano) que se pueden utilizar para ajustar los parámetros del servidor. Todo lo que necesitará será un editor de textos. Si lo desea, puede simplificar aún más la configuración uniendo los tres archivos en uno sólo. • Puede trabajar con CGI. El servidor Apache utiliza el módulo mod_cgi. íistá compilado con la versión 1.1 de CGI y entre las características que ofrece se encuentra la personalización de las variables de entorno o la búsqueda de errores, propiedad que tanto cuesta a otros servidores. • Admite servidores virtuales. Apache es también uno de los primeros servidores Web que puede trabajar con direcciones IP y con nombres virtuales. 23 • Admite la autenticación HTTP. Apache también puede trabajar con la autenticación básica de la Red. Además está preparado para asimilar los mensajes basados en la autenticación, algo que cada vez es más popular y que los servidores van a tener que implementar. Para sus autenticaciones, Apache utiliza archivos de contraseñas. DBM, SQL o llamadas a programas externos especializados en la materia. • Integra Perl. Perl se ha convertido en el lenguaje de programación por excelencia de la programación de scripts en CGI. Y posiblemente uno de los factores que ha influido para que ocurriese esto ha sido Apache. Por medio del módulo mod Perl podrá cargar scripts CGI programados en Perl en la memoria del ordenador y utilizarlos tantas veces como desee. Este proceso elimina los problemas de inicio tan asociados con los lenguajes de interpretación (entre los que se encuentra Perl). • Cuenta con un servidor Proxy. Puede convertir su servidor Apache en uno Proxy. Pero ha de tener en cuenta que el módulo que utiliza para ello no admite la función inversa ni el protocolo HTTP/1.1. Ya se está trabajando en la actualización de este módulo. • Puede trabajar con SSI. Apache dispone de una serie de anexos para el servidor que mejoran la flexibilidad del desarrollado de sitios Web. Utilizando los comandos eXtendcd Server Side Include en su servidor Apache, podrá hacer lo mismo que con SSI y más. • Admite SSL. Debido a las leyes y restricciones del Copyright sobre la exportación e importación de productos de los EE.UU., Apache no es compatible con SSL. Pero hay una gran cantidad de parches para Apa-che (Apache-SSL), además de versiones comerciales del producto, que permite que pueda trabajar con este sistema de seguridad. • Capacidad para registrar las acciones de los usuarios. Por medio de las cookies HTTP un módulo de Apache, llamado mod_usertrack puede registrar los movimientos de los usuarios según se mueven por el sitio Web Apache. • Trabaja con FastCGI. Es verdad que no todo el mundo escribe COI en Perl. Entonces, ¿cómo pueden hacer que sus aplicaciones sean más rápidas? Con una solución de Apache: el módulo mod t'cgi, gracias al cual se puede 24 implementar un entorno FaslCGI dentro de Apache y ha-cer que sus aplicaciones vayan mucho más rápido. • Admite Java Servlets. Java Scrvlets es un módulo experimental en esta-do alpha (modjserv) para Apache. Cuando salga oficialmente, logrará que Apache ejecute las aplicaciones en Java propias del servidor. De esta forma podrá trabajar con multitarea. 1.14. Mysql El Autor (Thibaud, 2006 ) señala que: MySQL es un sistema de administración de bases de datos relaciónales (SGBDR) rápido, robusto y fácil de usar. Se adapta bien a la administración de datos en un entorno de red, especialmente en arquitecturas cliente/servidor. Se proporciona con muchas herramientas y es compatible con muchos lenguajes de programación. Es el más célebre SGBDR del mundo Open Source, en particular gracias a su compatibilidad con el servidor de páginas Web Apache y el lenguaje de páginas Web dinámicas PHP. En ciertos casos, es práctico o necesario adquirir una licencia comercial. Los casos prácticos reflejan la necesidad de un soporte por parte del editor o la voluntad de apoyar el trabajo de la empresa MySQL AB en el desarrollo y el soporte de MySQL. Los casos para los que es necesaria una licencia comercial se resumen así: • Si el programa resultado del uso de MySQL no respeta a su vez el sistema de licencia GPL y está compilado con código MySQL. • Si el programa creado no se distribuye bajo licencia GPL y sólo funciona con el SGBDR MySQL. • Si MySQL se redistribuye sin el código fuente a pesar de su licencia GPL. La compra de una licencia permite instalar una o más instancias de MySQL en un mismo equipo. El número de microprocesadores no influye en el precio de las licencias y las conexiones clientes al servidor tampoco están limitadas. Si se utiliza MySQL con un servidor Web como Apache o Internet Information Server (IIS), no se requiere ninguna licencia aunque el servidor Web sea un 25 sistema comercial. Esta cláusula es vigente aunque el sitio Web albergado sea un sitio comercial. 1.15. Características Técnicas de MySql Para el autor (Thibaud, 2006), La lista siguiente presenta las principales características del servidor MySQL: • Está escrito en C/C++ y probado con numerosos compiladores. • Funciona en muchos sistemas operativos. • Soporta muchas API como C, C++, PHP, Perl, Eiffel, Python, Java, Tel. • Las utilidades clientes y de administración utilizan los sockets TCP/IP, los sockets Unix o los canales con nombre NT (Named Pipes). • Dispone de un driver ODBC (Open DataBase Connectivity) para Windows lo que le aporta compatibilidad con la mayoría de lenguajes disponibles en este sistema operativo. • Dispone de un driver ADO vía OLEDB en Windows para un mejor rendimiento que ODBC. • Es totalmente multithread, lo que aumenta enormemente el rendimiento del servidor. MySQL está previsto para funcionar en entornos multiprocesador. • Dispone de un sistema de administración de la memoria extremadamente potente. La cantidad de memoria tiene una incidencia directa sobre el rendimiento de MySQL. Si un servidor presenta fallos de rendimiento, suele bastar con añadir memoria RAM para mejorar sensiblemente su rendimiento. • Se puede interrogar con el lenguaje SQL, lo que garantiza una mejor compatibilidad con otros SGBDR. Todos los scripts SQL escritos para otro SGBDR que respeten el SQL estándar pueden utilizarse con MySQL. • Soporta muchos tipos de columnas de tipos numérico, fecha y hora, cadena de texto. MySQL soporta también columnas de gran tamaño como las columnas de tipos texto y binario. • Dispone de un sistema potente de administración de usuarios y sus privilegios. 26 • Es capaz de administrar bases de datos de gran tamaño. Ciertas empresas lo utilizan actualmente con bases de datos de unas 60 000 tablas y alrededor de 5 000 000 000 de registros. • Una tabla puede contener hasta 32 índices y cada índice puede estar constituido por un máximo de 16 columnas. • Es posible instalar varias instancias de servidor MySQL. Cada instancia es completamente independiente y gestiona sus propias bases de datos. 1.16. Php Según el Autor (Cobo, 2005) señala que: PHP es un lenguaje interpretado del lado del servidor que se caracteriza por su potencia, versatilidad, robustez y modularidad. Los programas escritos en PHP son embebidos directamente en el código HTML y ejecutados por el servidor web a través de un intérprete antes de transferir al cliente que lo ha solicitado un resultado en forma de código HTML puro. Al ser un lenguaje que sigue la corriente open source, tanto el intérprete como su código fuente son totalmente accesibles de forma gratuita en la red. Por su flexibilidad, PHP resulta un lenguaje muy sencillo de aprender; especialmente para programadores familiarizados con lenguajes como C, Perl o Java, debido a las similitudes de sintaxis entre ellos. Por supuesto, es un lenguaje multiplataforma; los programas funcionan igual sobre diferentes plataformas, trabajando sobre la mayoría de servidores web y estando preparado para interactuar con más de 20 tipos de bases de datos. No obstante, al ser un lenguaje inicialmente concebido para entornos Unix, es sobre este sistema operativo sobre el que se pueden aprovechar mejor sus prestaciones. En comparación con otro tipo de tecnologías similares, PHP resulta más rápido, independiente de la plataforma y más sencillo de aprender y utilizar. Todas estas características han hecho de este lenguaje uno de los que mayor crecimiento ha experimentado en los últimos años, desde su aparición en 1994. Es de destacar especialmente la facilidad para la conectividad con sistemas gestores de bases de datos a través de un gran número de funciones especializadas. En este libro en concreto se analizará la conectividad con el 27 sistema gestor MySQL. Esa facilidad de conexión ha hecho que PHP sea actualmente uno de los lenguajes más utilizados para la generación de páginas dinámicas, no solo personales sino también portales de empresas y organizaciones. Inicialmente diseñado para realizar poco más que contadores y libros de visita de páginas, en la actualidad PHP permite realizar una multitud de tareas útiles para el desarrollo web. Por ejemplo, dispone, entre otras, de: Inicialmente diseñado para realizar poco más que contadores y libros de visita de páginas, en la actualidad PHP permite realizar una multitud de tareas útiles para el desarrollo web. Por ejemplo, dispone, entre otras, de: • Funciones de correo electrónico que pueden ser utilizadas para programar completos sistemas de correo electrónico vía web. • Funciones de administración y gestión de bases de datos específicas para la mayoría de gestores comerciales y funciones para conexiones ODBC con bases de datos en sistemas Microsoft. • Funciones de gestión de directorios y ficheros, incluso para la transferencia mediante FTP. • Funciones de tratamiento de imágenes y librerías de funciones gráficas • Funciones de generación y lectura de cookies. • Funciones para la generación de documentos PDF. A la innumerable cantidad de funciones predefinidas en PHP deben añadirse, por supuesto todas aquellas funciones propias de cada programador, y que pueden ser reutilizadas e intercambiadas a través de foros específicos con otros programadores. 1.17. Java El autor (Saney, 2001) señala que: “Java apareció en el mercado como el lenguaje de referencia de los años siguientes. En efecto, Java es el primer lenguaje de programación realmente universal, permitiendo desarrollar, de forma rápida, todos los tipos de aplicaciones que antes necesitaban otros lenguajes de programación específicos. Java es empleado, tanto para desarrollar aplicaciones 28 distribuidas para la gestión de datos como para programar applets que hagan aparecer texto en una página Web. Por otra parte, Java permite, de la misma manera, realizar prototipos funcionales de forma muy rápida, eliminando la necesidad de recurrir a otras utilidades específicas para esta fase del desarrollo. Otra ventaja de Java es la asombrosa claridad de su sintaxis. En la mayoría de los programas Java, las líneas de código son más comprensibles que las líneas de los comentarios. Java reemplaza, de una forma muy ventajosa, lenguajes de programación tan distintos como BASIC o C++. Del primero, Java tiene la simplicidad, y del segundo la eficacia. Por otra parte, Java ofrece una seguridad a toda prueba. A más a más, Java es, muy probablemente, el lenguaje de programación que posee menos idiosincrasias, cosa que hace muy fácil su aprendizaje. La coherencia de Java y su compactibilidad son ejemplares. Así, un programa que necesita 400 líneas de código en C++ se puede escribir, muy probablemente en Java, en una cincuentena de líneas. Por estas razones, es deseable que Java pase a ser el primer lenguaje de programación no sólo por el número de usuarios sino también por ser el primer lenguaje aprendido por los nuevos programadores”. 29 CAPITULO II METODOLOGÍA DE LA INVESTIGACIÓN CCAINFOR (Centro de Capacitación y Asesoramiento Informático) es una micro empresa que nace de las habilidades en el desarrollo de aplicaciones web, aplicaciones móviles y todo en cuanto lo que se refiere en el área de informática, facilitando y dando asesorías para una mejor toma de decisiones a sus clientes y ayudándolos en la capacitación al público en general, con una visión comercial de su gerente el Sr. Dany Javier Sanchez Carrera , su origen data del 2008 en la ciudad de Ibarra, provincia de Imbabura, donde comienza con la asesoría y capacitación informática, desarrollo de páginas web, aplicaciones móviles, sistemas informáticos y todo lo referente a esta rama. Enfocándose y teniendo como especialidad la creación de páginas y aplicaciones web, CCAINFOR decide enfocarse a la creación de aplicaciones móviles inteligentes, y así dar a sus clientes una mejor opción de negocios. Es así que “CCAINFOR” empieza con el desarrollo de Apps (Aplicaciones Móviles Inteligentes) utilizando varias plataformas para el desarrollo con los sistemas operativos ANDOID e IOS. Misión Somos una microempresa dedicada a la comercialización y distribución de productos informáticos, desarrollo de aplicaciones informáticas de gestión, aplicaciones web, aplicaciones móviles inteligentes, soluciones en Internet, servicio técnico, mantenimiento de equipos, sistemas informáticos, asesoría informática y capacitaciones. Ofreciendo una solución global a empresas, profesionales, administraciones y usuarios particulares, a todo el territorio nacional. Visión Planeamos ser un referente en el mercado nacional en la sección de las TIC, y para ello conseguiremos todos los refuerzos que ofrecemos vigentemente extendiendo los que vayan naciendo debido a la insuficiencia de cambio 30 estimulado por las evoluciones tecnológicas. Esto es así ya que somos una empresa en persistente innovación ya que el sector de la tecnología así lo requiere. Bibliográfica: Radica en la recopilación de información evidente en libros revistas e internet, se la emplea para la obtención del denominado marco teórico que es el que fundamenta científicamente la propuesta de solución. En este caso concreto la investigación bibliográfica se orienta a las herramientas de desarrollo de la aplicación web, como por ejemplo: Android SDK, XCode, Eclipse, Android Studio, Netbeans, Apache, MySQL, PHP, Google Play. De campo: Esta indagación se realiza en el mismo lugar en donde se muestran los indicios de la problemática, si bien es cierto en este caso en particular se efectuara en dicha microempresa. Este proceso investigativo se lo desarrollo llevando a cabo unas encuestas y entrevistas. Las técnicas que se destinaran en el proceso de indagación son; la encuesta está delegada de llevar a cabo a los clientes de la microempresa (CCAINFOR) así como el personal de desarrollo de la misma; tomando en cuenta que del mismo modo se efectuará una entrevista al gerente-propietario para conseguir sus criterios relacionados a la problemática y a la solución de la misma. Los instrumentos investigativos que localizamos asociados a las técnicas son; los cuestionarios que se manipularán para las encuestas orientadas a los clientes y al personal de desarrollo, también la guía de entrevistas para el gerente de la empresa. Población y Muestra La población que se encuentra implicada en la problemática que esta descrita al inicio del presente trabajo con su respectiva indagación se encuentra detallada de la siguiente forma: 31 Función Número Gerente (CCAINFOR) 1 Clientes 30 Desarrolladores 3 TOTAL 34 Tabla 1, Marco Muestral. Fuente: Población y muestra Elaborado por: Marlon Tixicuro. Se define como la muestra, a un porcentaje de la población, pero en este caso como la población es muy pequeña la misma se convierte en la muestra. La investigación de campo sé llevó a cabo utilizando los siguientes métodos: Histórico – Lógico: Los antecedentes de desarrollo de aplicaciones en la microempresa es muy trascendental para la realización de el diagnostico de la problemática, es por esta razón por la cual se empleó este método investigativo que nos transportará a una deducción lógica de la problemática. Analítico – Sintético: Este par dialectico fue muy útil, el momento de elaborar el fundamento científico que sustenta la solución del problema. Inductivo – Deductivo: En el desarrollo del trabajo investigativo se induce una solución particular para deducir una solución general a la problemática. 32 Resultados de la encuesta realizada a los desarrolladores de CCAINFOR Pregunta Nº1. ¿Usted utiliza aplicaciones móviles? Respuesta Para Frecuencia procesos de negocios (e- Porcentaje % 8% bussiness) Comercio electrónico 17% Educación o aprendizaje en línea 17% Juegos en una aplicación o en línea 25% Aplicaciones en general para una 0% plataforma específica Desarrollo web 25% Multimedia 8% TOTAL 100% Tabla 2, Pregunta 1. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Para Comercio procesos de electrónico negocios (e17% bussiness) 8% Multimedia 8% Desarrollo web 25% Aplicaciones en general para una plataforma específica… Juegos en una Educación o aplicación oaprendizaje en línea en línea 17% 25% Grafico 1, Pregunta 1. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Grafico N° 1 Aplicaciones Móviles. Fuente: Investigación propia Se deduce fácilmente que el mayor desarrollo de aplicaciones se inclina por los juegos en aplicación o también en línea, esto significa que el mayor potencial se encuentra reflejado claramente en los resultados. 33 Pregunta Nº2. En el desarrollo de aplicaciones móviles, ¿usted siempre sigue las tendencias de vanguardia? Respuesta Frecuencia Porcentaje % Totalmente de acuerdo 2 67% Medianamente de acuerdo 1 33% Indiferente 0 0% En desacuerdo 0 0% Totalmente en desacuerdo 0 0% TOTAL 3 100% Tabla 3, Pregunta 2. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Medianam ente de acuerdo 33% En desacuerd o 0% Indiferente 0% Totalment eTotalment en desacuerd e de oacuerdo 0% 67% Grafico 2, Pregunta 2. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Se manifiesta que en el desarrollo de aplicaciones móviles es un factor primordial la vanguardia que van de la mano con las nuevas tecnologías esto, significa que sirve para la ejecución de aplicaciones más novedosas y por ende más comerciales. 34 Pregunta Nº3. Al desarrollar aplicaciones móviles, ¿considera usted la fiabilidad, facilidad de uso, confiabilidad, desempeño y el soporte como indicadores de calidad? Respuesta Frecuencia Porcentaje % Totalmente de acuerdo 1 67% Medianamente de acuerdo 2 33% Indiferente 0 0% En desacuerdo 0 0% Totalmente en desacuerdo 0 0% TOTAL 3 100% Tabla 4, Pregunta 3. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Medianame nte de acuerdo 33% Indiferente 0% Totalmente En en desacuerdo desacuerdo 0% 0% Totalmente de acuerdo 67% Grafico 3, Pregunta 3. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Manifiesta claramente que los desarrolladores se encuentran totalmente de acuerdo en que el diseño de aplicaciones sean fáciles de usar tengan mucha confiabilidad y tengan mucha calidad, Esto significa que el desarrollo está de acuerdo a normas calidad, para un fácil uso del usuario. 35 Pregunta Nº4. ¿El desarrollo de la aplicación siempre esta apegado al costo proyectado y se finaliza cuando ya no hay presupuesto? Respuesta Frecuencia Porcentaje % Totalmente de acuerdo 3 100% Medianamente de acuerdo 0 0% Indiferente 0 0% En desacuerdo 0 0% Totalmente en desacuerdo 0 0% TOTAL 3 100% Tabla 5, Pregunta 4. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Indiferente En 0% desacuerdo 0% Median amente de acuerd o 0% Totalmente de acuerdo 100% Totalmente en desacuerdo 0% Grafico 4, Pregunta 4. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Es evidente el resultado de un total acuerdo que en el desarrollo de las aplicaciones móviles siempre se está pegado a un costo proyectado, esto significa que se debe trabajar y tomar en cuenta el presupuesto manejado por los desarrolladores. 36 Pregunta Nº5. ¿En qué plataforma usted ha desarrollado más cantidad de aplicaciones móviles? Respuesta Frecuencia Porcentaje % Android 2 67% IOS 1 33% Otros 0 0% TOTAL 3 100% Tabla 6, Pregunta 5. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Otros 0% IOS 33% Android 67% Grafico 5, Pregunta 5. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Se concluye claramente que la plataforma donde se ha desarrollado la mayor cantidad de aplicaciones móviles es en Android, esto significa que las aplicaciones IOS 37 Pregunta Nº6. ¿Qué tipo de servicios son los más utilizados en las aplicaciones que usted desarrolla? Respuesta Frecuencia Porcentaje % Redes sociales 28% Descarga de archivos 27% Correo electrónico 0% Web y bases de datos 18% Multimedia (video, audio, animación) 27% Otros 0% servicios; impresión, localización y búsqueda TOTAL 100% Tabla 7, Pregunta 6. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Multimedia (video, audio, a nimación) 27% Redes sociales 28% Web y bases de datos 18% Otros servicios; impresión, loca lización y búsqueda 0% Descarga de archivos 27% Correo electrónico 0% Grafico 6, Pregunta 6. Fuente: La Encuesta desarrolladores. Elaborado por: Marlon Tixicuro. Se induce que los servicios que más se utiliza son las redes sociales seguidas de las aplicaciones de descargas de archivos, esto significa que actualmente las redes sociales están marcando tendencia en el mercado y por lo tanto son las más utilizadas. 38 Resultados de la encuesta realizada a los clientes de CCAINFOR Pregunta Nº1. ¿Usted utiliza aplicaciones móviles? Respuesta Frecuencia Porcentaje % Si 26 87% No 4 13% TOTAL 30 100% Tabla 8, Pregunta 1. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. No 13% Si 87% Grafico 7, Pregunta 1. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. Se deduce visiblemente que la mayoría de clientes si utiliza aplicaciones móviles, esto significa que las aplicaciones móviles son tendencia en la actualidad. 39 Pregunta Nº2. ¿Cuántas aplicaciones tienes actualmente instaladas en tu móvil? Respuesta Frecuencia Porcentaje % 1-5 10 52% 5 - 10 14 37% 10 - mas 2 11% TOTAL 26 100% Tabla 9, Pregunta 2. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. ( 10 - mas ) 11% (1-5) 37% ( 5 - 10 ) 52% Grafico 8, Pregunta 2. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. Se ratifica plenamente que los clientes usan una cantidad considerable de aplicaciones móviles, esto significa que se han vuelto muy esenciales en nuestros dispositivos móviles y tablets ya que nos puede servir de mucha ayuda según para lo que sean desarrollados. 40 Pregunta Nº3. ¿Qué tipo de licenciamiento tienen las aplicaciones móviles utilizadas? Respuesta Frecuencia Porcentaje % Software bajo licencia 11 42% Software gratis 15 58% TOTAL 26 100% Tabla 10, Pregunta 3. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. Software bajo licencia 42% Software gratis 58% Grafico 9, Pregunta 3. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. Manifiesta notoriamente que las aplicaciones móviles en su mayoría es preferido por sus clientes de forma gratuita, es significa que las aplicaciones móviles que no tienen ningún tipo de costo son las más ejecutadas por los usuarios 41 Pregunta Nº4. En general ¿cómo eliges las aplicaciones que quieres tener? Respuesta Frecuencia Porcentaje % Las busco personalmente 11 42% Me las recomiendan amigos, 9 35% No las busco, cuando la veo, me la 6 23% conocidos instalo Otros 0 0% TOTAL 26 100% Tabla 11, Pregunta 4. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. No las busco, cuan do la veo, me la instalo 23% Otros 0% Las busco personalme nte 42% Me las recomienda n amigos, con ocidos 35% Grafico 10, Pregunta 4. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. Es evidente que la mayoría de aplicaciones móviles descargadas es porque a los usuarios se las recomiendan, esto quiere decir que ciertamente las personas que ejecutan las aplicaciones les gustan estar en vanguardia de la tecnología y probar aplicaciones recomendadas. 42 Pregunta Nº5. ¿Qué plataforma cree usted que tiene más aplicaciones? Respuesta Frecuencia Porcentaje % ANDROID 12 54% IOS 14 46% TOTAL 26 100% Tabla 12, Pregunta 5. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. ANDROID 46% IOS 54% Grafico 11, Pregunta 5. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. Si bien es cierto de ratifica por una mínima diferencia que la plataforma IOS tiene más aplicaciones que la plataforma ANDROID, podemos notar que las aplicaciones móviles de IOS de cierta manera tienen mayor variabilidad en los desarrollos. 43 Pregunta Nº6. ¿Qué plataforma piensa usted que presenta las mejores aplicaciones? Respuesta Frecuencia Porcentaje % ANDROID 13 50% IOS 12 46% OTROS 1 4% TOTAL 26 100% Tabla 13, Pregunta 6. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. OTROS 4% ANDROID 50% IOS 46% Grafico 12, Pregunta 6. Fuente: La Encuesta clientes. Elaborado por: Marlon Tixicuro. En este caso la gran mayoría manifiesta a favor de ANDRIOD respecto a calidad, esto significa que las aplicaciones móviles de ANDROID llaman mucha más la atención de los usuarios que 44 las utilizan y las descargan. Entrevista al Gerente, El Sr. Dany Javier Sánchez Carrera ¿Desde su punto de vista que se necesita para cubrir las necesidades de los clientes? Creo que cada plataforma tiene sus cosas buenas y malas. Android está ya muy maduro y hay un montón de gente desarrollando librerías Open Source para poder hacer una gran cantidad de funcionalidades de una forma fácil y rápida. En iOS el codebase está muy estable y con cada versión sacan cosas nuevas. Windows Phone está empezando pero tiene un gran entorno de desarrollo y el uso de C# hace que escribir código sea una delicia. Y un buen código de Web Mobilebien optimizado puede ser una muy buena solución para muchos casos. ¿Cuáles son los recursos que la comunidad de desarrolladores de estas plataformas móviles (ANDROID e IOS) pone al alcance de los usuarios y de otros desarrolladores? Hay muchísimo movimiento y lo mejor de todo es que desde el principio se ha promovido la fislosofía del Open Source y el compartir. El caso claro lo tenemos en Square que ha hecho una grandísima labor liberando multitud de librerías de las cuales nos aprovechamos todos los desarrolladores, como por ejemplo ActionBarSherlock, Retrofit o ViewPagerIndicator. En el caso concreto de Android es muy interesante la comunidad que ha surgido en Google+ (sí, esa red social que está desierta) en la que es habitual charlar no sólo con desarrolladores de todo el mundo sino estar en contacto directo con los propios desarrolladores de Google que nos mantienen al día con las últimas novedades o nos ayudan con estupendos manuales. Si eres desarrollador Android hay que estar en google+ y seguir a Roman Nurik, Rich Hyndman, Chet Haase, Matias Duarte, Juhani Lehtimäki, Fernando Cejas. 45 ¿Cree usted que una aplicación móvil puede expandirse o mejorar fácilmente? La moda ahora son los pagos in-app. Aplicaciones gratuitas que se pueden mejorar o expandir mediante micropagos. Es un sistema que funciona muy bien puesto que es más fácil convencer a los usuarios para que paguen por algún contenido adicional cuando ya conocen tu app, la usan e incluso puede que la consideren imprescindible que simplemente viéndola en la tienda de aplicaciones. En ese momento es difícil convencer que esa app que tienen ahí les va a ser lo suficientemente útil como para pagar 1 dólar. 46 CAPITULO III DESARROLLO DE LA PROPUESTA 3.1. Tema: Estudio comparativo entre plataformas ANDROID e IOS para el desarrollo de aplicaciones móviles inteligentes para el centro de capacitación y asesoramiento informático (CCAINFOR) - Ibarra 3.2. Descripción de la propuesta La propuesta consiste en realizar un estudio comparativo enfocado a las plataformas ANDROID e IOS y saber la factibilidad de desarrollo para las aplicaciones móviles inteligentes. 3.3. Desarrollo de la Propuesta La propuesta planteada como solución al problema descrito en el capítulo inicial, consiste en realizar el Estudio de plataformas ANDROID e IOS para el desarrollo de aplicaciones móviles inteligente, este estudio ha sido elaborado tomando en cuenta los siguientes pasos: 3.3.1. Metodología de Desarrollo Para el desarrollo de este sistema de información se ha elegido la metodología de cascada o lineal, ya que su enfoque metodológico ordena rigurosamente las etapas del ciclo de vida del software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior; siendo las siguientes etapas, Análisis de requisitos, Diseño del Sistema, Diseño del Programa, Codificación, Pruebas, Implantación y Mantenimiento. 47 3.3.2. Análisis Previo La determinación de una plataforma de desarrollo para dispositivos móviles inteligentes que se va a utilizar para la implementación de una aplicación software que servirá para la comparación; para la creación de dicha aplicación vamos en primer lugar a instalar JDK que es un componente de Java que nos permitirá ejecutar el simulador y desarrollador del Android Studio posteriormente instalado, en IOS el desarrollador que utilizaremos es el XCODE una aplicación independiente que su lenguaje de programación es el lenguaje C, a continuación abriremos un nuevo proyecto siguiendo los pasos respectivamente como nos indicara el asistente, la aplicación de la calculadora básica se elaborara con las funciones respectivas a cada plataforma de desarrollo, así como “accions” y los campos de texto a cada botón se asignara una acción la cual dependerá de las operaciones que el usuario solicite, en esta aplicación tomaremos en cuenta los cuatro botones principales los cuales serán asignado respectivamente como suma, resta, multiplicación y división a continuación asignaremos dos botones que serán: borrar todo e igual, siguiendo el lenguaje de programación de cada plataforma asignaremos a cada botón mediante código las funciones respectivas para que al final los resultados de cada una de las operaciones solicitadas por el usuario sean mostrada en un campo de igual manera dependiendo de la plataforma de desarrollo (un campo de texto). Para luego cargar en los simuladores y poder distribuir la aplicación. Desarrollo en plataformas ANDROID e IOS Facilidad de programación Número de lineas de programación Facilidad de diseño Grafico 13, Desarrollo de plataformas ANDROID e IOS. Fuente: Análisis previo. Elaborado por: Marlon Tixicuro. 48 Mayor cobertura de ejecución 3.3.3. Diseño Realizar en las plataformas ANDROID e IOS la carga de N números en los cuales se ejecutaran las operaciones básicas de las matemáticas que son: Suma, Resta Multiplicación, División mostrando adicionalmente un botón como es el “borrar todo”, así quedando como resultado una calculadora básica controles para su correcta ejecución. Diagrama de flujo 49 con todos los Diagrama de entrada y salida de datos Grafico 14, Diagrama de entrada y salida de datos Fuente: Diseño Elaborado por: Marlon Tixicuro. 3.3.4. Desarrollo Desarrollo de Aplicación (Calculadora básica) en ANDROID La aplicación consta de las siguientes funciones Suma Multiplicación División Resta 50 Borrar todo package com.example.micalculadora; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } Double numero1,numero2,resultado; String operador; public void onClickIgual(View miView) { 51 TextView tv = (TextView) findViewById(R.id.txtNumero) ; numero2 = Double.parseDouble(tv.getText().toString()); if(operador.equals("+")) { resultado= numero1+numero2; } else if(operador.equals("-")) { resultado= numero1-numero2; } else if(operador.equals("*")) { resultado= numero1*numero2; } else if(operador.equals("/")) { resultado= numero1/numero2; } tv.setText(resultado.toString()); } public void onClickSuma(View miView) { operador="+"; onClickOperacionCapturaNumero1(miView); } public void onClickResta(View miView) { operador="-"; onClickOperacionCapturaNumero1(miView); } 52 public void onClickMultiplicacion(View miView) { operador="*"; onClickOperacionCapturaNumero1(miView); } public void onClickDivision(View miView) { operador="/"; onClickOperacionCapturaNumero1(miView); } public void onClickOperacionCapturaNumero1(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; numero1 = Double.parseDouble(tv.getText().toString()); tv.setText(""); } public void onClickLimpia(View miView) { numero1=0.0; numero2=0.0; TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(""); } public void onClickBtn1(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "1"); } public void onClickBtn2(View miView) 53 { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "2"); } public void onClickBtn3(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "3"); } public void onClickBtn4(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "4"); } public void onClickBtn5(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "5"); } public void onClickBtn6(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "6"); } public void onClickBtn7(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "7"); } public void onClickBtn8(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; 54 tv.setText(tv.getText() + "8"); } public void onClickBtn9(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "9"); } public void onClickBtn0(View miView) { TextView tv = (TextView) findViewById(R.id.txtNumero) ; tv.setText(tv.getText() + "0"); } } 55 Desarrollo de Aplicación (Calculadora básica) en X CODE (IOS) La aplicación consta de las siguientes funciones Suma Multiplicación División Resta Borrar todo @interface Calculadora : NSObject { float operandol; float operando2; char operadorActual; > @property float operandol,operando2; @property operadorActual; -(void) inicializarOperacion; @end @interface Calculadora (operacionesMatematicas) -(float) realizarOperacion; -(float) evaluarOperador:(float) valor; -(float) sumar; -(float) restar; -(float) multiplicar; -(float) dividir; @end @implementation Calculadora @synthesize operadorActual, operandol, operando2; 56 char -(void) inicializarOperacion { operandol = operando2 = 0.0; operadorActual = @implementation Calculadora (operacionesMatematicas) -(float) evaluarOperador: (float) valor { float multiplicador, resultado; resultado = 0.0; multiplicador = 10; if (operadorActual == '<§') { operandol *= multiplicador; operandol += valor; resultado = operandol; > else { operando2 *= multiplicador; operando2 += valor; resultado = operando2; > return resultado; > interface Calculadora : NSObject { float operando 1; float operando2; char operadorActual; } @property float operando1,operando2; @property char operadorActual; -(void) inicializarOperacion; @end @interface Calculadora (operacionesMatematicas) -(float) realizarOperacion; -(float) evaluarOperador:(float) valor; -(float) sumar; -(float) restar; -(float) multiplicar; 57 -(float) dividir; @end @implementation Calculadora @synthesize operadorActual, operandol, operando2; -(void) inicializarOperacion { Operando1 = operando2 = 0.0; operadorActual =’@’; } @end @implementation Calculadora (operacionesMatematicas) -(float) evaluarOperador: (float) valor { float multiplicador, resultado; resultado = 0.0; multiplicador = 10; if (operadorActual == '@') { operando1 *= multiplicador; operando1 += valor; resultado = operando1; } else { operando2 *= multiplicador; operando2 += valor; resultado = operando2; } return resultado; } 58 (float) realizarOperacion { float resultado = 0.0; switch (operadorActual) { case '+': resultado = [self sumar]; break; case '-': resultado = [self restar]; break; case '*': resultado = [self multiplicar] break; case '/': resultado = [self dividir]; break; } return resultado; } #import <Cocoa/Cocoa.h> #import "Calculadora.h" @interface CalculadoraGUIAppDelegate : NSObject <NSApplicationDelegate> { NSWindow *window; NSTextField * pantalla; NSButton *botonl, *boton2, *boton3, *boton4, *boton5, *boton6, *boton7, *boton8, *boton9, *boton0, *botonlgual; NSButton *opcradorMas, *operado Menos, *opcradorPor, *operadorEntre, *operadorC; Calculadora *miCalculadora; } @property (assign) IBOutlet NSWindow 59 *window; @property (assign) IBOutlet NSButton *botonl, *boton2, *boton3, *boton4, *boton5, *boton6, *boton7, *boton8, *boton9,*boton0, *botonlgual; @property (assign) IBOutlet NSButton *operadorMas, *operadorMenos, *operadorPor, *operadorEntre, *opcradorC; @property (assign) IBOutlet NSTextField *pantalla; @propcrty (assign) Calculadora*MiCalculadora; -(IBAction) clicBotonNumero: (id) sender; -(IBAction) clicBotonOperador: (id) sender; -(IBAction) clicBotonC: (id) sender; -(IBAction) clicBotonlgual: (id) sender; @end @synthesize window, boton1, boton2, boton3, boton4, boton5, boton6, boton7, botor8, boton9, boton0, operadorMas, botonlgual; @synthesize operadorMenos, operadorPor, operadorEntre, operadorC, pantalla, miCalculadora; (void)applicationDidFinishLaunching:(NSNotification *)aNotification { miCalculadora = [Calculadora new]; [miCalculadora inicializarOperacion]; NSString *acumuladorString = [NSString st ringWithFormat:@ "%.4f" , 0.00]; [pantalla setStringValue:acumuladorString]; } -(IBAction) clicBotonNumero: (id) sender { NSString *nombreBoton = [sender title]; float valor; valor = [miCalculadora evaluarOperador: 60 [nombreBoton floatValue]]; NSString *resultadoString = [NSString stringWithFormat:@ "%.4f", valor]; [pantalla setStringValue:resultadoString]; } -(IBAction) clicBotonOperador: (id) sender { NSString *nombreBoton = [sender title]; [miCalculadora setOperadorActual:[nombreBoton characterAtlndex:0]]; } -(IBAction) clicBotonlgual: (id) sender { float valor; valor = [miCalculadora realizarOperacion]; NSString *resultadoString = [NSString stringWithFormat:@"%.4f", valor]; [pantalla setStringValue:resultadoString]; [miCalculadora inicializarOperacion]; [miCalculadora setOperandol:valor]; -(IBAction) clicBotonC:(id) sender [miCalculadora inicializarOperacion]; NSString *acumuladorString = [NSString stringWithFormat:@"%.4f", 0.00]; [pantalla setStringValue:acumuladorString]; } (BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { return YES; } 61 Grafico 15, Desarrollo de Aplicación Fuente: Desarrollo. Elaborado por: Marlon Tixicuro. 3.3.5. Pruebas Las pruebas permanentes durante el desarrollo de la aplicaciones móviles (calculadoras básicas) efectivamente forman un factor trascendental de perfeccionamiento continuo, el software desarrollado ha sido sometido a una. Caja Negra: Esta prueba esencialmente permitió verificar la idoneidad de los resultados, se aplicó para validar los resultado de las operaciones que consta en la calculadora básica tanto en Android como en IOS se analizó los procesos, así como también la validez de los resultados mostrados al momento de su ejecución. 62 3.3.6. Implementación Distribuir una Aplicación Móvil (Calculadora Básica ANDROID) – MARKET • Una vez que ya has realizado la aplicación, lo normal es crear una cuenta de desarrollador en el Android Market, y lo primero de todo, es pasar por el pago • Crear una cuenta en Google Checkout y abonar la tarifa de 25 $ para toda la vida (para desarrollar para Apple hay que abonar 100 $ al año). Después del pago ya tenemos acceso a las pantallas para subir aplicaciones. • El formulario, actualmente, se encuentra dividido en 3 secciones: • La parte de “assets“, donde se sube el .apk, las imágenes promocionales, un icono enorme que ahora mismo no sirve para nada, un gráfico promocional, que es el más grande que se ve en la aplicación del Android Market. • La parte de “listing details” con la descripción de la aplicación en los diferentes idiomas. • Y la parte de “publishing options” con la protección y clasificación por edades, además de la información de contacto y aceptaciones correspondientes. • Una vez publicada la aplicación, en breves minutos ya se encontrará en el Market, tan fácil y tan rápido y al de al menos un día comenzaremos a recibir feedback del número de descargas de nuestra aplicación, el número de descargas activas (estas son las buenas), así como de los comentarios y errores. 63 Distribuir una Aplicación Móvil (Calculadora Básica IOS) – APP STORE • Lo primero que deberemos hacer es entrar en la web de iTunes Connect, en este caso presupondremos que los datos fiscales y bancarios de la empresa ya han sido configurados. Una vez dentro de iTunes Connect, seleccionaremos “Manage your applications”, y una vez dentro, seleccionaremos “Add new app”. • Elegir Idioma por defecto de la aplicación Nombre de la aplicación (que debería ser el mismo o un nombre similar al que aparece bajo el icono de la aplicación en el dispositivo) • Una vez rellenados los datos, seleccionamos “Continúe” y llegaremos a una pantalla donde deberemos seleccionar la fecha de disponibilidad de la aplicación y el precio que tendrá. • Seguimos adelante, ahora deberemos rellenar una serie de datos de la aplicación separados por bloques, vamos a ver cuáles son cada uno de ellos: • Deberemos definir si nuestra aplicación contiene algún tipo de contenido, rellenando el listado que Apple nos proporciona • Deberemos introducir información de la aplicación como una descripción de esta, palabras clave para facilitar la búsqueda de la aplicación, así como un mail y web de contacto y soporte. • Debemos rellenar es el de los datos de contacto, donde deberemos añadir los siguientes datos sobre nosotros o nuestra empresa, que siempre serán iguales para todas las aplicaciones. 64 • Una vez hayamos terminado de rellenar los datos, haremos clic sobre “Save”, y llegaremos a la pantalla de configuración de la aplicación, donde veremos que aparece su Status como “Waiting for upload” junto a una redonda amarilla. • Para garantizar que estamos utilizando el distribution profile adecuado, en la misma pestaña de “Build settings”, deberemos comprobar que en el apartado “Release” del “Code signing” aparezca como Distribution Profile aquel que hemos nombrado como “NombreApp Distrib”, en lugar del perfil de AdHoc. • Tras esto, ya podemos dar paso a la creación del ejecutable de la aplicación que enviaremos a Apple. Colocándonos en XCode, deberemos seleccionar en el menú superior el esquema del target que estamos desarrollando en este momento, y tras esto, seleccionar “iOS Device”. • Tras esto, seleccionaremos dentro del menú, la opción Product – Archive, tal y como vemos a continuación. • Esto nos hará esperar un tiempo mientras se hace la carga de datos correspondiente para generar el archivo ejecutable. Una vez finalizada, veremos que se abrirá el Organizer, mostrándonos la pestaña Archives, donde veremos el que acabamos de crear de nuestra aplicación. Para acabar, haremos clic sobre la opción “Distribute”. • Y finalmente, ya habremos acabado. Si volvemos a la página de nuestra aplicación en iTunes Connect veremos que su estado aparece ahora como “Upload received”. Tras esperar unos minutos, su estado cambiará a “Waiting for review”. Ahora sólo nos quedará esperar a que la aplicación sea aprobada por Apple. 3.3.7. Validación de la propuesta En los capítulos procedentes se ha propuesto una aplicación móvil que se enfocará en una calculadora básica en dos plataformas (ANDROID e IOS), posteriormente se ha aplicado al ámbito especifico de la construcción de dicha aplicación. Posteriormente se ha analizado su aplicabilidad en el contexto de 65 desarrollo de aplicaciones móviles en distintas plataformas y se ha estudiado su aceptación, mostrando dicha aplicación a 10 (diez) estudiantes de la Universidad Técnica de Norte (UTN), Carrera de Sistemas; ellos supieron manifestar que 7(siete) de los 10 (deis) estudiantes, utilizan plataforma ANDROID, también manifestaron los motivos por lo cual tienen preferencia a esta plataforma entra las cuales mencionaron, “El lenguaje de programación de Android tiene una sintaxis más fácil de comprender que el lenguaje que se utiliza en Xcode que es Objetive C su sintaxis es mucho más compleja”, En lo referente a la instalación y compactibilidad en los sistemas operativos supieron manifestaron que “ANDROID en si tiene mucho mas compactibilidad en los sistemas operativos su instalación no pide mucho requerimientos de sistema a comparación de IOS Xcode únicamente se puede instalar en sistemas operativos MAC, pero si hablamos de las Interfaces graficas los dos tienen acabados estéticamente para uso de interfaz táctiles” , Tomando también en cuenta lo que supieron exponer con respecto a la instalación de las aplicaciones en las dispositivos móviles fueron “Las aplicaciones de las dos son eficientes, el problema está al momento de instalar Android es mucho más fácil por el mismo hecho de ser un software libre, en IOS es mucho más complejo y demoroso al tener que seguir varios pasos incluso para poder instalar las aplicaciones”. También se les pregunto sobre el consumo de servicios web tanto en ANDROID como en IOS para los cual supieron enseñar que “En ANDROID existen librerías nativas para este tipo de procesos, a diferencia de IOS se deben aplicar librerías externas, también debemos tener en cuenta que si hablamos de desarrollo de aplicaciones existe IDS Eclipse y Xcode las dos respectivamente son muy eficientes” 66 CONCLUSIONES Y RECOMENDACIONES Conclusiones Al finalizar el análisis comparativo de las plataformas de desarrollo de desarrollo para dispositivos móviles Androis y iOS se han obtenido las siguientes conclusiones: • Se determinó que el lenguaje de programación Java para el desarrollo de aplicaciones en Android presenta a los desarrolladores una curva de aprendizaje de 75% por su sintaxis comprensible, mientras que el lenguaje de programación objective C tiene un 50% en su curva de aprendizaje por su sintaxis compleja. • La plataforma Android puede ser instalada en varios sistemas operativos por lo que en el análisis se obtuvo un 75% estos sistemas operativos pueden ser propietarios y libres, mientras que la plataforma iOS obtuvo un 25% ya que solo se ejecuta en sistema operativo Mac OS X. • La interfaz gráfica de usuario en las dos plataformas de desarrollo de aplicaciones Android y iOS presentan elementos bien acabados estéticamente para el uso en interfaces táctiles. • El proceso de gestión de la base de datos Sqlite en Android y iOS es bastante simple porque existen librerías nativas para el manejo de la base de datos Sqlite en ambas plataformas y esta base de datos utiliza sentencias sql, las mismas que son conocidas por los programadores. • Del análisis se obtuvo el 100% en el consumo de servicios web en la plataforma Android ya que existen librerías nativas para este proceso, mientras que en la plataforma iOS se obtuvo el 75% ya que se utiliza librerías externas para este proceso y su utilización depende de cómo fueron implementadas. • Los IDEs Eclipse y Xcode que son utilizados para el desarrollo de aplicaciones para android y iOS respectivamente, tienen herramientas completas para codificación y diseño de las aplicaciones muy eficientes. • En ambas plataformas existen emuladores muy eficientes para realizar pruebas a las aplicaciones. Para el despliegue de aplicaciones ya en un dispositivo físico en la plataforma Android es muy fácil por ser software 67 libre, mientras que para iOS el despliegue ocupa un poco más de tiempo y hay que pagar por instalar las aplicaciones en el dispositivo. Recomendaciones • Es importante analizar los requerimientos del usuario y el entorno para realizar una aplicación en la plataforma Android o iOS • Se debe valorar los costos y el tiempo para la realización en la una u otra plataforma ya que si se va a desarrollar para iOS suben los costos y en cambio en Android como es una plataforma libre se puede realizar la misma aplicación con menores costos. • Para desarrollar una aplicación para Android es recomendable utilizar el IDE Eclipse y el pluguin Motodev Studio para Android estas dos herramientas ofrecen un conjunto completo de características para el desarrollador. • Se recomienda a los desarrolladores de aplicaciones que desean utilizar la plataforma iOS familiarizarse con el lenguaje C para mayor comprensión • Se recomienda realizar aplicaciones utilizando estándares de codificación para una mejor comprensión código. • Se recomienda ayudarse de la documentación oficial para el desarrollo en las plataformas Android y iOS ya que continuamente es actualizada. • Se recomienda para realizar las pruebas de aplicaciones hacerlas también en un dispositivo físico ya que los emuladores tienen limitaciones. 68 BIBLIOGRAFÍA. Ainoa Celaya Luna, (2013),” Introducción al desarrollo de aplicaciones para Android”, Editorial ICB, 5a. Edición., Málaga-España Ángel Cobo, (2005),” PHP y MySQL: Tecnología para el desarrollo de aplicaciones web”, Editorial Díaz de Santos, 3a. Edición., Sevilla-España Cyril Thibaud, (2006), “MySQL 5: instalación, implementación, administración, programación”, Editorial ENI, 2a. Edición., Barcelona-España David Chiles, (2014), “Aplicaciones: Todo lo que usted necesita saber”, Editorial Anaya Multimedia-Anaya Interactiva, 3a. Edición,. Madrid-España Fernando López, (2012), “Objective-C. Curso práctico para programadores Mac OS X, iPhone y iPad”, Editorial RC Libros, 5a. Edición., Madrid-España Hernández Samuel, (2009), "Metodología de la investigación", Editorial Mc Ggraw-Hill, 6a. Edición., México-México Jesús Tomas Girones, (2013), “El gran libro de Android”, Editorial Marcombo, 3a. Edición .,Barcelona-España Joe Conway, (2011), “Programación iOS”, Editorial Anaya Multimedia, 6a. Edición., Atlanta-Atlanta Miguel Ángel Moreno Alvares, (2013), “Desarrollo de aplicaciones Android seguras”, Editorial Informática 64,2a. Edición., Madrid-España Miguel Arias, (2013), “Programación en Objetive-C con Xcode y GCC”, Editorial Independent, 6a. Edición., Sevilla-España Mohammed J. Kabir, (2010), “La Biblia del servidor Apache”, Editorial Anaya Multimedia, 1a. Edición., California-Estados Unidos Mugunth Kumar, Rob Napier, (2013),” iOS 6 desarrollo de aplicaciones”, Editorial Anaya Multimedia-Anaya Interactiva, 4a. Edición., Madrid-España Nicolas Saney, (2001), “Su primer programa Java”, Editorial Marcombo, 5a. Edición., Barcelona-España Olivier Engler, (2013), “Programmation iOS”, Editorial Pearson, 3a. Edición., Paris-Francia Rob Huddleston, (2011),” Android para todos”, Editorial Anaya MultimediaAnaya Interactiva, 5a. Edición,. Madrid-España Robin Nixon, (2011),” HTML5 para iOS y Android”, Editorial Anaya MultimediaAnaya Interactiva, 3a. Edición., Madrid-España Romina Marcela, (2009), “Aplicaciones web 2.0”, Editorial Eduvim, 1a. Edición., Sevilla-España Scott McCracken, (2013), “Android 4: desarrollo profesional de aplicaciones”, Editorial Inforbook's, 6a. Edición., Oakland-California Sebástien Pérochon, (2012), “Android: Guía de desarrollo de aplicaciones para Smartphones y Tabletas”, Editorial ENI, 2a. Edición., Barcelona-España Wei-Meng Lee, (2012),” Android 4 : Desarrollo de aplicaciones”, Editorial Anaya Multimedia-Anaya Interactiva,3a. Edición .,Madrid-España ANEXO 1 Manual de Usuario Calculadora Android Para realizar las operaciones básicas en la aplicación vamos a presionar un número a la vez. El siguiente paso que debemos realizar es presionar el botón de la operación que deseamos procesar, en este caso será una suma para las demás operaciones elegimos el signo según la operación a realizar. A, continuación ingresamos el siguiente numero a sumar. Ingresamos en Nº 7, A continuación vamos a presionar el botón Igual (=) para que asi nos indique los resultados. Calculadora IOS Manual de Usuario En la Calculadora IOS igualmente vamos a ingresar el primer número para realizar la operación respectiva en este caso sería el Nº 8. A continuación, vamos a presionar el botón de multiplicación para realizar la respectiva operación. Para poder realizar la operación vamos a ingresar un segundo número, en este caso el Nº 6 Para, obtener el resultado final de la operación vamos a presionar el símbolo de igual (=) , y a continuación nos mostrara en pantalla el final del proceso. ANEXO 2 Encuesta para clientes (CCAINFOR) 1. ¿Usted utiliza aplicaciones móviles? Si No - Finalizar 2. ¿Cuántas aplicaciones tienes actualmente instaladas en tu móvil? 1–5 5 – 10 10 - más 3. ¿Qué tipo de licenciamiento tienen las aplicaciones móviles utilizadas? Software bajo licencia. Software gratis. 4. En general ¿cómo eliges las aplicaciones que quieres tener? Las busco personalmente Me las recomiendan amigos, conocidos No las busco, cuando la veo, me la instalo Otros (especificar) ______________________________________ 5. ¿Qué plataforma cree usted que tiene más aplicaciones? ANDROID – (Samsumg Galaxi) IOS – (Iphone) Otro (Por favor especifique) ___________________________________ 6. ¿Qué plataforma piensa usted que presenta las mejores aplicaciones? ANDROID – (Samsumg Galaxi) IOS – (Iphone) Encuesta para los desarrolladores (CCAINFOR) 1. ¿Qué tipo de aplicaciones móviles desarrolla su empresa o negocio?, (seleccione varias si es necesario) Para procesos de negocios (e-bussiness) Comercio electrónico Educación o aprendizaje en línea Juegos en una aplicación o en línea Aplicaciones en general para una plataforma específica Desarrollo web Multimedia 2. En el desarrollo de aplicaciones móviles, ¿usted siempre sigue las tendencias de vanguardia? (modas o nuevas tecnologías) Totalmente de acuerdo Medianamente de acuerdo Indiferente En desacuerdo Totalmente en desacuerdo 3. Al desarrollar aplicaciones móviles, ¿considera usted la fiabilidad, facilidad de uso, confiabilidad, desempeño y el soporte como indicadores de calidad? Totalmente de acuerdo Medianamente de acuerdo Indiferente En desacuerdo Totalmente en desacuerdo 4. ¿El desarrollo de la aplicación siempre esta apegado al costo proyectado y se finaliza cuando ya no hay presupuesto? Totalmente de acuerdo Medianamente de acuerdo Indiferente En desacuerdo Totalmente en desacuerdo 5. ¿En qué plataforma usted ha desarrollado más cantidad de aplicaciones móviles? Android IOS Otro: ______________________ 6. ¿Qué tipo de servicios son los más utilizados en las aplicaciones que usted desarrolla? Redes sociales Descarga de archivos Correo electrónico Web y bases de datos Multimedia (video, audio, animación) Otros servicios; impresión, localización y búsqueda Entrevista al Gerente, El Sr. Dany Javier Sánchez Carrera ¿Desde su punto de vista que se necesita para cubrir las necesidades de los clientes? Creo que cada plataforma tiene sus cosas buenas y malas. Android está ya muy maduro y hay un montón de gente desarrollando librerías Open Source para poder hacer una gran cantidad de funcionalidades de una forma fácil y rápida. En iOS el codebase está muy estable y con cada versión sacan cosas nuevas. Windows Phone está empezando pero tiene un gran entorno de desarrollo y el uso de C# hace que escribir código sea una delicia. Y un buen código de Web Mobilebien optimizado puede ser una muy buena solución para muchos casos. ¿Cuáles son los recursos que la comunidad de desarrolladores de estas plataformas móviles (ANDROID e IOS) pone al alcance de los usuarios y de otros desarrolladores? Hay muchísimo movimiento y lo mejor de todo es que desde el principio se ha promovido la fislosofía del Open Source y el compartir. El caso claro lo tenemos en Square que ha hecho una grandísima labor liberando multitud de librerías de las cuales nos aprovechamos todos los desarrolladores, como por ejemplo ActionBarSherlock, Retrofit o ViewPagerIndicator. En el caso concreto de Android es muy interesante la comunidad que ha surgido en Google+ (sí, esa red social que está desierta) en la que es habitual charlar no sólo con desarrolladores de todo el mundo sino estar en contacto directo con los propios desarrolladores de Google que nos mantienen al día con las últimas novedades o nos ayudan con estupendos manuales. Si eres desarrollador Android hay que estar en google+ y seguir a Roman Nurik, Rich Hyndman, Chet Haase, Matias Duarte, Juhani Lehtimäki, Fernando Cejas. ¿Cree usted que una aplicación móvil puede expandirse o mejorar fácilmente? La moda ahora son los pagos in-app. Aplicaciones gratuitas que se pueden mejorar o expandir mediante micropagos. Es un sistema que funciona muy bien puesto que es más fácil convencer a los usuarios para que paguen por algún contenido adicional cuando ya conocen tu app, la usan e incluso puede que la consideren imprescindible que simplemente viéndola en la tienda de aplicaciones. En ese momento es difícil convencer que esa app que tienen ahí les va a ser lo suficientemente útil como para pagar 1 dólar.