Guía para acelerar el desarrollo de apps internas

Anuncio
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
Descargar