Guía para acelerar el desarrollo de apps internas Descripción Haga realidad sus ideas de apps internas. Así es cómo puede hacerlo. Su negocio es único, y también lo son sus usuarios. Existe un mundo de posibilidades para satisfacer sus necesidades con innovadoras apps móviles que pueden cambiar su forma de trabajar. Si usted es como la mayoría de los equipos de desarrollo interno, entonces también tiene limitaciones. Tanto si son limitaciones financieras, organizativas o de recursos, es necesario enfocarse en entregar únicamente las apps que realmente satisfacen sus necesidades empresariales. iOS le brinda una gran manera de entregar esas apps. El desarrollo de iOS puede ser rápido y muy gratificante, ya que le permite entregar apps que brindan beneficios inmediatos a sus usuarios. Usted no tendrá que aplicar procesos onerosos y recursos excesivos para hacer una diferencia en su empresa, aunque puede significar enfocar sus esfuerzos de manera diferente en la que lo hacía con el habitual proyecto de desarrollo interno. Esta guía lo ayudará a hacer precisamente eso, ya que explora las mejores prácticas para hacer que las apps móviles sean ideales para sus usuarios, y proporciona consejos y recursos para ayudarlo a organizar su proyecto con una máxima eficiencia. Cómo usar esta guía Lista de control. Use la lista de control en cada capítulo para revisar y controlar los pasos más importantes del proceso de desarrollo. Consejos rápidos. Obtenga información importante, esencial para el proceso, en un recurso de fácil acceso. Lista de control de la implementación Al final de la fase de implementación, debe haber completado: Creación de un certificado corporativo y un perfil de aprovisionamiento Establecimiento de un servidor web o una solución para la distribución inalámbrica de apps Anuncio de su solución a los usuarios finales Consejo rápido: apps pequeñas • Las apps simples, rápidas y bien ejecutadas generarán demanda interna y reducirán el alcance y las inversiones. • Las apps pequeñas pueden crear un conjunto completo Los usuarios crearán sus propias “soluciones”, lo cual dará mucha más flexibilidad a su fuerza de trabajo. Esta guía está organizada en cuatro secciones: Planificación—definición de su proyecto, recolección de requisitos y planificación del proceso de desarrollo. Diseño—uso de los conceptos de diseño de la interfaz de iOS para asegurar que sus apps internas satisfagan a los usuarios. Desarrollo—Developing your in-house apps and getting the most out of tools from Apple, including the iOS SDK. Implementación—distribución de apps internas dentro de la empresa y establecimiento de su propio servicio inalámbrico de distribución de apps. Ejemplos. Explore ejemplos de clientes para inspirarse y conocer ideas sobre cómo otras empresas tienen apps internas para iPhone e iPad. “Tuvimos que encontrar una manera de hacer actualizaciones y cambios rápidamente, por lo que nos pasamos a un enfoque híbrido. Todo lo que eran elementos de UI nativos estaban en el teléfono, y el resto era todo páginas web.” —Giancarlo De Lio, Mt. Sinai Hospital Enlaces rápidos. Consulte estos enlaces rápidos de referencia para saber aún más sobre el desarrollo de apps internas para iOS. Enlaces rápidos Preguntas frecuentes sobre las inscripción al programa http//developer.apple.com/support/ios/enrollment.html Preguntas frecuentes sobre el OS Developer Enterprise Program http//developer.apple.com/support/ios/enterprise.html Empecemos. Descripción 2 Planificación Crear una gran app requiere un gran plan. Es importante que su equipo interno se sienta conectado con el objetivo del proyecto y que participen activamente en la formulación del plan. Cuanto más conozca su equipo el equilibrio de trabajo durante todo el proceso y los pasos que debe dar para ejecutar el plan, más eficazmente podrán crear algo extraordinario. Como parte de ese plan, usted y su equipo deben explorar lo siguiente: • Conocer los requisitos de la empresa y los usuarios. Asegurarse que su solución satisface las verdaderas necesidades de la empresa. ¿Ahorra tiempo y/o dinero, aumenta la productividad de la fuerza de trabajo o aborda un requisito que hace avanzar a su empresa? • Evaluar los recursos/infraestructura existentes. Puede maximizar recursos valiosos al readaptar algo que ya ha creado y utilizarlo para el entorno móvil. • Explorar la facilidad de implementación. Hacer lo más sencillo primero: busque proyectos con un retorno rápido, donde sea más rápido y fácil mostrar los resultados positivos de sus esfuerzos. Tener estos conceptos de planificación en mente ayudará a enfocarse en su proyecto. Este capítulo explorará los pasos que puede dar para que su proyecto esté organizado y listo para empezar. Lista de control de la planificación Consulte esta lista de control durante toda la fase de planificación de su proyecto. Al final de la fase de planificación, tendrá un ámbito de trabajo, que incluye: Inventario de todas las necesidades/requisitos potenciales de la empresa Inventario de las necesidades del usuario (para alinearlas con las necesidades de la empresa) Requisitos de la infraestructura de TI para respaldar la iniciativa del proyecto Declaración de definición de las aplicaciones que describe la app y el propósito de la solución Plazos e hitos generales del proyecto Equipo identificado de personas involucradas con roles y responsabilidades definidas Proceso de inscripción iniciado para el iOS Developer Enterprise Program Obtenga información del usuario Póngase en el lugar de sus usuarios. Pase algún tiempo en su espacio de trabajo asistiendo a algunas reuniones o yendo a un sitio de trabajo. Así obtendrá una información invaluable sobre sus hábitos de trabajo, los cuellos de botella en el flujo de trabajo, y los puntos problemáticos para el empleado o el cliente. Invite a usuarios especialmente perspicaces o apasionados a unirse a su equipo de proyecto para que brinden información continua. Identifique el problema que puede ser resuelto por una app móvil, ofreciendo el máximo valor a sus usuarios y a su empresa, en el menor tiempo posible. No trate de abarcar demasiado cuando empiece a desarrollar apps móviles. Defina claramente las ideas sobre lo que puede desarrollar en base a lo que debe desarrollar. Planificación • Diseño • Desarrollo • Implementación “Tenemos comunicación directa desde el desarrollador hasta la fuerza de ventas. Cuando salimos en visitas de ventas, nos ponemos nuestras puntas de acero y cascos, manejamos y acudimos a las visitas para ver exactamente lo que necesitan y cómo usarán la app.” —Dean Moore, Sunbelt Rentals 3 Busque algunas tareas simples que la mayoría de sus usuarios hacen con frecuencia y piense en cómo una app móvil puede hacer que esas tareas sean más fáciles. Estos son algunos ejemplos: • Una app sencilla que permite a un empleado aprobar un informe de gastos o una orden de compra sobre la marcha Ejemplo: Inventario de recursos Responder a estas preguntas puede ayudar a determinar si usted puede volver a usar la tecnología existente en su app móvil: • ¿Qué sistemas de la parte más móvil de su fuerza de trabajo emplea todos los días? • Un directorio corporativo o mapa de campus que todos pueden usar • ¿Qué es lo que más necesitan hacer los trabajadores móviles? • Un buscador de sala de reuniones que los empleados pueden usar cuando no están en sus escritorios • ¿Qué procesos manuales pueden ser automatizados o simplificados por las apps móviles? • Una app sencilla para control del tiempo que podría estar vinculada a su sistema secundario de facturación o administración del tiempo • ¿Tiene sistemas que no son móviles que podrían ser útiles para los trabajadores móviles? • ¿Qué funciones dentro de esos sistemas son usadas con más frecuencia? Hacer un inventario de sus recursos A menudo, la mejor forma de crear una app interna de manera eficaz es a través de la tecnología existente. Es posible que desee hacer un inventario de los sitios web de sus empleados y determinar si tiene sentido optimizarlos para el iPhone o el iPad, o que tenga sistemas secundarios con datos en un formulario que puede distribuir fácilmente en un contexto móvil. Además, no se olvide de las apps que ya están en el App Store: una app que atienda sus necesidades ya puede estar disponible. Revise el ejemplo de Inventario de recursos (a la derecha) para ver más preguntas que pueden ayudarlo a explorar su entorno actual. Definir su app Una vez que haya una comprensión sólida de lo que necesitan sus usuarios, así como de las posibles soluciones móviles para atender esas necesidades, usted querrá ajustar esos conceptos en un plan de proyecto conciso que puede ser compartido con los interesados en el proyecto. El elemento más importante a la hora de definir su plan de proyecto es la declaración de definición de la aplicación: una definición concisa del propósito de su app. Una declaración de definición de la aplicación puede ayudar a evitar dos problemas comunes: • Tiene una app para equipo de escritorio que desea mover al espacio móvil y, por lo tanto, una larga lista de funcionalidades que llevar al nuevo entorno. • ¿Qué tipo de acceso a los datos brindan los sistemas de su empresa? ¿Es fácil acceder a los datos a través de los servicios web? • ¿Tiene sitios web internos a los que sus empleados acceden todos los días? ¿Pueden convertirse fácilmente en apps móviles? “Fuimos por todas las diferentes líneas de productos y dijimos: ‘¿Dónde tiene sentido lo móvil? ¿Qué es lo prioritario? ¿En dónde debemos enfocarnos después?’. Y partimos desde allí. Examinamos nuestro portfolio de productos y vimos qué es lo que tenía más sentido.” —James Blomberg, General Electric • Tiene una gran idea para una nueva app móvil, pero inmediatamente salta a las funcionalidades antes de concentrarse en el propósito central de la app. Planificación • Diseño • Desarrollo • Implementación 4 Crear una definición de la aplicación Empiece por escribir una definición de la aplicación que incluya lo siguiente: • El propósito detrás de su app Ejemplo: Definición de la aplicación Así es cómo debe verse una definición de la aplicación, usando una app de control del tiempo para abogados como ejemplo: • Para quiénes es y cómo la usarán • Propósito: controlar el tiempo empleado y las horas a cobrar para cada caso de cliente • Su funcionalidad principal • Para quiénes es: abogados de la empresa que necesitan registrar las horas a cobrar Asegúrese de que su definición incluya una solución y su funcionalidad central, y no un conjunto detallado de funcionalidades. Debe tener una definición de propósito sólida que pueda usar para filtrar todas las ideas de una funcionalidad. Pregúntese si cada funcionalidad aborda el propósito previsto. Luego elija algunas funcionalidades -las más apropiadas y utilizadas- para un contexto móvil. No querrá terminar con una larga y confusa lista de funcionalidades que sean difíciles de ejecutar o no resuelvan el problema. Al mantener el foco de su app, sus usuarios podrán obtener la mayor productividad en un paquete fácil de usar. • Cómo la usarán: en cada reunión con un cliente, para iniciar y detener el tiempo facturable Planificar el proceso de desarrollo • Ejemplo de funcionalidades que no se ajustan a la definición o exceden el alcance del proyecto: alertas por nuevos casos en estudio, búsqueda de documentos para referencia legal, mapa de ubicaciones del cliente, interfaz de búsqueda de patentes Los proyectos de desarrollo de software empresarial suelen absorber una gran cantidad de recursos durante la fase de desarrollo. A través del SDK de iOS y los esquemas Cocoa Touch de alto nivel, sus equipos de desarrollo pueden pasar menos tiempo codificando y más tiempo diseñado la experiencia ideal para el usuario. Este proceso no sólo le permite entregar una app para sus empleados más rápidamente, sino también brindar soluciones que excedan las expectativas de sus usuarios. • Funcionalidad central: controlar y registrar el tiempo empleado en el sistema CRM • Declaración consolidada de la definición: app para que los abogados controlen el tiempo y las horas a cobrar para cada cliente • Funcionalidades que se ajustan a la definición: reloj de inicio/detención, seguimiento/procesamiento en un segundo plano, integración del servidor con el sistema de CRM, búsqueda de registros de clientes para asociar el tiempo registrado con el cliente/caso, sincronización en línea o sin conexión según la conectividad de red Tanto si usa un proceso de desarrollo ágil o un método de cascada más tradicional, asegúrese de presupuestar el tiempo y los recursos para invertir en el proceso de diseño como una parte central y continua del esfuerzo de desarrollo de su app. Establezca un cronograma general del proceso que imagina y los roles de cada persona en todos los pasos del camino. Esto no tiene que ser grabado en piedra, pero puede proporcionar un punto común de referencia para todos los involucrados. Consejo rápido: Tercerización Genentech sabía que las grandes ideas de apps pueden venir de cualquier lugar y persona, así que crearon un modelo de tercerización que toma las sugerencias de los empleados sobre apps que les gustaría ver desarrolladas internamente. Desde entonces, han creado la lista de las cinco principales apps solicitadas por su extraordinaria adopción y satisfacción de los usuarios. Planificación • Diseño • Desarrollo • Implementación 5 Crear un ámbito de aplicación Ejemplo: Equipo típico de un proyecto Para ayudarlo a mantenerse enfocado y a comunicar el proceso, su plan debe incluir un documento de trabajo de la aplicación central que contenga todos los recursos, metas, objetivos, plazos y resultados del proyecto. Esta es una guía importante del proyecto para todos los involucrados. El plan de trabajo puede incorporar requisitos técnicos preliminares para su app, así como diagramas de flujo o visuales que lo ayudarán a comunicar la intención del concepto de la app durante la fase de desarrollo. Código Requisitos Lanzamiento • Capacitación • Codificación de la app • Diseño y gráficos • Casos de prueba • Prueba de la unidad • Definir el proyecto • Obtener aprobaciones • Armar el equipo Diseño • Diseño de la arquitectura • Creación del plan de proyecto • Wireframes iniciales • Clasificaciones del desarrollador • Lanzamiento interno de la app • Aprobación del interesado • Plan de mantenimiento Verificación • Prueba sobre dispositivos • Pruebas automatizadas de UI • Reparación de errores • Revisión/ajuste del diseño • Revisión final Titular de una línea de negocio Interesado directo y usuario de la app Patrocinador ejecutivo Interesado directo, responsable del plan estratégico Líder de proyecto Registra los cronogramas, los plazos y el ámbito global de aplicación Director de productos Distribuye la app, administra requisitos, y alinea las necesidades del negocio con las soluciones Arquitecto de la experiencia del usuario Responsable de la estructura del modelo de interacción con el usuario y el flujo/trayecto de procesos del usuario Technical Architect Responsible for infrastructure, security, and data access models Development Manager Technical lead and project manager User Interface Designer Responsible for app visual design, graphics, and identity IT Manager Responsible for deployment and life-cycle management of apps Developer Responsible for overall technical architecture and coding Armar su equipo Como con cualquier proyecto, usted querrá armar un equipo de colaboradores donde cada uno comparta una parte del éxito y los resultados de su proyecto de app. Algunos participantes pueden ser sus clientes internos (el titular de una línea de negocio o un grupo de usuarios) y otros estarán encargados de partes específicas del propio proceso de desarrollo (diseñadores, desarrolladores, arquitectos técnicos, etc.). En última instancia, usted querrá alinear las funciones y responsabilidades del equipo con los hitos y plazos del proyecto discutidos en el paso anterior. Por ejemplo, como el diseño es un elemento central de cualquier proyecto de desarrollo de iOS, usted querrá asegurarse de que cuenta con un equipo de diseño (o con recursos similares). Diferentes grupos pueden tener distintos puntos de participación e interés en el resultado, por lo que es bueno documentar esos roles para que todos puedan mantenerse al día con las responsabilidades durante todo el proceso. Planificación • Diseño • Desarrollo • Implementación 6 Desarrollo de la tercerización Si no tiene suficientes recursos internos, considere la tercerización de todo o de una parte del trabajo de desarrollo. Los desarrolladores externos también pueden presentarle un portfolio de su trabajo que puede generar nuevas ideas. Por supuesto, para tener éxito, el equipo externo necesita un conocimiento profundo de su proyecto -todo lo que haya determinado durante el proceso de planificación- y la interacción regular con usted y su equipo interno. Discuta sus necesidades y asegúrese de que entienden cuáles son sus objetivos. Revise la declaración de definición de la aplicación, así como los detalles de su proyecto. Asegúrese desde el principio de que ha establecido una comunicación bidireccional clara y un proceso para mantenerse en contacto. Es necesario definir el papel que jugará su proveedor externo, tal como lo haría un miembro de su equipo interno. Alinee sus funciones y responsabilidades con el plan y los plazos del proyecto, para que pueda comunicar claramente de qué aspectos de su proyecto deben ocuparse. Consejo rápido: Cómo seleccionar un proveedor externo • Reúnase con varios proveedores. • Revise el trabajo existente, incluyendo apps en el App Store; mire el ranking de apps y los comentarios de los usuarios. • Evalúe las habilidades y capacidades; por ejemplo, ¿todo el código es hecho de forma interna? • Pida referencias. • Descarte la ética o los modelos multiplataforma genéricos. • Enfóquese en el diseño de la UI, el arte de alta calidad y el “recorrido” de la app. • Converse sobre el mantenimiento y el ciclo de vida de la app más allá de la versión 1.0. • Pregunte sobre la experiencia en infraestructura de TI. Lanzamiento Requisitos Responsabilidad del equipo interno Responsabilidad del desarrollo externo Diseño Código Verificación Algunos socios externos pueden ayudarlo con todos los elementos del proyecto, desde los requisitos iniciales hasta la implementación final. Otros pueden enfocarse sólo en escribir el código. Es bueno explorar esas capacidades y servicios con su proveedor externo, tanto si termina contratándolo o no. Es útil evaluar sus ventajas y también informar sobre cómo dará forma a la relación. Planificación • Diseño • Desarrollo • Implementación “Usamos contratistas externos para varias piezas diferentes. Y depende realmente de la necesidad de la app. Si hay una apariencia muy específica, hablamos con los contratistas que han hecho cosas similares, ya que sabemos que tienen experiencia en eso. A su vez, podemos brindar un producto de mayor calidad a nuestro personal o a nuestros clientes.” —Todd Schofield, Standard Chartered Bank 7 Primeros pasos con el iOS Developer Enterprise Program Una vez que ha reunido los requisitos, obtenido información de sus usuarios y definido su plan de aplicación y proyecto, el paso final antes de continuar con la fase de diseño es inscribirse en el iOS Developer Enterprise Program. Este programa ofrece un proceso completo e integrado para el desarrollo, la prueba, y la distribución de apps de iOS a los empleados dentro de su organización. Una vez que se ha inscripto en el programa, podrá acceder a las herramientas y recursos que aparecen en la lista de la derecha. Esta es una descripción que lo ayudará a entender el proceso de inscripción y a dar sus primeros pasos. Para más detalles, visite http://developer.apple.com/programs/ios/enterprise. Requisitos de inscripción Antes de inscribirse al programa, debe cumplir con lo siguiente: • Debe distribuir las apps de iOS únicamente dentro de su compañía u organización. El iOS Developer Enterprise Program está dirigido a desarrolladores que quieren desarrollar y distribuir sus apps de iOS a los empleados dentro de su compañía u organización. • Su compañía debe tener un número de Dun & Bradstreet (D-U-N-S). Deberá indicar este número a Apple durante el proceso de inscripción. También debe conocer el nombre legal de su compañía u organización. Para solicitar u obtener un número D-U-N-S, visite https://eupdate.dnb.com/requestoptions.asp. • Debe tener la autoridad para que su empresa cumpla con los acuerdos legales. Durante la inscripción deberá suministrar un contacto legal que pueda verificar que usted tiene la autoridad para que su empresa cumpla con el acuerdo de licencia del iOS Developer Program Enterprise. • Debe tener la capacidad técnica de firmar aplicaciones en Xcode. Como miembro, usted será el “Agente” de su equipo, responsable por las tareas de aprovisionamiento de apps y administración técnica de cuentas. Descripción: Recursos del iOS Developer Enterprise Program Como miembro del iOS Developer Enterprise Program, accederá a los siguientes beneficios: • Acceso al iOS Dev Center • Acceso al SDK de iOS • Software y herramientas preliminares • Capacidad de preparar a su equipo de desarrollo en la sección Team del Member Center. • Acceso a los Foros de Desarrolladores de Apple • Incidentes de soporte técnico (dos por año de membresía en el programa) • Capacidad de probar aplicaciones directamente en iPad, iPhone o iPod touch • Distribución específica de su app en hasta 100 dispositivos registrados • Distribución interna a un número ilimitado de dispositivos de empleados en la empresa Consejo rápido: Cómo armar su kit de herramientas de desarrollo El requisito básico para el SDK de iOS es una Mac con Intel. Los desarrolladores suelen elegir una MacBook Air o MacBook Pro por la portabilidad y la libertad que brindan. Sin embargo, una iMac o una Mac mini son opciones igual de buenas, especialmente si tiene un laboratorio de desarrollo interno. También, asegúrese de que ha probado los dispositivos disponibles. Si quiere garantizar una compatibilidad completa, asegúrese de contar con hardware de la generación anterior, como el iPhone 3GS o el iPad de primera generación. Descripción del proceso de inscripción 1.Regístrese como un desarrollador de Apple. Para iniciar su inscripción, deberá registrarse con Apple creando un nuevo Apple ID específico para este programa. Es útil configurar una dirección de correo electrónico específicamente para esta cuenta, para que su organización pueda asignarla a diferentes personas, si es necesario. 2. Ingrese la información legal, de contacto y de la empresa. Esta información es necesaria para validar su estado como entidad comercial. El requisito principal es un número D-U-N-S válido. Asegúrese de que el nombre y la dirección de su compañía coinciden con la información mencionada Planificación • Diseño • Desarrollo • Implementación 8 en la base de datos de Dun & Bradstreet. Como parte del proceso de verificación de la identidad, quizás deba suministrar a Apple algunos documentos comerciales, como artículos de incorporación, un acuerdo operativo y una licencia comercial. 3. Enviar a Apple. Una vez que ha enviado su inscripción, podrá consultar el estado ingresando en el Member Center para desarrolladores http://developer.apple.com/membercenter. Ingrese con el Apple ID creado en el paso 1. Como parte de este paso, Apple revisará la app y se pondrá en contacto con usted o con su equipo legal, si es necesario. 4. Aceptar el acuerdo de licencia del Programa Empresarial. Para seguir con su inscripción, deberá aceptar los términos de la licencia del programa. Podrá revisar esos términos y compartirlos con su equipo legal en ese momento. 5. Comprar el programa. Una vez aceptados los términos, recibirá instrucciones sobre cómo comprar la membresía a través del Apple Online Store. Si desea utilizar una orden de compra, contacte a su distribuidor local de Apple para saber si cuenta con opciones de compra institucional. 6. Activar su membresía. Recibirá una confirmación de orden una vez que haya comprado el programa. A las 24 horas, recibirá un correo electrónico de activación de Apple que incluye un código para activar su membresía. Una vez activada, podrá acceder a todos los recursos del programa. Cómo armar su equipo Descripción: Armado del equipo Los agentes y los administradores pueden añadir nuevos Miembros, que pueden tener un rol de Administrador o Miembro, ingresando en la pestaña People del Apple Developer Member Center. Ingrese en la sección Invitations y haga clic en el botón Invite Person para invitar a nuevos Miembros a unirse a su equipo. Agente Administradores Miembros Configuración y distribución del administrador Configuración y distribución del miembro Desarrollo Certificado de distribución Certificados de desarrollo Certificados de desarrollo Aprovisionamiento empresarial Aprovisionamiento de desarrollo Aprovisionamiento de desarrollo Una vez que su compañía esté inscripta en el iOS Developer Enterprise Program, deberá armar su equipo de desarrollo en la sección Team del Member Center. Roles y responsabilidades del equipo Un equipo de desarrollo consiste de personas con los siguientes roles: Agente. El contacto principal del equipo de desarrollo, responsable por aceptar todos los acuerdos del iOS Developer Program; también es el usuario principal inscripto en el programa. Responsable por administrar el certificado de distribución en la empresa, usado para distribuir las apps a los empleados para su implementación general. Administradores. Los administradores dirigen sus propios equipos y certificados de desarrollo. Requiere la participación del Agente para administrar la distribución en la empresa. Miembros. Desarrolladores principales dentro de la organización. Los miembros reciben la aprobación de los administradores para distribuir apps y dispositivos para prueba y desarrollo. Requiere la participación del Agente para administrar la distribución en la empresa. Planificación • Diseño • Desarrollo • Implementación Consejo rápido: Cómo registrar dispositivos para desarrollo Los administradores pueden ingresar varios ID de dispositivos a la vez cargando un archivo .deviceids generado por la Utilidad de Configuración del iPhone. Dentro de la Utilidad de Configuración del iPhone, seleccione los dispositivos que desea cargar y haga clic en el botón Export. Esto creará un archivo. Visit www.apple.com/support/iphone/enterprise to download the iPhone Configuration Utility. 9 Recursos de aprendizaje Una vez que ha armado su equipo, visite el iOS Dev Center en http://developer.apple.com/devcenter/ ios donde encontrará una gran cantidad de recursos. Puede marcarlos como favoritos o guardarlos como su página principal para todo lo que tenga que ver con desarrollo. Estos son algunos de los grandes recursos disponibles. Foros Conéctese con otros desarrolladores de la empresa y comparta ideas y mejores prácticas. Siempre es útil tener una comunidad de desarrolladores con ideas afines al alcance de su mano. Biblioteca de referencia Una enciclopedia, un libro de texto y un programa de estudios, todo en uno. Permite hacer búsquedas, está dividida en categorías y le brinda toda la información directa que necesita para crear apps. Código de muestra Use las muestras para inspirar el desarrollo de sus propias apps. Incluso puede copiar y pegar el código de muestra directamente en su proyecto. “Las muestras en Apple.com realmente permiten ver una funcionalidad específica, como “drilldown” o mapas, de forma más simple, o integrarse con una base de datos SQL local.” — Keith Debickes, JM Family Enterprises, Inc. Enlaces rápidos Preguntas frecuentes sobre la inscripción al programa http://developer.apple.com/support/ios/enrollment.html Preguntas frecuentes sobre el iOS Developer Enterprise Program http://developer.apple.com/support/ios/enterprise.html Guías de inicio Si es nuevo en lo que respecta al desarrollo de iOS, estas guías brindan a su equipo los conceptos fundamentales y las mejores prácticas de desarrollo. Mirando hacia adelante Una vez finalizado el proceso de planificación, vuelva a consultar la lista de control de la planificación al principio de este capítulo. Si ha completado todos los pasos, es posible que cuente con soporte ejecutivo, compromisos de su equipo y un proyecto claro que todos pueden seguir. Su equipo será posicionado para la siguiente fase del proceso: explorar las mejores prácticas de diseño y desarrollo, y establecer un entendimiento básico de los conceptos de desarrollo de iOS. Planificación • Diseño • Desarrollo • Implementación 10 Diseño El diseño importa. Crear una app básica para iPhone o iPad es fácil. Sin embargo, las apps más exitosas llevan un poco más de esfuerzo. ¿Por qué las aplicaciones más exitosas son atractivas? Tienen un diseño atractivo y usan los colores y el audio de un modo excelente, son fáciles de usar y funcionan como se espera, involucran al usuario y hacen que vuelva una y otra vez. Al prestar atención al diseño cuando crea una nueva app o mejora una app existente, podrá aumentar su atractivo, crear una experiencia de usuario más interesante y hacer que su app sea simple de usar. Este capítulo describe algunas estrategias que puede usar para ajustar su idea, revisar sus opciones de diseño y determinar el diseño de una app que hará que sus usuarios sean más productivos. Lista de control del diseño Al final de la fase de diseño, debe haber logrado lo siguiente: Leer la Guía de Interfaz Humana de iOS de Apple Establecer una lista concisa de funcionalidades que esté directamente alineada con la declaración de definición de la aplicación Priorizar una lista de objetos, tareas y conceptos, y las relaciones entre sí Crear un conjunto básico de wireframes y composiciones en bruto para visualizar el recorrido de la app Diseño táctil Diseñar una interfaz de usuario para interactuar con el mouse es muy diferente a diseñar para el tacto. A medida que empieza a diseñar una app, querrá entender por qué los dispositivos iOS son únicos. Pase algún tiempo con un iPhone o iPad para familiarizarse con la interacción y las convenciones de diseño de la interfaz. En un nivel básico de la interacción táctil, si quiere representar un botón seleccionable para un dedo, necesita más pixeles que para el ratón en un equipo de escritorio. Por ejemplo, el tamaño mínimo práctico para los elementos táctiles de la interfaz de usuario es de 44 x 44 puntos. Elementos como los menús desplegables o las barras de desplazamiento, que son comunes en un equipo de escritorio, no funcionan bien en un dispositivo móvil que está diseñado para ser táctil. Lea la Guía de Interfaz Humana La Guía de Interfaz Humana de iOS describe los principios que lo ayudarán a diseñar una interfaz y una experiencia de usuario superlativas para su app de iOS. Estos principios son tan importantes para las apps internas de la empresa como para las apps creadas para el App Store. Planificación • Diseño • Desarrollo • Implementación “Una de las maneras de garantizar la consistencia en sus apps es seguir la Guía de Interfaz Humana (GIH) de Apple. Realmente ayuda a asegurar que tenemos consistencia en todas las apps. Existen muchos estilos de diseño diferentes que podemos elegir, y también nos aseguramos que aquellos que tienen un tema consistente se ejecuten hasta el final. Pero seguir la GIH es muy importante para nosotros.” —Todd Schofield, Standard Chartered Bank 11 Simplificar Muchas veces, las apps internas de su empresa se derivan de un entorno existente de apps para equipos de escritorio o están basadas en sistemas de líneas de negocio de los cuales dependen sus usuarios. Es fácil caer en la trampa de tratar de traer todas las funcionalidades de la aplicación de escritorio al dispositivo móvil. Normalmente, este enfoque no puede entregar el tipo de experiencia que se espera en un dispositivo móvil. Recuerde que los usuarios realizan tareas de forma diferente en los dispositivos móviles y que ciertas tareas no son prácticas para un dispositivo móvil. Las tareas pequeñas se adaptan mejor al desarrollo móvil, por lo que es importante seguir filtrando funcionalidades a través de la declaración de definición de la aplicación, a medida que mejora su app. Consejo rápido: apps pequeñas • Las apps simples, rápidas y bien ejecutadas generarán demanda interna y reducirán el alcance y las inversiones. • Las apps pequeñas pueden crear un conjunto completo. Los usuarios crearán sus propias “soluciones”, para que su fuerza de trabajo sea mucho más flexible. Estas son algunas preguntas que puede hacer acerca de los elementos de la interfaz de usuario en su app, que lo ayudarán a simplificar el diseño: • ¿Tiene sentido que el elemento esté en pantalla? • ¿El elemento permite acceder a la funcionalidad crítica? • ¿Se usa frecuentemente? ¿Casi siempre? • ¿El usuario necesita el elemento cada vez que hace una selección? • Teniendo en cuenta el flujo de la app, ¿es importante mostrar el elemento ahora? Si la respuesta a cualquiera de estas preguntas es no, tal vez pueda hacerlo sin el elemento, o desee considerar la combinación de la funcionalidad con otra cosa. Los usuarios del iPhone y el iPad están acostumbrados a la apariencia y el comportamiento de las apps incluidas en esos dispositivos. Usted no querrá imitar cada detalle de las apps integradas, pero es útil comprender los patrones de diseño que siguen y considerar cómo se aplican esos patrones a sus propias apps en un diseño sencillo, funcional y fácil de usar. Investigue estas aplicaciones para conocer controles comunes, situaciones táctiles (como pellizcar y hacer zoom), y animaciones, y empiece a pensar en cómo podría aplicar esos conceptos a su propia app de forma consistente. Planificación • Diseño • Desarrollo • Implementación “Tenemos una filosofía global de que las apps internas deben ser tan elegantes y bellas como la mejor app comercial. Así, cuando empezamos a ver cómo diseñar la UI, no sólo quisimos resolver el problema de forma funcional, sino también de una forma realmente limpia.” —Mark McWilliams, Razorfish 12 Priorizar Cuando una app de iOS establece y mantiene el foco en su tarea principal, es gratificante y divertida de usar. Cada parte de su app debe ser ajustada según su propósito. Crear una lista de objetos, tareas y conceptos -y luego ordenarlos en base a la relevancia del propósito o la tarea principal de sus appsayudará a generar una interfaz de usuario organizada y específica. Este paso también ayudará a pensar sobre el flujo de trabajo o el proceso de interacción de su app, que informará las decisiones de diseño de su interfaz de usuario. Consejo rápido: Pantalla Retina La pantalla Retina en el iPhone 4 le permite mostrar versiones en alta resolución de su arte e íconos. Si amplía su diseño existente, perderá la oportunidad de ofrecer las bellas y cautivadoras imágenes que esperan los usuarios. En su lugar, vuelva a diseñar sus recursos de imagen existentes para crear versiones más grandes y de mejor calidad, con más texturas y detalles, y más realistas. Inventario de objetos, tareas y conceptos • Objetos. Estos son los principales elementos funcionales de su app. Por ejemplo, en una app de calendario, habrá cosas como días, meses, citas y recordatorios. • Tareas. Son las acciones que suelen ser realizadas sobre objetos, por ejemplo, filtrado, planificación, edición y creación. • Conceptos. Estos son flujos de trabajo o, en algunos casos, una serie de tareas relacionadas que forman un concepto mayor. A partir de nuestro ejemplo de calendario, un concepto podría ser la búsqueda, lo que implica varias tareas. Objetos Tareas Conceptos Calendarios Planificación Días Crear Buscar Semanas Editar Filtrar Meses Buscar Búsqueda Citas Recordatorios Una vez que ha creado esas listas, empezará a ver algunas relaciones entre los elementos dentro de cada categoría. Esto ayudará a agrupar objetos, tareas y conceptos relacionados en una jerarquía que debe simplificar la forma de presentarlos al usuario. Planificación • Diseño • Desarrollo • Implementación 13 Piense en forma jerárquica Ponga los elementos más utilizados (usualmente los de más alto nivel) cerca de la parte superior de la pantalla, donde son más visibles y fáciles de alcanzar. A medida que el usuario explora la pantalla de arriba hacia abajo, los elementos deben aparecer progresivamente, según el siguiente criterio: • Frecuencia de uso: los elementos más utilizados deben aparecer en lo más alto, y los menos usados, en lo más bajo. • Importancia para el usuario: los elementos más importantes deben aparecer en lo más alto. • Énfasis visual: los elementos que quiere que aparezcan de forma destacada en su diseño deben estar en lo más alto. El mismo enfoque es válido para la información en su app. Se debe avanzar por la pantalla desde el material más general en la parte superior a la más específica en la parte inferior. Optimizar Consejo rápido: Cómo bosquejar su app Iterar sobre el papel. A menudo, la mejor manera de articular su visión del diseño es crear bosquejos al inicio del proceso de diseño, que ayudan a dar forma y a ajustar su diseño sin necesidad de desarrollar código. Puede comprar plantillas útiles en línea que lo ayudarán a producir bocetos rápidos con ciertos detalles. Iterar con una app. También hay apps en el App Store, como iMockup y App Layout, que lo ayudarán a crear maquetas de interfaces de usuario para iOS con controles y vistas estándar. Un buen diseño es un proceso repetitivo. Cuanto más ejercite sus conceptos de diseño de la interfaz desde el principio del proceso (antes de escribir el código), mejor será el resultado final. También es importante optimizar su diseño para su público y dispositivo específicos. Las grandes apps compensan los conceptos de interacción del usuario que pueden variar según las características específicas del dispositivo. La optimización de su app tiene que ver con el ajuste y la repetición de esos conceptos, para que el resultado final satisfaga a sus usuarios. Repetir Antes de que pueda comenzar a crear con éxito una app, es necesario un conjunto sólido de proyectos. Puede empezar con algunos bosquejos y luego ajustar sus ideas con el tiempo. Cada vez, descubrirá más sobre cómo su usuario puede interactuar con la app, así como nuevas ideas que puede incorporar, todo sin gastar tiempo, dinero o recursos en desarrollo real. Considere la posibilidad de dibujar o bosquejar todo el flujo de su app, de principio a fin, para tener una idea completa de la experiencia del usuario, así como de la funcionalidad creada por su diseño. Planificación • Diseño • Desarrollo • Implementación 14 iPad vs. iPhone Si está planificando desarrollar una app para el iPhone y el iPad, debe adaptar su diseño a cada dispositivo. Mientras que la mayoría de los elementos de la interfaz de usuario individuales están disponibles en todos los dispositivos, la disposición general suele diferir drásticamente. Por ejemplo, los usuarios tienden a esperar más diseños de alta fidelidad en las apps del iPad que en las apps del iPhone. No se recomienda ampliar una app de iPhone para que llene la pantalla del iPad. En su lugar, usted necesita hacer que su app para iPad involucre al usuario de manera que le permita aprovechar al máximo su pantalla y capacidades más grandes. También hay que tener en cuenta que el iPhone 4 es compatible con gráficos de mayor resolución a través de la pantalla Retina, que requiere el doble de resolución gráfica. También hay diferencias en los gestos disponibles y las formas en que se maneja la rotación. Los dispositivos también son compatibles con diferentes elementos de UI. Por ejemplo, los controladores de vistas emergentes o divididas son específicos del iPad. “El iPad definitivamente nos dio más espacio, el cual queríamos aprovechar al máximo. Esa fue la clave para nosotros. Si no fuese así, tendríamos que hacer todo tres veces más grande, tener todos esos pixeles, pero debemos asegurarnos que estamos usando ese espacio apropiadamente…Si vamos a traducir algo de un iPhone a un iPad, tenemos que volver a pensarlo. Probablemente el 60 por ciento de la funcionalidad principal se mantiene, pero ¿qué otra cosa podemos hacer? ¿cómo podemos hacer que sea más útil, ¿cómo podemos tener menos clics o menos pantallas para llegar a todo?”. Apps Universales —James Blomberg, General Electric El SDK de iOS permite el desarrollo de aplicaciones Universales. Una app Universal ha sido optimizada para ejecutarse en todos los dispositivos iOS . Básicamente se trata de una app de iPhone y de una app de iPad creada como un único binario. Una app Universal puede determinar en qué dispositivo se está ejecutando y brindar la mejor experiencia para ese dispositivo. Las apps Universales bien diseñadas aprovechan las funcionalidades de hardware del dispositivo, brindando la selección adecuada de elementos de la interfaz de usuario, y emplea sólo la funcionalidad que es compatible con ese dispositivo. Cuando diseñe una app Universal para iOS, es importante pensar en cómo separar la interacción del usuario del código subyacente en la aplicación. Las clases y API del SDK de iOS utilizan un paradigma de controlador de vista de modelo (CVM) que impulsa una separación clara de los datos y la lógica de su app respecto a las vistas usadas para presentar esos datos. Por ejemplo, la creación de su interfaz de usuario mediante Interface Builder le da a su proyecto este tipo de flexibilidad (ver el próximo capítulo). El primer paso en la creación de una app Universal es crear diseños de interfaz de usuario para cada factor de forma: un diseño para iPad y otro para iPhone/iPod touch. Gran parte de su diseño se verá afectado por las funcionalidades que quiera exponer en cada uno de los diferentes factores de forma. Piense en cómo los usuarios pueden usar la orientación o los gestos de forma diferente. Considere las capacidades de hardware, como la cámara, en cada dispositivo. Las diferencias en cómo los usuarios usan el dispositivo deben mostrarle cómo abordar un diseño consistente para cada uno y dónde puede necesitar codificación. Planificación • Diseño • Desarrollo • Implementación 15 Accesibilidad En un entorno empresarial es importante brindar el mismo acceso a las herramientas y tecnologías móviles a todos los usuarios. iOS incluye varias funcionalidades predeterminadas para que todos puedan acceder y usar el dispositivo fácilmente. No obstante, también es importante optimizar sus apps internas para mejorar la accesibilidad y que los usuarios con discapacidades visuales, auditivas y físicas puedan usar y disfrutar su app. iOS incluye la interfaz de programación de Accesibilidad de IU, una API liviana que ayuda a que una app brinde toda la información que VoiceOver necesita para describir la interfaz para que las personas con problemas visuales puedan usar la app. La interfaz de programación de Accesibilidad de IU le permite agregar una capa delgada de funcionalidad que altera la apariencia de su app o interfiere con su lógica principal. Esto significa que, cuando use controles y vistas estándar, mucho del trabajo para que la app sea accesible ya estará hecho. Dependiendo del nivel de personalización en su app, hacerla accesible puede ser tan simple como ofrecer descripciones precisas y útiles de los elementos accesibles de su interfaz de usuario. El SDK de iOS también brinda esas herramientas, que lo ayudarán a que su app sea accesible: Consejo rápido: Cómo crear soporte para VoiceOver Hacer que su app de iOS sea accesible para los usuarios de VoiceOver es lo correcto. También puede consultar las pautas de accesibilidad creadas por diversos órganos de gobierno. Para asegurarse que los usuarios de VoiceOver pueden usar su app, no necesita cambiar el diseño visual de su interfaz. Cuando use elementos estándar, tendrá poco (o ningún) trabajo adicional. Sin embargo, puede que tenga que proporcionar alguna información descriptiva sobre las vistas y los controles de su interfaz de usuario. Cuanto más personalizada sea su interfaz de usuario, más personalizada será la información que debe suministrar, para que VoiceOver pueda describir con precisión su app. • Una ventana de inspector de Interface Builder, que permite suministrar información descriptiva sobre accesibilidad fácilmente, mientras se diseñan archivos nib • Accessibility Inspector, que muestra la información de accesibilidad incluida en la interfaz de usuario de la app y le permite verificar esta información cuando ejecuta su app en el Simulador de iOS Además, puede usar VoiceOver para probar la accesibilidad de su app Mirando hacia adelante Con una base de mejores prácticas de diseño de IU, estará listo para pasar a la fase de desarrollo de su proyecto. Sin embargo, como puede recordar del capítulo de planificación, el diseño es un proceso iterativo que continúa durante todo el ciclo de vida de desarrollo de la app. La ejecución de un buen diseño con foco en la experiencia del usuario debe ser una estrategia consciente, incluso cuando su equipo de desarrollo comienza a generar el código. El conjunto de herramientas y los conceptos discutidos en el próximo capítulo lo ayudará a hacer precisamente eso: desarrollar un código sólido y, al mismo tiempo, entregar apps bien diseñadas a sus usuarios. Planificación • Diseño • Desarrollo • Implementación 16 Desarrollo Con iOS, puede brindar contenidos e información de forma simple pero poderosa, para ayudar a que sus empleados sean más productivos. Con el SDK de iOS, su equipo de desarrollo estará creando apps con las mismas herramientas que los ingenieros de Apple usan para desarrollar el OS y las apps incluidos en el iPhone y el iPad. Esto le permite crear apps que se ven y responden a sus usuarios de forma elegante y con una eficiencia máxima. A través de las herramientas de iOS puede usar esquemas de alto nivel que lo ayudarán a aprovechar al máximo la plataforma. Exploraremos las API esenciales para el desarrollo interno que le darán ideas para integrar esas capacidades en sus apps. También discutiremos cómo puede utilizar las tecnologías a través de HTML5, CSS y JavaScript. Con las funcionalidades de seguridad adecuadas incluidas en su solución, estas tecnologías funcionan en conjunto para crear una base poderosa y segura que atiende las necesidades de su empresa. Lista de control del desarrollo Al final de la fase de desarrollo, debe tener un conocimiento básico de: Las herramientas del SDK de iOS, como Xcode, Interface Builder, Instruments y Simulator Las principales API y esquemas para el desarrollo interno en la empresa Desarrollo de apps web La arquitectura de iOS para acceder a los datos en sistemas de administración Mejores prácticas para proteger sus apps internas Prueba, depuración y validación del desempeño de su app Finalmente, antes de considerar que su app está lista para los usuarios, querrá probarla y depurarla a fondo. También querrá validar su desempeño en diferentes dispositivos. Discutiremos cómo las herramientas de iOS ayudan a realizar esas tareas y sugieren mejores prácticas para asegurar que su app funcione tal como fue previsto. Desarrollo nativo Cuando se trata de desarrollo interno estamos hablando de la ejecución de la visión del diseño de su app, aprovechando al máximo las capacidades del dispositivo, en un entorno organizado y eficiente. El SDK de iOS incluye Xcode, el IDE para codificación, desarrollo y depuración de su app; Interface Builder, para la creación de la IU; Instruments, para analizar el comportamiento y el desempeño, y decenas de herramientas adicionales. “Según la experiencia de mi equipo, el SDK y Xcode son herramientas de programación fantásticas y muy fáciles de usar, incluso para desarrolladores que no tienen experiencia con la Mac.” —Hans-Christian Pahlig, Axel Springer Xcode es el centro de su experiencia de desarrollo. Xcode brinda finalización de código, análisis de estadísticas en tiempo real y depuración instantánea en el dispositivo. Interface Builder permite crear un prototipo de su app fácilmente. Arrastre elementos para crear una interfaz de usuario completa, sin escribir código. Con Xcode 4, Interface Builder está integrado directamente en el IDE de Xcode. Instruments recolecta y muestra datos, como uso de disco, memoria o CPU, en tiempo real, simplificando la localización de áreas problemáticas. Planificación • Diseño • Desarrollo • Implementación 17 The Simulator ejecuta su app casi como lo haría en el dispositivo iOS, para que pueda verificar y probar su código directamente en su entorno de equipos de escritorio. API esenciales para desarrolladores internos El SDK de iOS ofrece herramientas que ayudan a escribir casi cualquier funcionalidad de app que puedas imaginar. Muchas de estas herramientas también incluyen código de muestra y recursos que lo ayudarán a empezar rápidamente. Revisemos algunas de las miles de API disponibles en el SDK. Sólo una mirada rápida puede alimentar su imaginación cuando vea la sorprendente gama de capacidades que puede incorporar fácilmente a sus apps internas. Multitarea. Los desarrolladores tienen acceso a siete servicios de multitarea que permiten realizar las tareas en un segundo plano mientras preserva el desempeño y la duración de la batería. Estos incluyen funciones como Voz sobre IP, audio de fondo, servicios de localización en segundo plano, notificaciones push y locales, finalización de tareas y alternancia rápida entre aplicaciones. Xcode es el núcleo de su experiencia de desarrollo, brindando finalización del código, análisis estadístico en tiempo real y depuración instantánea en el dispositivo. Notification push. El servicio de Notificaciones Push de Apple brinda una forma de alertar a sus usuarios cuando hay nueva información, incluso cuando su app no se está ejecutando. Enivie notificaciones de texto, dispare alertas audibles o agregue un indicador numérico en el ícono de su app. Accesorios. Las aplicaciones pueden comunicarse con los accesorios tanto a través del conector Dock de 30 pines como de forma inalámbrica usando Bluetooth. Cree una app que recupere datos de sensores externos o incluso controle los accesorios con una sofisticada interfaz Multi-Touch. Cree una app de inventario para su lector de código de barras, o cree una aplicación que registre y rastree las lecturas desde un monitor de pulsaciones adjunto. También puede crear sus propios protocolos personalizados para intercambiar datos y comandos con su app. Para saber cómo puede agregar soporte para apps de iOS, visite http://developer.apple.com/programs/mfi. Servicios basados en localización. Use el esquema Core Location para determinar la latitud y longitud actual de un dispositivo, lo que permite configurar y programar la entrega de eventos relacionados con la localización. El esquema usa el hardware disponible para triangular la posición de un usuario en base a la información de señales cercanas. iOS 4 incluye mejoras en los mapas a través de la API de MapKit. MapKit brinda soporte para panorámicas y zoom, anotaciones personalizadas, descripción de ubicación actual y hasta geocodificación para resaltar regiones del mapa y mostrar información adicional. Planificación • Diseño • Desarrollo • Implementación 18 Integrando datos compartidos. iOS brinda poderosas opciones de conectividad para compartir información entre apps. A través de sintaxis basada en URL, podrá acceder a los datos desde la Web, así como iniciar acciones en otras apps instaladas, como Mail, Calendario, Contactos, etc. Su propia app también puede declarar un único esquema de URL, permitiendo que cualquier aplicación inicie su app. • Mail. iOS le permite presentar una interfaz de composición de Mail o SMS estándar desde dentro de su app. En ambos casos, mediante programación, puede preconfigurar el mensaje con destinatarios y contenido que el usuario puede editar antes de enviarlo. Los mensajes de correo y SMS salientes son manejados automáticamente por las colas de Mail y Mensajes del sistema. • Contactos. Con la API de Agenda para datos compartidos su app puede crear un nuevo contacto u obtener info de un contacto existente. Al acceder a la lista integrada de contactos su app puede permitir que un usuario asocie un contacto o la dirección de una empresa con una tarea o proceso de la aplicación. • Calendarios. Con el Kit de Eventos, las apps de iOS pueden acceder a información de eventos desde la base de datos del Calendario de un usuario. Busque eventos en base al rango de fechas o a un identificador único, reciba notificaciones cuando cambien los registros de eventos, y permita a los usuarios crear y editar los eventos para cualquiera de sus calendarios. Los cambios realizados en los eventos de la base de datos del Calendario de un usuario con el Kit de Eventos son sincronizados automáticamente con el calendario apropiado, incluyendo calendarios alojados en servidores de CalDAV y Exchange. Interface Builder, que está integrado directamente en el IDE de Xcode 4, permite crear un prototipo de su app fácilmente. Arrastre elementos para crear una interfaz de usuario completa, sin escribir código. • Fotos. El Kit de IU brinda acceso a la biblioteca de fotos del usuario. La interfaz de selección de fotos brinda controles para navegar la biblioteca de fotos del usuario y seleccionar una imagen para volver a su app. También tiene la opción de habilitar los controles de edición para usuarios, que permiten ampliar y recortar la imagen devuelta. También puede ser usado para brindar una interfaz a la cámara, para que las fotos tomadas puedan ser cargadas directamente en su app. Core Animation Audio y video. Las tecnologías multimedia en el SDK de iOS le permiten implementar capacidades sofisticadas de audio y video dentro de su app. El esquema Media Player permite la reproducción a pantalla completa de archivos de video, y el soporte integrado para transmisión de HTTP en vivo permite usar fácilmente los servidores web estándar para transmitir contenido de audio y video de alta calidad a través del aire. Su app también puede usar Core Audio para generar, grabar, mezclar, procesar y reproducir audio en su app. Use Core Animation para añadir animaciones fluidas y respuestas dinámicas a la interfaz del usuario, o use OpenGL ES para gráficos 2D y 3D de alto desempeño. Planificación • Diseño • Desarrollo • Implementación 19 Desarrollo web Las apps web -una categoría completamente nueva de aplicaciones móviles- están abriendo un mundo de posibilidades para las empresas. Las apps web son páginas web con diseño personalizado que utilizan HTML, CSS y JavaScript para ofrecer una experiencia profunda con la app para los usuarios de iOS. Además, al crear apps con HTML, usted puede desarrollar apps web en cualquier entorno de desarrollo web. Sólo tiene que alojar una página web para implementar una app web y podrá administrar los cambios o actualizaciones desde el servidor donde reside la página. Echemos un vistazo rápido a las tecnologías que usa para crear apps web para dispositivos iOS. HTML5 es la última especificación de HTML, el principal estándar que determina cómo interactúa el contenido web con los navegadores modernos. Con HTML5, los desarrolladores pueden integrar contenido multimedia directamente en las páginas web estándar, lo que reduce el tiempo de desarrollo y proporciona una interactividad completa para la creación de apps web. Las animaciones y efectos visuales de CSS3 permiten crear interfaces gráficas de usuario sofisticadas para apps web. Los efectos visuales disponibles van desde gradientes, máscaras y reflejos, hasta efectos 2D y 3D más complejos. Cuando combina estos efectos visuales con situaciones táctiles podrá crear apps web que interactúen de forma parecida a las apps nativas en el iPhone y el iPad. WebKit es un motor de búsqueda web de código abierto. Como el núcleo de Safari en el iPhone y el iPad, WebKit simplifica el desarrollo web y acelera la innovación. WebKit, un conjunto de herramientas de código abierto, es de uso gratuito y proporciona el motor HTML para apps web en el iPhone y el iPad. El SDK de iOS incluye Dashcode. Su entorno integrado le permite diseñar, codificar e, incluso, probar las apps web. Dashcode también ofrece plantillas prácticas que lo ayudarán a dar vida a su app web. El Simulador ejecuta su app casi como lo haría en el dispositivo iOS real, para que pueda verificar y probar su código directamente en su entorno de equipos de escritorio. Además, como el Simulador incluye el navegador Safari para iOS, también podrá probar y verificar sus apps web antes de la implementación. “Una de las cosas que podemos hacer en el SDK es entrar y realmente hacer cambios rápidos. Es algo que puede ser hecho en pantalla muy rápidamente, y luego, con el Simulador, podemos verlo casi al instante. Y para nosotros, esto es capaz de brindar información directa.” —Todd Schofield, Standard Chartered Bank Safari 5 para Mac y Windows incluye un poderoso conjunto de herramientas para que pueda depurar, ajustar y optimizar un sitio web, y obtener un mayor desempeño y compatibilidad, sea más fácil. Para acceder a ellas, active el menú Desarrollo en las preferencias de Safari de su Mac o PC. Planificación • Diseño • Desarrollo • Implementación 20 Integrando contenido web en apps nativas Con el SDK de iOS, también puede brindar acceso a contenido web dentro de una app de iOS usando un elemento llamado Web View. Esto hace que sus aplicaciones web puedan acceder a funcionalidades de iOS, como las notificaciones push, la cámara integrada, la animación 3D y mucho más. Como beneficio, podrá implementar nuevas mejoras en su app con ajustes en su servidor web, sin tener que volver a implementar la app. La integración del contenido web en sus apps nativas también es una forma ideal de reforzar el desarrollo nativo sin reducir o descartar sus actuales inversiones en desarrollo web. Acceso a los sistemas administrativos En muchos casos, su app empresarial necesitará conectarse a los sistemas administrativos y almacenes de datos existentes. Mientras que brindar una excelente experiencia al usuario es la principal prioridad de cualquier app móvil exitosa, también debe prestarse la misma atención a los detalles y la arquitectura para integrar la experiencia del cliente con los datos de los servidores secundarios. El SDK de iOS cuenta con una poderosa colección de herramientas y esquemas para almacenar, acceder y compartir datos que residen en los servidores corporativos. “Tuvimos que encontrar una manera de hacer actualizaciones y cambios rápidamente, por lo que nos pasamos a un enfoque híbrido. Todo lo que eran elementos de UI nativos estaban en el teléfono, y el resto era todo páginas web”. —Giancarlo De Lio, Mt. Sinai Hospital Servicios web Con el SDK de iOS, podrá trabajar con datos XML para la comunicación entre su aplicación cliente y el servidor. Los archivos XML brindan un formato estructurado liviano que su app puede leer y escribir fácilmente, y que ya está listo para el sistema de archivos de iOS. Si está usando SOAP, puede crear y analizar sus propias transacciones de datos o usar bibliotecas de terceros, como gSOAP o Axis2. Si está implementando REST, podrá integrar XML directamente en su app para aumentar el desempeño. Además, muchas apps de iOS usan JSON para el intercambio de datos livianos y bibliotecas de terceros, como el esquema JSON. Consejo rápido: Vista web Para integrar el contenido web sólo tiene que incluir un objeto UIWebView dentro de su app nativa, adjuntarlo a una ventana y enviar una solicitud para cargar el contenido web. También puede usar esta clase para moverse hacia atrás y adelante en el historial de páginas web, e incluso establecer algunas propiedades de contenido web mediante programación. Red iOS ofrece una gama de tecnologías de red modernas, sofisticadas y fáciles de usar. BSD Sockets es la interfaz de programación de iOS fundamental; todos los esquemas de nivel más alto están basados en esta interfaz. Es una buena opción para lograr un máximo desempeño y flexibilidad. Como BSD es el estándar de hecho para la programación de red UNIX, es posible mover el código de red desde otras plataformas fácilmente. Bonjour es el poderoso protocolo de Apple que permite encontrar sistemas y servicios en una red local de forma automática y sencilla, sin necesidad de configuraciones tediosas. Su app tiene acceso a esas funcionalidades a través de esquemas de alto nivel que permiten conectar, reproducir e interactuar con la información en en cualquier lugar del mundo. Planificación • Diseño • Desarrollo • Implementación 21 Almacenamiento local iOS brinda Core Data y SQLite para ayudar a su app a administrar e interactuar con los datos almacenados en el dispositivo. • Core Data. El esquema Core Data incluye soluciones generalizadas y automatizadas para tareas comunes asociadas con la administración del ciclo de vida y la vista particular de un objeto, incluyendo la persistencia. Core Data ofrece una solución de administración de datos de uso general, desarrollada para manejar las necesidades del modelo de datos en todo tipo de aplicaciones, ya sea grandes o pequeñas. Usted puede definir sus modelos de datos de apps gráficamente y acceder fácilmente a ellos desde el código. Proporciona una infraestructura para tratar con la funcionalidad común, como guardar, restaurar, deshacer y rehacer, lo que permite seguir adelante con la tarea de crear innovación en su app. Ya que Core Data usa la biblioteca de datos SQLite integrada, usted no necesita instalar un sistema de base de datos separado. Ejemplo: Servicios web centralizados Una gran manera de simplificar su desarrollo secundario es centralizar los servicios web, especialmente si su app necesita conectarse con varios sistemas administrativos. Por ejemplo, Sunbelt Rentals usó servidores de aplicaciones .Net para escribir scripts que invocaran procedimientos almacenados en sistemas AS/400 legados, así como bases de datos de Microsoft CRM. Ellos fueron capaces de exponer los datos recuperados por .Net a través de XML que puede ser consumido fácilmente por la app móvil. AS/400 MS SQL Servers MS CRM • SQLite. iOS incluye la popular biblioteca SQLite, un liviano pero poderoso motor de base de datos relacional que está integrado fácilmente en una app. Usado en innumerables apps y plataformas, SQLite es considerado el estándar industrial de hecho para la programación de bases de datos SQL integradas. A diferencia del esquema Core Data orientado a los objetos, SQLite usa una API de procedimientos enfocada en SQL para manipular las tablas de datos directamente. Incluso puede usar SQLite en una app web con JavaScript. Protegiendo su app Es probable que su app interna use datos corporativos sensibles que deben ser protegidos. Muchas de las protecciones básicas a nivel de dispositivos, tales como políticas de contraseñas y borrado remoto, están disponibles para sus administradores de TI. Pero más allá de estas funcionalidades de seguridad, siempre es una buena idea tener una estrategia para proteger los datos que residen dentro de sus apps internas. Para respaldar el proceso de proteger los datos de su app, iOS brinda un método “aislado” y requiere que las apps estén firmadas, para que no puedan ser alteradas. iOS también cuenta con un método que facilita el almacenamiento seguro de las credenciales de la app en un llavero cifrado. Además, proporciona esquemas de alto nivel que pueden ser usados para encriptar datos de apps y proporcionar redes seguras. Usted puede usas todas estas capacidades dentro de su propio proceso de desarrollo, para brindar una base segura sin afectar la experiencia del usuario. “La seguridad fue un factor importante en nuestra decisión de desarrollar aplicaciones para el iPhone. El iPhone nos ofreció seguridad de HTTPS y un llavero para mantener la privacidad de ciertas cosas y pudimos encriptar datos.” —Keith DeBickes, JM Family Planificación • Diseño • Desarrollo • Implementación 22 Apps Consejo rápido: Llavero compartido Servicios centrales Red CF •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Servicios de seguridad Servicio de llavero Servicios de certificado, clave y confianza Servicios de asignación SO central LibSystem CommonCyrpto Es posible compartir elementos del llavero entre múltiples apps. Al compartir elementos, las apps interactúan mejor en la misma suite. Por ejemplo, puede usar esta funcionalidad para compartir contraseñas de usuario u otros elementos que de otro modo serían solicitados por separado al usuario en cada aplicación. El acceso a elementos compartidos durante la ejecución involucra el uso de la interfaz de programación de los Servicios de Llavero con los grupos de acceso configurados durante el desarrollo. Para más información sobre cómo acceder al llavero, consulte la Guía de Programación de Servicios de Llavero en el Portal para Desarrolladores de iOS. Arquitectura Las API de seguridad de iOS están ubicadas en la capa de Servicios Centrales del sistema operativo y están basadas en los servicios de la capa subyacente del Core OS (kernel) del sistema operativo. Las apps llaman a las API de servicios de seguridad directamente, en lugar de atravesar las capas de Cocoa Touch o Media. Las apps en red también pueden acceder de forma segura a las funciones de red a través de la API de CFNetwork, que está ubicada en la capa de Servicios Centrales. Seguridad de la red Sin necesidad de ningún tipo de codificación, iOS es compatible con los servicios de VPN, lo que permite a las apps internas comunicarse con las redes corporativas de forma segura. Las organizaciones de TI pueden configurar los ajustes de VPN para IPSec, L2TP o PPTP, o pueden solicitar a los usuarios que descarguen las apps de cliente VPN de Juniper, Cisco o F5 SSL del App Store. Para configuraciones que usan autenticación basada en certificados, iOS brinda VPN On Demand. VPN On Demand establece una conexión automática cuando un app accede a dominios predefinidos, brindando conectividad sencilla para apps internas. Para apps que necesitan acceso a Wi-Fi, iOS es compatible con Wi-Fi WPA2 Enterprise con autenticación 802.1X. iOS también es compatible con los métodos de autenticación estándar, como certificados digitales, tokens de seguridad, como Secure ID o CRYPTOCard, y autenticación de contraseñas. Planificación • Diseño • Desarrollo • Implementación 23 Seguridad de los datos Las apps internas pueden proteger los datos sensibles a través de las funcionalidades de encriptación integradas disponibles en las últimas generaciones de dispositivos de Apple. La protección de datos utiliza la contraseña del dispositivo de cada usuario, junto con la encriptación de hardware, para generar una clave de encriptación fuerte. Cuando su app interna designa a un archivo particular como protegido, el sistema almacena ese archivo en el dispositivo de forma encriptada. Mientras el dispositivo está bloqueado, ni su app ni un intruso potencial pueden acceder a los contenidos del archivo. No obstante, cuando el usuario desbloquea el dispositivo, iOS crea una clave de descrifrado para que su app pueda acceder al archivo. Usted necesitará diseñar su app para proteger los datos como son creados y para estar preparado ante los cambios en el acceso a esos datos cuando el usuario bloquea y desbloquea el dispositivo. Consejo rápido: Biblioteca de autenticación Una forma elegante de implementar la seguridad en las apps de iOS es crear una biblioteca de autenticación compartida que puede usar en todas las apps internas. Puede integrar esta biblioteca de autenticación con sus servicios de directorio existentes (LDAP o Active Directory) para que, cada vez que crea una nueva app, no tenga que escribir un nuevo código de autenticación. Al almacenar una credencial en el llavero compartido la experiencia de sus usuarios es aún mejor, ya que no tienen que ingresar en cada app que usan. Su biblioteca también puede definir períodos de receso en base a sus requisitos internos de TI. Compartir este tipo de código entre apps internas crea consistencia en sus políticas y en la experiencia de usuario: algo positivo tanto para los usuarios como para la TI. Autenticación segura iOS brinda un llavero seguro y encriptado para almacenar identidades digitales, nombres de usuario y contraseñas. El sistema operativo separa los datos del llavero para que las apps no puedan acceder con una identidad diferente a las credenciales almacenados por apps de terceros. Así, iOS puede proteger las credenciales de autenticación a través de una amplia gama de apps y servicios dentro de la empresa. En iOS, los Servicios de Llavero verifican la firma de una app antes de dar acceso al llavero, manejando todo el acceso al llavero sin interacción del usuario. Sus apps internas pueden interactuar con el llavero a través de la API de Servicios de Llavero. Prueba y validación La prueba de validación del desempeño, la optimización de la IU, la red y el uso real debe ser una parte integral de su proceso de desarrollo continuo. De hecho, el lema “pruebe pronto y a menudo” es clave para un proyecto exitoso de desarrollo de apps para iOS. Puede asegurarse de que el diseño y el código de su app estén por buen camino con la prueba y validación inicial mediante una serie de métodos. El siguiente es un resumen de las herramientas de prueba de iOS que puede usar para análisis y depuración. “Contamos con un inicio único de sesión en todas las apps, y tenemos listas de control de accesos en las privadas. Así, incluso si es descargada, para el inicio único de sesión, deberá pasar un perímetro de nuestra aplicación, donde hacemos un control para ver si usted tiene acceso. Si tiene, no hay problema, y si no, no tendrá acceso a ella.” —James Blomberg, General Electric Análisis estático. Encuentre errores en su código antes de ejecutar la aplicación con el analizador estático de Xcode integrado, que prueba miles de rutas de código posible en unos pocos segundos, informando sobre fallas potenciales que podrían haber quedado ocultas o fuesen casi imposibles de reproducir. Planificación • Diseño • Desarrollo • Implementación 24 Depuración en tiempo real sobre el dispositivo. Conecte su dispositivo para usar el depurador gráfico de Xcode o recolecte datos de desempeño en tiempo real en la vista de línea de tiempo de Instruments. Estas poderosas herramientas de optimización le permiten identificar y atender rápidamente los problemas en el desempeño. Podrá ver los valores variables con un movimiento del mouse. Instruments. La aplicación Instruments es una poderosa herramienta de medición del desempeño que le permite mirar dentro de su código, mientras se ejecuta, y recolectar métricas importantes sobre lo que está haciendo. Puede ver y analizar los datos recolectados por Instruments en tiempo real, o guardar esos datos y analizarlos luego. Grabación de datos. Puede decirle a Instruments qué app analizar y qué instrumentos usar. Haga clic en el gran botón rojo para empezar el proceso de grabación. Los datos son recolectados y almacenados para su análisis posterior. Comparación visual A medida que los datos son grabados y presentados, es fácil ver las relaciones entre diferentes tipos de datos recolectados, así como entre los mismos datos recolectados en varias tandas. Cambio rápido. Inspeccione los picos de datos en el gráfico para ver qué código se está ejecutando cuando se produce el pico y luego cambie fácilmente a Xcode para reparar el problema. Instruments recolecta y muestra datos en tiempo real, como uso de disco, memoria o CPU, simplificando la localización de áreas problemáticas. Reproducción. Cree un método de prueba específico grabando la interacción del usuario con su app y reproduzca la grabación para ver cómo un cambio en el código afecta el desempeño. Prueba de IU automatizada. El instrumento de automatización integrado trabaja con scripts (escritos en JavaScript) que usted suministra para probar la simulación de eventos en su app. Estos eventos sintéticos son generados con ayuda de las interfaces de accesibilidad integradas en iOS. Puede usar este instrumento para mejorar su proceso de prueba y probar los elementos de la interfaz de usuario de su app, mientras se ejecutan en un dispositivo conectado. Mirando hacia adelante Como se discutió en este capítulo, las herramientas y recursos provistos en el SDK de iOS le permiten desarrollar apps innovadoras rápidamente, que aprovechen al máximo las capacidades de iOS y del dispositivo. Además, con el SDK de iOS, sus apps están listas para su implementación en cualquier momento. De hecho, muchos de los equipos de desarrollo interno tienen un enfoque iterativo para el proceso de desarrollo, creando e implementando apps con frecuencia durante todo el ciclo de vida del proyecto. Con la prueba y validación integrada y un modelo de seguridad que protege sus datos empresariales, podrá implementar sus apps en usuarios y grupos de cualquier tamaño. El próximo capítulo lo guiará paso a paso a través del proceso de distribución de apps y lo ayudará a crear un estrategia que se adapte a su entorno empresarial específico. Planificación • Diseño • Desarrollo • Implementación “Una herramienta invaluable para nosotros fue el Analizador Estático, que pudo buscar problemas sin tener que ejecutar la app. La herramienta de Análisis Estático nos permitió encontrar inmediatamente algo que nos podría haber llevado semanas o meses de depuración, o cosas que nunca hubiésemos encontrado.” —Mark McWilliams, Razorfish 25 Implementación Una vez finalizado el desarrollo y la prueba del código de su app, hay algunas tareas importantes que completar antes de que esté lista para los usuarios. Para preparar la distribución de su app debe, debe obtener un certificado de distribución empresarial de Apple y firmar su código en Xcode. Una vez que su proyecto de Xcode está preparado para su implementación podrá alojar su app interna de forma segura en su propio servidor web y distribuirla directamente a los usuarios a través de Wi-Fi y 3G. Este capítulo describe los procesos para la implementación y la administración del ciclo de vida de su app. Preparación para el lanzamiento Lista de control de la implementación Al final de la fase de implementación debe haber completado: Creación de un certificado y un perfil de aprovisionamiento empresarial Establecimiento de un servidor web o una solución para la distribución inalámbrica de apps Anuncio de su solución a los usuarios finales Para iniciar el proceso de implementación deberá certificar y aprovisionar su app dentro del iOS Developer Enterprise Program, y firmar y crear su proyecto en Xcode. Con un simple proceso de tres pasos estará listo para distribuir su app directamente desde Xcode. 1. Cree y descargue un certificado de distribución. Para distribuir su app de iOS, el Agente designado en su membresía del Developer Program deberá crear un certificado de distribución. Sólo el Agente de su equipo podrá crear este certificado y únicamente este certificado habilitará la distribución de la app en la empresa. Encuentre información e instrucciones paso a paso sobre cómo descargar y crear un certificado de distribución en el Portal de Aprovisionamiento de iOS en http://developer.apple. com/ios/manage/overview/. 2. Cree y descargue un perfil de aprovisionamiento. Cuando esté listo para implementar su app en producción deberá crear un perfil de aprovisionamiento empresarial. Estos perfiles pueden ser instalados en cualquier dispositivo, por lo que querrá usar este método para la distribución general de apps dentro de su empresa. Descripción: Portal de aprovisionamiento para desarrolladores El Portal de Aprovisionamiento de iOS lo guía a través de los pasos requeridos para probar sus apps en dispositivos iOS y prepararlas para la distribución. Podrá usar el Portal de Aprovisionamiento de iOS para muchos de los pasos descritos en este capítulo, como la creación de certificados y perfiles de aprovisionamiento. Visite el Member Center dentro del iOS Dev Center para localizar el portal, donde también encontrará otra documentación útil. Los perfiles de aprovisionamiento de distribución coinciden con su certificado de distribución, para que pueda crear apps que los usuarios pueden ejecutar en sus dispositivos de iOS. Puede crear un perfil de aprovisionamiento para una app específica, o para varias apps, especificando el AppID autorizado por el perfil. Si un usuario tiene una app, pero no tiene un perfil que autorice su uso, el usuario no podrá usar la app. Ya que estos perfiles están atados a su certificado, cuando revoque este certificado o cuando expire, la app ya no se ejecutará. Existen dos tipos de perfiles de aprovisionamiento: Ad Hoc y Enterprise. Los perfiles de aprovisionamiento Ad Hoc están restringidos a ID de dispositivos específicos, para que sólo puedan funcionar en un teléfono específico que haya sido identificado (a través del ID del dispositivo) y cargado en el Portal del Developer Program. Los perfiles Ad Hoc son los más usados para la prueba interna o los programas beta limitados que no escalan más allá de 100 dispositivos y requieren un gasto administrativo significativo (esto es, agregar ID de dispositivos al portal del programa). Planificación • Diseño • Desarrollo • Implementación 26 Es importante tener en cuenta que un perfil de aprovisionamiento no es un mecanismo de seguridad. Mientras que brinda autorización básica para la ejecución de una app, no provee autenticación del usuario o protección adicional de los datos usados o a los que se accede desde su app. Siempre es una mejor práctica proteger la app a través de métodos internos. Como se menciona en el capítulo “Desarrollo” de esta guía, puede emplear un conjunto de funcionalidades y esquemas de seguridad de iOS para su app interna. Por ejemplo, una de las mejores maneras de proteger su app interna es crear una biblioteca estándar para la autenticación del usuario. 3. Firme y cree en Xcode. Una vez instalado su certificado de distribución y su perfil de aprovisionamiento deberá firmar su código en Xcode. Para más detalles sobre el proceso de firma del código, siga las instrucciones paso a paso provistas en el Portal de Aprovisionamiento para Desarrolladores. Cuando su app esté firmada, Xcode la empaqueta para la distribución empresarial a través de un proceso de exportación simple. Use el Organizador de Xcode para compartir un proyecto que haya sido agregado a su archivo y seleccione las opciones para la distribución empresarial. Este proceso empaqueta automáticamente la app, el perfil de aprovisionamiento y otros elementos necesarios para la distribución inalámbrica. Distribución Una vez que haya terminado de crear su app puede distribuir las apps internas alojando su app en un servidor web creado internamente, configurando su propio catálogo de apps internas o usando una solución de administración de dispositivos móviles de un tercero. La mejor solución para usted depende de sus requisitos específicos, su infraestructura y el nivel de administración de apps que necesita. Planificación • Diseño • Desarrollo • Implementación Descripción: Organizador de Xcode El Organizador es una ventana única para la administración de proyectos de Xcode, repositorios de SMC, archivos de apps y dispositivos, incluyendo configuración a un clic de los nuevos dispositivos iOS para el desarrollo. En el contexto de la distribución de apps, el organizador es la biblioteca central desde la cual pueden compartirse (exportarse) las apps para su distribución en la empresa. El Organizador también puede ser usado para instalar apps internas y perfiles de aprovisionamiento en los dispositivos conectados. 27 Proceso de distribución inalámbrica de apps La forma más simple de distribuir su app es alojarla en un servidor web. Sólo tiene que seguir estos pasos: 1. Aloje su app en un servidor web al que puedan acceder sus empleados. 2. Notifique a sus usuarios sobre la disponibilidad de la app a través de correo electrónico, SMS, notificación push u otros métodos que los usuarios puedan recibir en un dispositivo iOS; asegúrese de incluir la URL de la app. 3. Toque en la URL para instalar la app. Una ventana le preguntará si quiere continuar con la instalación. Para más detalles sobre cómo establecer su propio servicio de distribución inalámbrica de apps, visite http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/. Catálogo de apps internas Su equipo también puede crear un catálogo de apps internas que brinde un portal para la distribución inalámbrica de sus apps de iOS. Este modelo de autoservicio requiere un esfuerzo mínimo de descarga e instalación por parte de los empleados. El catálogo puede proveer URL de descarga de apps directamente, lo cual permite instalar y actualizar varias apps, así como implementar y configurar rápidamente. Un sitio web o app nativa -optimizada para iPhone o iPad- es un método aún más sencillo de proveer URL en una manera organizada y familiar. Para ver un ejemplo de un catálogo de apps internas, consulte el “Estudio de caso: El App Store interno de GE”, a la derecha. Administración de actualizaciones Las apps internas que son distribuidas internamente no se actualizan automáticamente. Deberá notificar a los empleados sobre la actualización y pedirles que instalen la app. Si el identificador de la aplicación asignado a la app en Xcode no es alterado, reconocerá a la app como una app existente e instalará la actualización mientras conserva las preferencias o los datos de la app almacenados localmente. Para una mayor comodidad, considere el desarrollo de una función dentro de la app que contacte al servidor para buscar actualizaciones en ejecución. Con la distribución inalámbrica de apps puede proporcionar un enlace a la app actualizada directamente desde dentro de la app. Si crea una aplicación de catálogo de apps nativas, considere el uso de Servicios de notificación push con un alerta o indicador para que los usuarios conozcan las actualizaciones disponibles. Administración de dispositivos móviles Muchas soluciones de administración de dispositivos móviles de terceros brindan capacidades de distribución inalámbrica de apps de forma predeterminada. Los beneficios de administrar apps internas de un entorno administrado incluyen la capacidad de hacer el control de versiones y ver qué Planificación • Diseño • Desarrollo • Implementación Estudio de caso: El App Store interno de GE Mobile Center for Excellence, el grupo de trabajo móvil interno de GE, no sólo desarrolla apps avanzadas. También creó un portal web interno, el App Store interno de GE, para simplificar las descargas de apps específicas de la empresa para los más de 300.000 empleados der GE. “Necesitábamos una manera genial de distribuir aplicaciones móviles internamente”, dice James Blomberg, Director de Medios Nuevos y Tecnologías Emergentes de GE. “También tenemos apps en el App Store de Apple, pero adicionalmente necesitábamos algo privado para las aplicaciones de GE que no debían ser compartidas con todo el mundo.” Desde su lanzamiento en 2009, el App Store de GE ha registrado decenas de miles de visitantes internos y más de 100.000 descargas de apps. Cuando las nuevas apps están disponibles, el grupo las promueve en el portal de intranet de la compañía y a través de anuncios y del boca a boca entre los 200 miembros del Mobile Center of Excellence de GE, que incluye a participantes de todos los principales sectores de negocio de GE. El éxito de la tienda se debe en parte a su diseño simple y efectivo. “Es una interfaz completa, pero muy fácil de usar”, dice Dayan Anandapa, director de Tecnologías Digitales y Colaboración de GE. “Una vez registrado, se puede hacer clic en una URL que lo ayudará en todo el proceso de descarga. Ya que los dispositivos en sí no tienen problemas, queremos que la instalación tampoco los tenga.” En una empresa tan grande y diversa como GE, no todas las apps internas son apropiadas para todos los usuarios. Para controlar el acceso y hacer que las apps sólo estén disponibles para los usuarios calificados, la empresa ha establecido un sistema de acceso en dos niveles. “Tenemos un inicio de sesión único para todas las apps, y listas adicionales de control de accesos para las privadas”, dice Blomberg. El App Store interno de GE ayuda a crear reconocimiento general sobre los recursos móviles de GE, además de simplificar el proceso de descarga de apps. Pero también tiene otros beneficios. “Funciona como un repositorio, un núcleo central para compartir conocimiento entre nuestros diferentes negocios”, señala Blomberg. “Y realmente está generando nuevas relaciones. Personas que antes no se conocían, ahora trabajan juntas. A lo largo de GE, hay una tremenda cantidad de colaboración y comunicación a través lo móvil”. 28 versión de su app están ejecutando los usuarios. Muchas soluciones de administración de dispositivos también brindan servicios de Notificación push para que los usuarios sepan cuándo hay apps nuevas y actualizadas disponibles. Además, como las soluciones de administración de dispositivos móviles pueden establecer configuraciones de red y políticas de seguridad, es una manera genial de proveer ajustes directamente en el dispositivo en el momento en que es instalada la app (por ejemplo, certificados de VPN o Wi-Fi). Para más información sobre soluciones de administración de dispositivos móviles, visite www.apple.com/iphone/business/integration/mdm. Anunciando su solución ¡Felicitaciones! Ha diseñado, desarrollado e implementado una app de iOS para sus empleados. Lo único que queda por hacer es gritarlo desde la azotea de su organización. Algunas de las mejores y más innovadoras apps internas pueden fallar en cuanto a la adopción en la empresa o el retorno de la inversión si los usuarios no las conocen. Puede comunicar las soluciones a sus usuarios de diversas maneras. Estas son algunas ideas a tener en cuenta cuando arme el paquete de anuncio y comunicación de su app: • Considere la promoción de sus últimas y mejores apps internas en la intranet de su empresa. • Cree un sitio dedicado en su intranet sólo para las apps de iOS, donde los usuarios puedan enviar comentarios, participar en foros, etc. • Ofrezca una demostración en video de su app en acción que puede ayudar a los usuarios a entender el poder de la solución. Ejemplo: Comunicaciones internas Al anunciar nuevas apps internas para sus usuarios, la principal prioridad de Genentech es comunicar las funcionalidades y beneficios de cada solución individual. Así como un desarrollador comercial puede crear una campaña de lanzamiento de un producto, Genentech creó materiales de marketing interno específicos para cada nueva app interna. Estos esfuerzos tuvieron un impacto inmediato y elevaron el reconocimiento y la adopción general de nuevas apps. • Envíe correos electrónicos y boletines para aumentar el reconocimiento. • Coloque carteles y otra gráfica en lugares clave, para que los empleados descubran la app a medida que se mueven por su oficina o por el campus de la empresa. • Cuando sea posible, envíe mensajes de notificación push a sus usuarios a medida que las nuevas apps estén disponibles u ofrezca mejoras en las funcionalidades. Complemente su catálogo de apps internas con capturas de pantalla y demos en video de su app, para que sus empleados puedan aprender más sobre su propósito. Mirando hacia adelante Implementar y anunciar su app no es el final del proceso, sino el principio. Con cada app móvil exitosa, los usuarios estarán pidiendo más. Esta guía no es más que un punto de partida para su equipo de desarrollo. Más allá de esta guía, está disponible una gran cantidad de recursos de aprendizaje, mejores prácticas, consejos y técnicas como parte del iOS Developer Program. Conéctese con otras personas a través de los foros de desarrolladores o descargue videos de desarrolladores para explorar y descubrir más capacidades avanzadas de la plataforma. Las posibilidades son ilimitadas. Planificación • Diseño • Desarrollo • Implementación 29 Recursos de capacitación adicionales ¿Quiere llevar su desarrollo interno al siguiente nivel? Los recursos de aprendizaje avanzado que aparecen debajo profundizan y proporcionan información técnica detallada sobre los temas de desarrollo de apps internas más relevantes. Videos de WWDC Para ver a los ingenieros y expertos de Apple debatir sobre cómo innovar con las últimas tecnologías de Apple, visite: http://developer.apple.com/videos/wwdc/2010/ Podcast de la Universidad de Stanford Conozca las herramientas y las API necesarias para crear apps para iPad, iPhone o iPod touch. “Desarrollando apps para iOS”, de la Universidad de Stanford, se ocupa del diseño de la interfaz de usuario para dispositivos móviles, las interacciones específicas del usuario con las tecnologías Multi-Touch, Core Animation y mucho más. Encuentre esta serie en iTunes o visite: http://itunes.apple.com/us/itunes-u/developing-apps-for-ios-hd/id395605774 Big Nerd Ranch Impulse el desarrollo en iOS con este curso de siete días diseñado para presentarle los aspectos básicos de Objective-C y los fundamentos del SDK de iOS. Big Nerd Ranch también puede acercarse a usted y ofrecer talleres para su equipo de desarrollo en el sitio. Para conocer más sobre las ofertas de Big Nerd Ranch, visite: www.bignerdranch.com Pragmatic Studio Aprenda a crear apps completas para iOS desde cero en este curso de entrenamiento práctico de cuatro días de duración. Para más información, visite: http://pragmaticstudio. com/iphone/ About Objects About Objects Póngase al día sobre el desarrollo de apps para iOS con clases más pequeñas e instrucción más personal. Para ver la lista completa de cursos de entrenamiento, visite: www.aboutobjects.com © 2011 Apple Inc. Todos los derechos reservados. Apple, el logo Apple, Bonjour, Cocoa Touch, Dashcode, iMac, Instruments, iPad, iPhone, iPod, iPod touch, iTunes, el logo iTunes, Keychain, Mac, MacBook, MacBook Air, Safari y Xcode son marcas de Apple Inc., registradas en los EE.UU. y en otros países. Multi-Touch es una marca registrada de Apple Inc. Apple Store es una marca de servicio de Apple Inc., registrada en los EE.UU. y en otros países. App Store es una marca de servicio de Apple Inc. La marca y los logos de Bluetooth son marcas registradas de Bluetooth SIG, Inc. y el uso de tales marcas por parte de Apple se encuentra bajo licencia. Intel e Intel Core son marcas registradas de Intel Corp. en los EE.UU. y en otros países. UNIX es una marca registrada de The Open Group. Otros nombres de productos y compañías mencionados aquí pueden ser marcas registradas de sus respectivas empresas. Este material es provisto sólo a título informativo; Apple no asume responsabilidad. 30