DESARROLLO EN DISPOSITIVOS MOVILES IOS CON SWIFT LUIS ALEJANDRO RAMIREZ SUAREZ Informe de sistematización de la practica para optar al titulo de tecnólogo en sistemas de información Asesor metodológico Jorge Eduardo Restrepo Magister en administración de empresas INSTITUTO TECNOLOGICO METROPOLITANO FACULTAD DE INGENIERIAS TECNOLOGIA EN SISTEMAS DE INFORMACIÓN MEDELLIN 2017 2 CONTENIDO PÁG. GLOSARIO 6 1. FORMULACIÓN DEL PROBLEMA 10 2. JUSTIFICACIÓN 11 3. OBJETIVOS 12 3.1. GENERAL. 12 3.2. ESPECIFICOS. 12 4. DELIMITACIÓN 13 4.1. ESPACIAL 13 4.1.1. Razón Social y Dirección. 13 4.1.2. Objeto social de la empresa. 13 4.1.3. Representante legal. 13 4.1.4. Reseña Histórica. 13 4.1.5. Misión. 13 4.1.6. Visión. 13 4.1.7. Valores corporativos. 14 4.2. TEMPORAL 14 5. DESCRIPCIÓN DE LA PRÁCTICA 15 6. ALCANCES O METAS 16 3 7. MARCO TEORICO 17 7.1. FUNDAMENTACIÓN CONCEPTUAL. 17 7.2.1. Sistemas operativos de móviles. 17 7.2.2. Sistemas operativos más utilizados. 17 7.2. PERFIL DEL TECNÓLOGO EN SISTEMAS DE INFORMACIÓN. 18 7.2.1. Campo de intervención. 19 7.2.2. Competencias Profesionales. 19 8. METODOLOGIA 20 8.1. DESCRIPCIÓN DE PROCEDIMIENTOS PARA REALIZAR. 20 9. ASPECTOS ADMINISTRATIVOS 22 9.1. RECURSOS HUMANOS. 22 9.2. RECURSOS MATERIALES. 22 9.3. RECURSOS ECONOMICOS. 22 9.4. CRONOGRAMA DE ACTIVIDADES: 22 10. RESULTADOS Y CONCLUSIONES 23 10.1. Competencias Obtenidas en la Empresa. 23 10.2. Aportes a la empresa. 23 10.3. Logros. 23 10.4. Dificultades. 23 10.5. Recomendaciones. 23 BIBLIOGRAFIA 24 4 ANEXOS 25 5 ANEXOS ANEXO A. Hoja de vida institucional. 25 ANEXO B. Guías de seguimiento 1. 2. 3 y 4 29 ANEXO C. Contrato de aprendizaje 34 ANEXO D. Carta de constancia de practica 37 ANEXO E. Certificado curso pre-practica. 38 ANEXO F. Seguridad social. 39 ANEXO G. Evidencias. 40 6 GLOSARIO API: la interfaz de programación de aplicaciones, abreviada como API del inglés: Application Programming Interface, es un conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas generalmente en las bibliotecas de programación. APPLE: es una empresa multinacional estadounidense que diseña y produce equipos electrónicos, software y servicios en línea, con sede en Cupertino (California, Estados Unidos) y la sede europea en la ciudad de Cork (Irlanda). Sus productos de hardware incluyen el teléfono inteligente iPhone, la tableta iPad, el ordenador personal Mac, el reproductor de medios portátil iPod, el reloj inteligente Apple Watch y el reproductor de medios digitales Apple TV. Entre el software de Apple se encuentran los sistemas operativos iOS, macOS, watchOS y tvOS, el explorador de contenido multimedia iTunes, la suite iWork (software de productividad), Final Cut Pro X (una suite de edición de vídeo profesional), Logic Pro (software para edición de audio en pistas de audio), Xsan (software para el intercambio de datos entre servidores) y el navegador web Safari. CSS: Hojas de estilo en cascada (o CSS, siglas en inglés de Cascading Stylesheets) es un lenguaje de diseño gráfico para definir y crear la presentación de un documento estructurado escrito en un lenguaje de marcado. Es muy usado para establecer el diseño visual de las páginas web, e interfaces de usuario escritas en HTML o XHTML; el lenguaje puede ser aplicado a cualquier documento XML, incluyendo XHTML, SVG, XUL, RSS, etcétera. También permite aplicar estilos no visuales, como las hojas de estilo auditivas. Junto con HTML y JavaScript, CSS es una tecnología usada por muchos sitios web para crear páginas visualmente atractivas, interfaces de usuario para aplicaciones web, y GUIs para muchas aplicaciones móviles (como Firefox OS). GIT, GITHUB: es una forja (plataforma de desarrollo colaborativo) para alojar proyectos utilizando el sistema de control de versiones Git. Utiliza el framework Ruby on Rails por GitHub, Inc. (anteriormente conocida como Logical Awesome). Desde enero de 2010, GitHub opera bajo el nombre de GitHub, Inc. El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago. GULP: es un ejecutor/constructor de tareas para el desarrollo. Permite hacer muchas tareas en medio del flujo de desarrollo. Compilar archivos Sass, comprimir archivos javascript, y mucho mas, de una forma eficiente y rápida. 7 HTML: sigla en inglés de HyperText Markup Language (lenguaje de marcas de hipertexto), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que sirve de referencia del software que conecta con la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, juegos, entre otros. iOS: sistema operativo móvil de la multinacional Apple Inc. Originalmente desarrollado para el iPhone (iPhone OS), después se ha usado en dispositivos como el iPod touch y el iPad. No permite la instalación de iOS en hardware de terceros. JQUERY: es una biblioteca multiplataforma de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web. MacOSX: anteriormente denominado OS X e inicialmente Mac OS X, es un entorno operativo basado en Unix, desarrollado, comercializado y vendido por Apple Inc. Está incluido en su gama de computadoras Macintosh desde el año de 2002. OS X es el sucesor del Mac OS 9 (la versión final del Mac OS Classic), el sistema operativo de Apple desde 1984. OBJECTIVE-C: lenguaje de programación orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk. Actualmente se usa como un lenguaje principal de programación para Mac OS X, iOS y GNUstep, además de swift. SASS: es un metalenguaje de Hojas de Estilo en Cascada (CSS). Es un lenguaje de script que es traducido a CSS. SassScript es el lenguaje de script en sí mismo. Sass consiste en dos sintaxis. SISTEMA OPERATIVO: es el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario). SWIFT: es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y Mac OS X. Fue presentado en WWDC 20147 y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier biblioteca programada en Objective-C y llamar a funciones de C. También es posible desarrollar código en Swift compatible con Objective-C bajo ciertas condiciones. Swift tiene la intención de ser un lenguaje seguro, de desarrollo rápido y conciso. 8 XCODE: es un entorno de desarrollo integrado (IDE, en sus siglas en inglés) para macOS que contiene un conjunto de herramientas creadas por Apple destinadas al desarrollo de software para macOS, iOS, watchOS y tvOS. Su primera versión tiene origen en el año 2003 y actualmente su versión número 8 se encuentra disponible de manera gratuita en el Mac App Store o mediante descarga directa desde la página para desarrolladores de Apple. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario. Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Swift, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal,1 Free Pascal,2 Ada y Perl. 9 INTRODUCCIÓN En el sector del desarrollo de aplicativos móviles, es necesario estar a la vanguardia, brindando las mejores metodologías y usando las mejores herramientas informáticas disponibles. Por esto es necesario para las empresas dedicadas al desarrollo de software, contar con empleados que tengan todos los conocimientos necesarios y la capacidad para actualizarse por iniciativa propia, y mantener los conocimientos previos en sistemas de información que permitan realizar un excelente desempeño. Todas las empresas en la actualidad tienen la necesidad de contar con herramientas informáticas y productos tecnológicos que puedan brindar no solo valor agregado para sus clientes, sino facilidad y eficiencia en la prestación de los servicios. La empresa Sistemas Colombia S.A.S – Globant, ofrece productos tecnológicos enfocados a las experiencias digitales, desde el desarrollo de paginas web, bases de datos, aplicativos móviles, hasta experiencias completas que incluyen todos los productos anteriores integrados en una sola experiencia digital completa y única. En este informe se presentará la experiencia práctica del practicante quién llevó a cabo su experiencia en dicha empresa y específicamente en el área de desarrollo para dispositivos móviles, enfocado directamente al desarrollo en iOS y dispositivos Apple, y brindando soluciones de software para este Sistema Operativo Móvil. 10 1. FORMULACIÓN DEL PROBLEMA En la empresa Globant se busca brindar a los clientes viajes digitales completos con productos que estén a la vanguardia de las tecnologías de información, una de estas tecnologías es los aplicativos móviles y se busca personal que cumpla con las habilidades mínimas para el aprendizaje en el desarrollo de estos aplicativos móviles. Como parte de sus necesidades, la empresa Globant requiere una persona preparada e idónea en el campo tecnológico para capacitar a los practicantes en el área de desarrollo de software en tecnología móvil, mas específicamente para los dispositivos Apple en iOS con iniciación en bases de Objective-C y enfocado a SWIFT. La finalidad es brindar apoyo en el desarrollo de los aplicativos móviles para los clientes de la empresa y culminar satisfactoriamente el entrenamiento para desarrollo de aplicativos móviles. 11 2. JUSTIFICACIÓN En respuesta a las necesidades indicadas anteriormente, la empresa tiene el propósito de instruir y educar en el desarrollo para dispositivos móviles de aplicativos al practicante, para apoyar en el desarrollo de los proyectos de la empresa, brindándole la capacitación necesaria en el uso de las tecnologías. Esto se hará a través de una guía de desarrollo de aplicativos móviles, siguiendo el paso a paso indicado, y demostrando con un producto final (no publicado), la correcta capacitación del practicante. Adicional a lo anterior, una vez culminada la guía, con los conocimiento adquiridos, el practicante ayudará a mejorar la misma guía que siguió, y acompañará a otros nuevos practicantes en el aprendizaje del desarrollo de aplicativos móviles. La empresa se encarga de brindar soluciones tecnológicas e interactivas apropiadas, desde este enfoque el practicante es guiado a través de todas las metodologías adecuadas para el correcto desarrollo de aplicativos móviles. La empresa busca mejorar el uso de las tecnologías de sus clientes, por esta razón es necesario realizar la capacitación de sus empleados (en este caso practicantes) para el desarrollo de estas tecnologías. 12 3. OBJETIVOS 3.1. GENERAL. - Investigar, desarrollar y capacitar en el desarrollo de aplicativos móviles mediante las herramientas de desarrollo Xcode con el lenguaje de programación Swift en MacOS, con el fin de adquirir conocimientos especializados e implementar la visualización de películas y chat en tiempo real, en un software para dispositivos móviles. 3.2. ESPECIFICOS. - Aplicar los conocimientos adquiridos en la producción de un aplicativo móvil que permite listar películas desde un servicio web, y un chat en tiempo real, con todas las características requeridas. - Instruir a otros practicantes en el desarrollo de aplicativos móviles por medio de una metodología participativa con el propósito de brindarles dichos conocimientos. - Implementar los aplicativos móviles desarrollados de tal manera que puedan ser usados y probados por los usuarios, con el fin de garantizar su correcto funcionamiento. 13 4. DELIMITACIÓN 4.1. ESPACIAL 4.1.1. Razón Social y Dirección [1]. Sistemas Colombia S.A.S – Globant. Ubicada en la dirección Calle 10 # 32-115 Oficina 9806, Centro Empresarial Vizcaya. 4.1.2. Objeto social de la empresa. Actividades de consultoría informática y actividades de administración de instalaciones informáticas, actividades de desarrollo de sistemas informáticos (planificación, análisis, diseño, programación, pruebas), otras actividades de tecnologías de información y actividades de servicios informáticos, portales web. 4.1.3. Representante legal. Andrés Santiago Giolito. 4.1.4. Reseña Histórica. Fundada en 2003 por 4 compañeros argentinos que buscaban crear una empresa de soluciones informáticas completas y confiables a los clientes, desde el área web, big data, mobile, etc. Han creado varias sucursales en varios países y han extendido su alcance a múltiples clientes de empresas de todos los sectores. 4.1.5. Misión. Soñar y construir viajes digitales que importan a millones de usuarios. Este tipo de viajes digitales excede la creación de una pagina web, una aplicación o incluso una experiencia de varios canales unificados. Envuelve la creación de una relación mas profunda con los usuarios, entregando experiencias memorables personalizadas, sensibles al tiempo, y consciente del contexto y el lugar. Es lo que llamamos experiencia omnirelevante. 4.1.6. Visión. Queremos retar el status quo y convertirnos en la mejor compañía en la creación de viajes digitales, combinando lo mejor de la ingeniería, innovación y diseño. 14 4.1.7. Valores corporativos. - Pensar en grande (Think Big). - Innovar constantemente (Constantly Innovative). - Ser un miembro de equipo (Be a Team Player). - Divertirse (Have Fun) - Actuar éticamente (Act Ethically) - Excelencia en el trabajo (Excellence in your work). 4.2. TEMPORAL Fecha inicio de la práctica: 19 de octubre del 2016. Fecha final de la práctica: 19 de abril del 2017. 15 5. DESCRIPCIÓN DE LA PRÁCTICA Las funciones que le fueron asignadas al practicante son las siguientes: Capacitación en Pruebas de Calidad: El practicante recibió capacitación en el desarrollo de pruebas de usuario, la creación de documentos específicos para estas pruebas, y el correcto reporte de problemas, bugs y errores. Capacitación en Interfaz de Usuario: El practicante recibió capacitación en el desarrollo de interfaces de usuario, usando editores de código como Visual Studio Code, y los lenguajes como jQuery y HTML en conjunto con el automatizador de tareas en desarrollo Gulp.js, y preprocesadores como Sass procesados a CSS para web. Entrenamiento para la creación de Aplicativos Móviles en iOS con Swift: El practicante recibió la capacitación en el desarrollo de aplicativos móviles con Swift en iOS, usando la herramienta Xcode. Abordando temas iniciales como Sintaxis y particularidades del lenguaje de programación Swift, hasta patrones de diseño que facilitan el diseño y desarrollo de los aplicativos móviles. Se profundizo en el uso de APIs recibiendo información de la Web, modelando esta información para la aplicación y presentándola según los requerimientos establecidos. Como resultado se entrego un aplicativo completo que permite listar películas desde un servicio web, mostrando imágenes, características de cada película y la posibilidad de calificarlas. Apoyo en la capacitación de otros practicantes en la creación de Aplicativos Móviles en iOS con Swift: El practicante ayudo a crear una guía mas organizada y completa, para la capacitación de otros practicantes en el área del desarrollo de aplicativos móviles, además de apoyar en el proceso y compartir los conocimientos previamente adquiridos en la misma empresa. Como resultado se entrego un aplicativo completo de chat en tiempo real, desarrollado en conjunto con otros practicantes, y entregado a la empresa para verificación (no fue publicada). 16 6. ALCANCES O METAS - La empresa esperaba capacitar al practicante en el correcto reporte de pruebas de calidad y la correcta documentación de las mismas, con el fin de apoyar los desarrollos actuales de la empresa para sus clientes. - La empresa esperaba educar al practicante en el desarrollo de interfaces de usuario web, con todas las mejores practicas del medio, esperando al finalizar la capacitación apoyar en el desarrollo de estas interfaces en proyectos que se están brindando a clientes en la empresa. - La empresa esperaba instruir al practicante en el manejo del lenguaje de programación Swift para iOS, usando los conocimiento adquiridos para el desarrollo de aplicativos en la Empresa. - La empresa esperaba apoyar en la capacitación de otros practicantes al desarrollo de aplicativos móviles, comunicando todas las necesidades de la empresa a los mismos y brindando todos los conocimientos previamente adquiridos para el desarrollo de mejores y mas completas aplicaciones móviles. 17 7. MARCO TEORICO 7.1. FUNDAMENTACIÓN CONCEPTUAL. 7.2.1. Sistemas operativos de móviles [15]. Un sistema operativo móvil o SO móvil es un sistema operativo que controla un dispositivo móvil al igual que las computadoras utilizan Windows o Linux entre otros. Sin embargo, los sistemas operativos móviles son mucho más simples y están más orientados a la conectividad inalámbrica, los formatos multimedia para móviles y las diferentes maneras de introducir información en ellos. Características básicas  Kernel El núcleo o kernel proporciona el acceso a los distintos elementos del hardware del dispositivo. Ofrece distintos servicios a las superiores como son los controladores o drivers para el hardware, la gestión de procesos, el sistema de archivos y el acceso y gestión de la memoria.  Middleware El middleware es el conjunto de módulos que hacen posible la propia existencia de aplicaciones para móviles. Es totalmente transparente para el usuario y ofrece servicios claves como el motor de mensajería y comunicaciones, códecs multimedia, intérpretes de páginas web, gestión del dispositivo y seguridad.  Entorno de ejecución de aplicaciones El entorno de ejecución de aplicaciones consiste en un gestor de aplicaciones y un conjunto de interfaces programables abiertas y programables por parte de los desarrolladores para facilitar la creación de software.  Interfaz de usuario Las interfaces de usuario facilitan la interacción con el usuario y el diseño de la presentación visual de la aplicación. Los servicios que incluye son el de componentes gráficos (botones, pantallas, listas, etc.) y el del marco de interacción. 7.2.2. Sistemas operativos más utilizados.  ANDROID: actualmente Android pertenece a Google, pero es un sistema abierto cualquier fabricante puede desarrollar en él sus productos.  IOS: (Anteriormente denominado iPhone OS) es un sistema operativo móvil de Apple desarrollado originalmente para el iPhone siendo después usado en el iPod Touch y en el iPad. 18  MAEMO: Basado en Linux Debían (casi todo en código abierto) y desarrollado por Nokia para Smartphone y tablets.  PALM WEB: aprovecha tecnología web como XHTML, Java Script Y CSS pertenece a HP.  RIM: este sistema operativo ha sido pionero en la gestión del correo electrónico y está muy orientado a un uso profesional.  SYMBIAN: Symbian es el sistema más extendido, nacido de la alianza de varias compañías de móviles. El actual propietario es Nokia.  WINDOWS: La mayor ventaja de este sistema es la de cualquier producto de Microsoft compatibilidad, facilidad de uso, integración con los sistemas Windows. 7.2. PERFIL DEL TECNÓLOGO EN SISTEMAS DE INFORMACIÓN. El Tecnólogo en Sistemas de Información del ITM puede desempeñarse como:  Soporte a usuarios: Como persona capaz de dar entrenamiento, soporte, resolver problemas operativos y técnicos a los usuarios de los sistemas de información.  Desarrollador de software: Persona capaz de participar en un grupo de investigación y desarrollo de sistemas informáticos, asumiendo la función de diseñador y desarrollador del componente computacional, de común acuerdo con los demás miembros del grupo.  Analista de sistemas: Persona que asume la función de analista y especificador de necesidades y soluciones informáticas, así como responsable último del desarrollo, prueba, implantación y entrenamiento a usuarios de los sistemas generados.  Administrador de servicios informáticos: Persona responsable por la provisión de servicios informáticos o tele-informáticos que sirven de base a la labor de una organización. Es capaz no solamente de mantener en funcionamiento la infraestructura requerida para esto, sino de coordinar un adecuado mantenimiento y renovación de equipos y sistemas computacionales base.  Director de sistemas: Persona a cuyo cargo están todos los servicios informáticos de una organización, así como la infraestructura tecnológica, técnica y humana que los hacen posibles. Lidera la identificación de oportunidades informáticas para el cumplimiento de la misión corporativa y para el aumento de su eficiencia. Es un gerente de servicios informáticos capaz de articular éstos con los demás recursos de la organización.  Empresario: Persona que tiene iniciativa propia, capaz de identificar sectores o nichos en los que se puede desempeñar una gestión de liderazgo en la innovación o el mejoramiento apoyados con la informática, capaz de articular demanda y oferta de servicios (propia o ajena) para lograr dicho cambio. 19 7.2.1. Campo de intervención. El Tecnólogo en Sistemas de Información interviene las tecnologías de la información en el contexto de los procesos de una organización, desde las perspectivas del desarrollo y la ingeniería del software en los aspectos de la programación orientada a objetos y el modelamiento UML, y la gestión del recurso informático en los aspectos del modelado, implementación de las bases de datos e Inteligencia de Negocios y la gestión de proyectos informáticos. 7.2.2. Competencias Profesionales. Diseño y desarrollo de software  Diseñar y desarrollar soluciones informáticas en ambientes de red con fundamento en los paradigmas de desarrollo de software y las herramientas vigentes.  Administración del recurso informático  Planear y organizar un conjunto de actividades y recursos (bases de datos, talento humano, infraestructura de red y sistemas de información) para satisfacer un propósito de modo eficiente y eficaz. Bases teóricas de lo que hicimos en la empresa. Desarrollo de aplicaciones móviles. Capacitar en el desarrollo de aplicaciones móviles. Referencias bibliográficas. 20 8. METODOLOGIA 8.1. DESCRIPCIÓN DE PROCEDIMIENTOS PARA REALIZAR. Nombre función Pasos generales Recursos utilizados Capacitación en Pruebas de Calidad. 1. Generalidades del proyecto. 2. Levantamiento de requisitos. 3. Realizar los casos de usuario. 4. Realizar las pruebas de usuario según los casos de usuario. 5. Reportar las pruebas. Portátil para digitar toda la documentación necesaria y realizar las pruebas. Capacitación en Interfaz de Usuario. 1. Generalidades del proyecto. 2. Levantamiento de requisitos. 3. Realizar los casos de usuario. 4. Asignar tareas de desarrollo de interfaz de usuario. 5. Según la tarea realizar el desarrollo. 6. Entregar la tarea asignada con la respectiva documentación. Portátil para el desarrollo de las tareas, editores de texto en código, con plugins necesarios según la tarea asignada. Acceso a internet. Entrenamiento en Desarrollo de Aplicativos Móviles. 1. Generalidades del entrenamiento. 2. Lectura de especificidades del lenguaje Swift. 3. Interacción con el entorno de desarrollo Xcode. 4. Configuración del entorno de desarrollo. 5. Profundización en el lenguaje de programación Swift. Mac Mini con 10 GB de Ram, procesador de 2.5 GHz, 1 TB de Disco duro interno. Entorno de desarrollo Xcode con Simulador de dispositivos Apple. Acceso a internet. Acceso a repositorios compartidos en 21 6. Desarrollo de aplicativos aplicando los conocimientos adquiridos. 7. Inclusión de características adicionales según las necesidades que podrían tenerse en el desarrollo de los aplicativos. 8. Entrega de aplicativo para listar películas desde un servicio web. GitHub. Apoyo en el entrenamiento de practicantes adicionales a la empresa en el Desarrollo de Aplicativos Móviles. 1. Desarrollo de Guía para el entrenamiento de practicantes. 2. Socialización de la Guía con los nuevos practicantes. 3. Comienzo del entrenamiento, compartiendo los conocimientos adquiridos. 4. Desarrollo de aplicativo de ejemplo, para conocer y aplicas los conocimientos en Swift. 5. Desarrollo de aplicativo en equipo usando un repositorio conjunto. 6. Entrega del aplicativo de chat en tiempo real, desarrollado en conjunto con los demás practicantes. Mac Mini con 10 GB de Ram, procesador de 2.5 GHz, 1 TB de Disco duro interno. Entorno de desarrollo Xcode con Simulador de dispositivos Apple. Acceso a internet. Acceso a repositorios compartidos en GitHub. 22 9. ASPECTOS ADMINISTRATIVOS 9.1. RECURSOS HUMANOS. Technical Leader iOS – Jaime Andres Laino Guerra Site Manager – Esteban Molina. 9.2. RECURSOS MATERIALES. Portatil asignado para capacitación marca Dell, con Windows 10. MiniMac asignado para el entrenamiento en iOS con 10 GB de Ram, 1 TB de Disco duro, procesador 2.5 GHz. Pantalla LED 21’’, Mouse y Teclado marca Dell. 9.3. RECURSOS ECONOMICOS. El practicante recibió un salario básico por parte de la empresa, de acuerdo con lo siguiente: en el año 2016 $689.454 y en el año 2017 $737.000. 9.4. CRONOGRAMA DE ACTIVIDADES: Función/Mes Octubre Noviembre Diciembre Enero Febrero Marzo Abril Capacitación Pruebas. Capacitación Interfaz Usuario. Entrenamiento Desarrollo Aplicativos Móviles en iOS. Apoyo entrenamiento de practicantes adicionales. 23 10. RESULTADOS Y CONCLUSIONES 10.1. Competencias Obtenidas en la Empresa. - Manejo de proyectos por parte del practicante con equipos multidisciplinarios, según las necesidades de los clientes. - Implementación de pruebas de calidad según los estándares de la industria, y siguiendo las buenas practicas. - Desarrollo de Interfaces de usuario, según los estándares de la industria y la empresa, siguiendo las buenas practicas. - Desarrollo de aplicativos móviles para iOS en Xcode con Swift, siguiendo los patrones de diseño y los estándares de la industria y de Apple, para la entrega de aplicativos completos y funcionales. - Creación de documentos de capacitación, y acompañamiento a practicantes. 10.2. Aportes a la empresa. - Creación de guía de entrenamiento para practicantes en el desarrollo de aplicativos móviles para iOS en Xcode con Swift. 10.3. Logros. - Culminación de la etapa de practica. - Entrevista técnica evaluativa para la posibilidad de vinculación en la empresa. 10.4. Dificultades. - Cruce de horarios laborales con las clases de la universidad. 10.5. Recomendaciones. - El Instituto Tecnologico Metropolitano, en su programa de Tecnologia/Ingenieria en Sistemas de Información debería profundizar en el conocimiento de metodologías agiles para los estudiantes. - Los estudiantes deberían tener conocimientos de Scrum y manejo de tiempos en proyectos grandes. - Los estudiantes deberían conocer uso de repositorios en línea, manejo de Git y GitHub o algún otro tipo de versionador de proyectos. - Correcta búsqueda de recursos en línea, e interpretación de soluciones a cada proyecto. (No usar el código que se encuentra como copy-paste). 24 BIBLIOGRAFIA [1] Sitio web de la Empresa. Sistemas Colombia S.A.S. – Globant. 12-06-2017 4:00 pm. http://www.globant.com [2] Presentación del programa Tecnología en Sistemas de Información. 12-06- 2017 4:00pm. http://www.itm.edu.co/facultades/facultad-de-ingenierias- 17/formacion-1/tecnologia-en-sistemas-de-informacion-2/ [3] API. Wikipedia. 12-06-2017 4:30 pm. https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones [4] Apple. Wikipedia. 12-06-2017 4:30 pm. https://es.wikipedia.org/wiki/Apple [5] GitHub. Wikipedia. 12-06-2017 4:30 pm. https://es.wikipedia.org/wiki/GitHub [6] Gulp.js Quora. 12-06-2017 4:30 pm. https://www.quora.com/What-is-Gulp-js- used-for [7] HTML, Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/HTML [8] IOS. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/IOS [9] jQuery. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/JQuery [10] MacOS. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/MacOS [11] Sass. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/HTML [12] Sistema Operativo. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/Sistema_operativo [13] Swift. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/Swift_(lenguaje_de_programaci%C3%B3n) [14] Xcode. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/Xcode [15] Sistema Operativo Movil. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/Sistema_operativo_m%C3%B3vil [16] CSS. Wikipedia. 13-06-2017 12 m. https://es.wikipedia.org/wiki/Hoja_de_estilos_en_cascada http://www.globant.com/ 25 ANEXOS ANEXO A. HOJA DE VIDA INSTITUCIONAL. 26 27 28 29 ANEXO B. GUIAS DE SEGUIMIENTO 1. 2. 3 Y 4 30 31 32 33 34 ANEXO C. CONTRATO DE APRENDIZAJE 35 36 37 ANEXO D. CARTA DE CONSTANCIA DE PRACTICA 38 ANEXO E. CERTIFICADO CURSO PRE-PRACTICA. 39 ANEXO F. SEGURIDAD SOCIAL. 40 ANEXO G. EVIDENCIAS. Figura 1. Aplicación web desarrollada con jQuery, HTML, Sass y Gulp. Figura 2. Vistas de la aplicación móvil para iOS. 41 Figuras 3, 4 y 5. Pantallas de aplicación de entrenamiento, aplicación móvil para iOS.