Desenvolvimento interno de apps Guia acelerador

Transcrição

Desenvolvimento interno de apps Guia acelerador
Desenvolvimento interno de apps Guia acelerador
Visão geral
Transforme as suas ideias para apps internos em realidade. Veja como aqui.
A sua empresa é única, assim como os seus usuários. Há um mundo de possibilidades para responder
as necessidades deles de apps inovadores para dispositivos móveis que irão mudar a forma como eles
trabalham. Se você é como a maioria das equipes internas de desenvolvimento, também enfrenta limitações. Sejam elas financeiras, organizacionais ou de recursos, concentre seu foco na oferta de apps
que realmente atendam as necessidades da empresa.
O iOS é um ótimo veículo para a oferta desses apps. O desenvolvimento em iOS é simples e altamente
recompensador, permitindo que você crie apps que ofereçam benefícios imediatos para os seus
usuários. Você não precisa adotar processos dispendiosos e ocupar um grande número de recursos
para fazer a diferença na sua empresa, embora esse processo exija concentrar seus esforços de uma
forma diferente de um projeto habitual de desenvolvimento interno.
Este guia irá ajudar você a fazer isso. Ele analisa as melhores práticas para a criação de apps incríveis
para os seus usuários, dá dicas e apresenta recursos que ajudarão a organizar o seu projeto da forma
mais eficiente possível.
Como usar este guia
Lista de verificação. Use a lista
de verificação de cada capítulo
para analisar e acompanhar as
etapas mais importantes do
processo de desenvolvimento.
Dicas rápidas. Obtenha
informações importantes,
essenciais para o processo em
um recurso de fácil acesso.
Lista de verificação da implantação
No final da fase de implantação, você deveria ter concluído:
A criação do certificado da empresa e do perfil de aprovisionamento
A definição de um servidor web de distribuição ou de uma solução para a distribuição remota dos apps
O anúncio da sua solução para os usuários finais
Dicas rápidas: Apps compactos
• Os apps simples, rápidos e bem executados
irão gerar demanda interna e minimizar o
escopo e o investimento
• Os apps compactos fazem a festa. Os usuários
irão criar a suas próprias “soluções,”, dando
assim muita mais flexibilidade à força de trabalho
Este guia está organizado nas quatro seções a seguir:
Planejamento—Definição do seu projeto, coleta dos requisitos e planejamento do processo
de desenvolvimento.
Design—Use os conceitos do design da interface do iOS para ter certeza de que os seus
apps internos irão agradar os usuários.
Desenvolvimento—Desenvolva os seus apps internos e obtenha o máximo das ferramentas
da Apple, como o iOS SDK.
Implantação—Distribua apps internos na empresa e defina o seu próprio serviço de distribuição remota de apps.
Exemplos. Procure se inspirar e
ideias em exemplos de clientes
e confira como outras empresas
desenvolveram seus apps
internamente para iPhone e iPad.
“Tínhamos que descobrir uma
forma de fazer atualizações e
mudanças rapidamente, por isso
adotamos a abordagem híbrida.
Reunimos elementos nativos da
interface de usuário presentes no
telefone com páginas web.”
—Giancarlo De Lio, Mt Sinai Hospital
Links rápidos. Confira esses
links de referência rápida
para saber mais sobre o
desenvolvimento interno de
apps em iOS.
Links rápidos
Perguntas mais frequentes sobre inscrição no programa
http//developer.apple.com/support/ios/enrollment.html
Perguntas mais frequentes sobre o Programa para Desenvolvedores de Apps Corporativos
http//developer.apple.com/support/ios/enterprise.html
Vamos começar?
Visão geral
2
Planejamento
Por trás de um app fantástico tem um planejamento fantástico. É importante que os envolvidos
dentro da empresa estejam engajados com o objetivo do projeto e que eles participem ativamente da
elaboração do plano. Quanto mais a equipe conseguir chegar a um equilíbrio de trabalho durante todo
o processo e entender as etapas necessárias para a execução do plano, maiores serão as chances de
criação de algo realmente impressionante.
Como parte do plano, você e a sua equipe devem explorar o seguinte:
• Descobrir os requisitos corporativos e dos usuários. Certifique-se que a sua solução atenda os reais
interesses da empresa. A solução economiza tempo e/ou dinheiro, ajuda a força de trabalho a ser mais
produtiva ou responde ao requisito de fazer a empresa prosperar?
• Avalie os recursos e a infraestrutura existentes. Você pode maximizar recursos valiosos
redirecionando algo que você já criou e usá-lo para o ambiente móvel.
• Explore a facilidade de implantação. Colha primeiro os frutos que estiverem mais embaixo: Invista em
projetos com retorno rápido, onde seja mais fácil e rápido demonstrar os resultados positivos do seu esforço.
Lembrar-se sempre destes conceitos de planejamento ajudará a desenvolver o foco do seu projeto. Este
capítulo abordará as etapas necessárias para deixar o seu projeto organizado e pronto para entrar em ação.
Lista de verificação do planejamento
Consulte essa lista de planejamento durante toda a fase de planejamento
do seu projeto. No final da fase de planejamento, você deverá ter um
escopo de trabalho que inclua:
Um inventário de todas as possíveis necessidades e requisitos corporativos
Um inventário das necessidades dos usuários (alinhadas aos requisitos
corporativos)
Os requisitos da infraestrutura de TI para suporte ao projeto
Uma declaração da definição do aplicativo descrevendo o app e a finalidade da solução
O cronograma e as etapas do projeto
A equipe de envolvidos com os seus respectivos papéis e responsabilidades definidos
O processo de inscrição iniciado no Programa de Desenvolvedor
Corporativo de iOS
Solicite comentários do usuário
Coloque-se na pele dos seus usuários. Dedique um tempo no local de trabalho para participar de
algumas reuniões ou visitando um outro local de trabalho. Você conseguirá informações valiosas
sobre os hábitos de trabalho dos usuários, os gargalos no fluxo de trabalho e os principais obstáculos
enfrentados pelos funcionários ou clientes. Convide particularmente ou convença os usuários a
participarem da sua equipe de projeto e fazerem comentários regularmente.
Identifique qual problema um app para dispositivos móveis poderia resolver e que poderia agregar
mais valor para os seus usuários e para a empresa, no menor espaço de tempo possível.
Não tente agradar a todos quando começar a desenvolver apps para dispositivos móveis. Concentre as ideias não para o que você poderia criar mas simplesmente o que você deveria criar.
Planejamento • Design • Desenvolvimento • Implantação
“Direcionamos as comunicações
do desenvolvedor para a força
de vendas. Participamos até de
reuniões de vendas, demos dicas
e sugestões, entramos e fomos
a reuniões de vendas para ver
exatamente o que eles precisavam e como eles usariam o app.”
—Dean Moore, Sunbelt Rentals
3
Pense em algumas tarefas simples que a maioria do seus usuários faz frequentemente e imagine
como um app móvel poderia facilitar essas tarefas. Veja aqui alguns exemplos:
• Um app simples que permita que o funcionário aprove uma um relatório de despesas ou ordem de
compra, mesmo em trânsito
Exemplo: Inventário de Ativos
Responder essas perguntas pode ajudar a determinar se você pode
reaproveitar a tecnologia existente no seu app para dispositivos móveis:
• Quais sistemas são mais usados pela maioria dos funcionários remotos?
• Uma lista dos telefones da empresa e mapa do campus que todos poderiam ter acesso
• O que os seus funcionários remotos mais precisam?
• Um localizador de sala de reuniões que os funcionários poderiam usar quando não estivessem nas
suas mesas
• Quais processos manuais poderiam ser automatizados ou simplificados com a ajuda de apps para dispositivos móveis?
• Um app simples de controle do tempo que poderia estar vinculado ao seu sistema de gerenciamento
de tempo ou de faturamento
• Você possui sistemas não móveis que poderiam ser úteis para funcionários
remotos?
• Quais funções desses sistemas são usadas com mais frequência?
• Que tipo de acesso a dados os seus sistemas corporativos oferecem? Os dados
podem ser acessados facilmente via web services?
Faça um inventários dos seus ativos
Normalmente, a melhor forma de criar um app interno realmente eficiente é aproveitar a tecnologia
existente. Pode ser que você queira fazer um inventário dos sites dos seus funcionários e verificar se
seria interessante otimizá-los para iPhone ou iPad. Pode ser que você tenha sistemas back-end com
dados em formulários que possam ser oferecidos facilmente em dispositivos móveis. Não esqueça
também dos apps já disponíveis na App Store: pode ser que lá você encontre aquele app que está
procurando. Consulte o exemplo do Inventário de Ativos (à direita) para obter mais informações que
podem ajudar na pesquisa do seu ambiente existente.
Defina o seu app
Assim que você souber claramente o que os seus usuários precisam, assim como as possíveis soluções
para dispositivos móveis que poderão atender essas necessidades, seria interessante refinar esses
conceitos em um plano conciso e compartilhar com os outros envolvidos no projeto.
O elemento mais importante na definição do plano do seu projeto é a definição do seu aplicativo —
uma definição concisa da finalidade do seu app. A definição clara do seu aplicativo ajuda a evitar dois
problemas bastante comuns:
• Você possui sites internos que os seus funcionários acessam diariamente? Eles
poderiam ser transformados facilmente em apps para dispositivos móveis?
“Nós simplesmente analisamos as
diferentes linhas de produtos e nos
perguntamos, “O que seria interessante
para os dispositivos móveis? Qual é
o objetivo principal? Quais seriamos
maiores benefícios?” Nós partimos
desse ponto. Analisamos o nosso
portfólio de produtos e descobrimos o que seria mais indicado.”
—James Blomberg, General Electric
• Você já possui um app para desktop que deseja viabilizar para dispositivos móveis e uma longa lista
de recursos para levar para o novo ambiente.
• Você tem uma ideia ótima para um app novo para dispositivos móveis, mas pula imediatamente para
os recursos antes de se concentrar na finalidade principal do app.
Planejamento • Design • Desenvolvimento • Implantação
4
Como definir o aplicativo
Comece escrevendo uma definição que inclua o seguinte:
• A finalidade do seu app
• Para quem ele se destina e como ele será utilizado
• Sua função principal
Defina claramente apenas a solução e a sua função principal— não coloque uma lista detalhada dos
recursos. Elabore uma definição clara e sólida que será usada para filtrar as ideias para os recursos.
Pergunte-se se cada recurso responde a finalidade desejada. O próximo passo é escolher o menor
número de recursos, mas os recursos utilizados mais frequentemente e mais indicados para dispositivos
móveis. Assim, você não acaba com uma lista interminável de recursos sem foco, difíceis de serem
usados e que não resolvem os problemas. Manter o foco do seu app ajudará a melhorar a produtividade
dos usuários em um pacote simples e fácil de usar.
Planeje o processo de desenvolvimento
Um projeto de desenvolvimento de software corporativo absorve um grande número de recursos
durante a fase de desenvolvimento. Usando o iOS SDK e as estruturas Cocoa Touch de alto nível, as
equipes de desenvolvimento conseguem gastar menos tempo com codificação e dedicar mais tempo
à criação do melhor ambiente possível para o usuário. Esse processo não apenas permite que você
ofereça um app para os funcionários mais rapidamente, como também ajuda a oferecer soluções que
realmente excedem as expectativas dos usuários.
Exemplo: Definição do aplicativo
Veja como deve ser a definição de um aplicativo tomando como exemplo
um app de controle do tempo para advogados:
• Finalidade: Contabilizar o tempo gasto e as horas a serem cobradas de cada cliente
• Para quem se destina: Advogados da empresa que precisam contabilizar as
horas a serem cobradas
• Como será utilizado: Nas reuniões com os clientes, contabilizando o início e o
final do período a ser cobrado
• Função principal: Contabilizar e comunicar o tempo decorrido para o sistema de CRM
• Definição consolidada: App para que os advogados contabilizem o tempo e
as horas a serem cobradas de cada cliente
• Características compatíveis com a definição do app: Um cronômetro;
processamento e contabilização em segundo plano; integração com o sistema
de CRM no servidor; busca do cadastro do cliente para atribuição do tempo ao
cliente/caso; sincronização on-line/off-line na conexão com a rede
• Exemplo de recursos não compatíveis com a definição ou excedem o escopo do
projeto: alertas de novos casos; consulta a documentos para referência jurídica;
mapa com a localização dos clientes e interface para consulta de patentes
Independentemente de você optar por um processo de desenvolvimento mais rápido ou mais
tradicional, não deixe de reservar tempo e recursos para investir no processo de design, a parte
principal e contínua de desenvolvimento do seu app.
Defina um cronograma estimado do processo com datas e o papel de cada envolvido em cada etapa
do caminho. Obviamente não há nada fixo e imutável, funciona apenas como um ponto de referência
para todos os envolvidos.
Dicas rápidas. Crowdsourcing
A Genentech sabia que boas ideias para apps podem vir de qualquer pessoa
e qualquer lugar, por isso adotou o modelo crowdsourcing, que acata as
sugestões dos funcionários sobre apps que eles gostariam que fossem
desenvolvidos internamente. Desde então eles criaram cinco apps solicitados,
para grande satisfação e que foram amplamente adotados pelos usuários.
Planejamento • Design • Desenvolvimento • Implantação
5
Criação do escopo do trabalho
Exemplo: Equipe de Projeto Típico
Para ajudar a manter o foco e comunicar o processo, seu planejamento deve incluir um documento
central, com o escopo do trabalho, que cubra todos os recursos, objetivos, metas, cronogramas e os
principais resultados parciais do projeto. Esse documento será uma referência importante para todos
os envolvidos no projeto. O escopo do trabalho pode compreender os requisitos técnicos preliminares
do seu app, assim como os fluxogramas e diagramas que ajudarão a comunicar a intenção do
conceito do app durante a fase de desenvolvimento.
Requisitos
• Escopo do projeto
• Obtenção das aprovações
• Composição da equipe
Design
Código
Liberação
• Curso de
• Código do app
• Design e parte gráfica
• Testes
• Testes da unidade
• Desenho da arquitetura
• Elaboração do planejamento do projeto
• Esquemas iniciais
• Dimensionamentos do desenvolvedor
• Liberação interna do app
• Aceite do envolvido
• Plano de manutenção
Verificação
• Testes nos dispositivos
• Testes da interface de usuário automatizada
• Correção de problemas
• Revisão do design
• Orientação para os envolvidos
Monte a sua equipe
Assim como ocorre em qualquer projeto, será necessário montar uma equipe de colaboradores
que irão compartilhar o êxito e os resultados do projeto do seu app. Alguns participantes podem
ser clientes internos (um responsável por linha de negócio ou grupo de usuários) enquanto outros
terão a tarefa de cuidar de partes específicas do processo de desenvolvimento em si (os designers,
desenvolvedores, arquitetos técnicos e assim por diante). Na verdade, seu objetivo é alinhar as funções
e responsabilidades dentro da equipe ao cronograma e etapas do projeto discutidos no item anterior.
Por exemplo, como o design é um elemento central de qualquer projeto de desenvolvimento em iOS,
você precisa se certificar que conta com uma equipe de design (ou recursos que irão desempenhar
essa função). É bem provável que grupos diferentes tenham pontos de vista e interesses distintos,
daí a importância de documentar todas as funções, para que todos estejam cientes das suas
responsabilidades dentro do projeto.
Planejamento • Design • Desenvolvimento • Implantação
Responsável pela linha
de negócio
Principal envolvido e usuário
do app
Executivo responsável
Principal responsável pelo
planejamento estratégico
Líder do projeto
Controla as datas, os
cronogramas e o escopo
do projeto em geral
Gerente de produto
Entre o app, gerencia os requisitos
e reconcilia as necessidades
corporativas com as soluções
Arquiteto de experiência
do usuário
Responsável pela estrutura do
modelo de interação com o
usuário e pelo fluxo do
processo com o usuário
Arquiteto técnico
Responsável pela infraestrutura,
segurança e os modelos de
acesso aos dados
Gerente de desenvolvimento
Responsável técnico e gerente
do projeto
Designer da interface
do usuário
Responsável pelo projeto visual,
pela parte gráfica e identidade
do app
Gerente de TI
Responsável pela implantação
e pelo gerenciamento do ciclo
de vida dos apps
Desenvolvedor
Responsável por toda a
arquitetura técnica e
codificação
6
Desenvolvimento terceirizado
Se você não tiver recursos suficientes internamente, considere a possibilidade de terceirizar parte
do trabalho de desenvolvimento. Os desenvolvedores terceirizados podem apresentar a você um
portfólio do trabalho deles, o que pode trazer novas ideias.
É óbvio que para ser bem sucedida, é necessário que a equipe terceirizada conheça o projeto a
fundo — tudo o que foi definido durante a fase de planejamento — e interaja regularmente com
você e com a equipe interna. Apresente as suas necessidades e certifique-se de que os seus objetivos
ficarão bem claros para eles. Consulte a definição do projeto e reveja cuidadosamente cada detalhe
do seu projeto. Não se esqueça também de definir, desde o início uma forma de comunicação clara e
bidirecional e um processo para manter contato.
É importante definir o papel que o seu provedor terceirizado exercerá, assim como aconteceu com
os demais membros da sua equipe interna. Alinhe os papéis e responsabilidades ao planejamento e
cronograma do projeto de forma que você comunique claramente por quais aspectos do seu projeto
eles serão responsáveis.
Dicas rápidas. Como selecionar um fornecedor externo
• Reúna-se com vários fornecedores.
• Verifique o trabalho já realizado, inclusive os apps disponíveis na App Store; a
avaliação dos mesmos e os comentários dos usuários.
• Avalie o conhecimento e as habilidades. Por exemplo, a codificação ocorre
toda internamente?
• Solicite referências.
• Desconsidere a abordagem multiplataforma e genérica.
• Concentre o foco no desenho da interface do usuário, em elementos gráficos
de alta qualidade e no “fluxo” do app.
• Discuta a manutenção e o ciclo de vida do app após a versão 1.0.
• Pergunte sobre a experiência em infraestrutura de TI.
Liberação
Requisitos
Responsabilidades da equipe interna
Responsabilidades do desenvolvedor
Design
Código
Verificação
Alguns parceiros terceirizados podem ajudar você em todos os elementos do projeto, dos requisitos
iniciais à implantação final. Enquanto outros podem se concentrar apenas no código do app. Seria
interessante conversar sobre essas possibilidades e serviços com o seu fornecedor terceirizado,
independentemente do contrato que você tem com eles. Isso ajuda a avaliar os pontos fortes do seu
fornecedor e também a moldar o relacionamento entre vocês.
Planejamento • Design • Desenvolvimento • Implantação
“Utilizamos fornecedores externos em vários elementos.
Depende unicamente da necessidade do app. Caso haja
necessidade de uma aparência e ambientação muito
específicas, conversamos com fornecedores que já
fizeram coisas similares porque sabemos que eles já têm
experiência no que desejamos. Dessa forma conseguimos
oferecer um produto de alta qualidade tanto para a nossa
equipe quanto para os clientes.”
—Todd Schofield, Standard Chartered Bank
7
Noções básicas sobre o Programa de Desenvolvedores de Apps Corporativos em iOS
Assim que você tiver coletado os requisitos, informações dos seus usuários e definido o planejamento do seu
projeto e o seu aplicativo, a última etapa antes de passar para a fase de design, é se cadastrar no iOS Developer
Enterprise Program. Esse programa oferece um processo completo e integrado para desenvolvimento,
teste e distribuição de apps em iOS para os funcionários da sua empresa. Depois que você tiver se
cadastrado no programa, você terá acesso às ferramentas e recursos mencionados na lista à direita.
Essas informações ajudarão você a entender o processo de cadastramento no programa e a dar os
primeiros passos. Para obter mais detalhes, acesse http://developer.apple.com/programs/ios/enterprise.
Requisitos para participação
Antes de se cadastrar no programa:
• Verifique se você pretende distribuir os apps em iOS somente dentro da sua empresa. Lembre-se que o
iOS Developer Enterprise Program destina-se a desenvolvedores que desejam desenvolver e distribuir
seus apps em iOS para os funcionários dentro da sua empresa.
• Verifique se a sua empresa possui um Dun & Bradstreet Number (D-U-N-S). Você precisará desse
número para informá-lo para a Apple durante o cadastro. Você também precisará informar a razão
social da sua empresa. Para solicitar ou obter um número D-U-N-S, acesse
https://eupdate.dnb.com/requestoptions.asp.
• Verifique se você tem autorização para representar a sua empresa em contratos jurídicos. Durante
o processo de cadastramento você deverá informar um contato legal que poderá atestar a sua
autorização para representar a sua empresa na assinatura do Contrato de Licença do Programa de
Desenvolvedor de Apps Corporativos.
• Você tem capacidade técnica para certificar aplicativos em Xcode. Como cadastrado você será o
“Agente” da sua equipe, ou seja, responsável pelo aprovisionamento dos apps e tarefas técnicas
administrativas relacionadas à conta.
Visão geral Visão geral: Recursos do iOS Developer Enterprise
Program
Como membro do iOS Developer Enterprise Program, você receberá os
seguintes benefícios:
• Acesso ao iOS Dev Center
• Acesso ao iOS SDK
• Algumas ferramentas e softwares em versão preliminar
• Permissão para informar o nome dos membros da sua equipe de
desenvolvimento na seção Team do Member Center.
• Acesso aos Apple Developer Forums
• Incidentes de suporte técnico (dois por participante do programa ao ano)
• Permissão para testar aplicativos diretamente no iPad, iPhone e iPod touch
• Simulação de distribuição do seu app para até 100 dispositivos registrados
• Distribuição interna para um número ilimitado de dispositivos de funcionários
Dicas rápidas. Composição do seu kit de ferramentas de
desenvolvimento
O requisito básico para o iOS SDK é um Mac com processador Intel. Os
desenvolvedores normalmente optam pelo MacBook Air ou MacBook Pro
pela portabilidade e liberdade que eles oferecem. Mas o iMac e o Mac mini
também são boas opções, principalmente se você possui um laboratório de
desenvolvimento na empresa. Não esqueça também de ter alguns dispositivos
para teste. Se quiser garantir compatibilidade total, tenha sempre um hardware
de geração anterior como o iPhone 3GS ou iPad de primeira geração.
Visão geral do processo de cadastramento
1. Cadastre-se como Desenvolvedor Apple. Para se inscrever, será necessário se cadastrar na Apple criando um
novo Apple ID, específico para esse programa. É aconselhável definir um endereço de e-mail específico
para essa conta para que a sua empresa possa designá-lo para várias pessoas, se necessário.
2. Insira os dados sobre a sua empresa, de contato e legais. Essas informações são necessárias para a validação
do seu status como pessoa jurídica. O principal requisito é um número D-U-N-S válido. Certifique-se que o
nome e o endereço da sua empresa sejam os mesmos que constam no banco de dados da Dun & Bradstreet.
Como parte do processo de verificação de identidade é possível que você seja solicitado a enviar para a Apple
alguns documentos da sua empresa como o estatuto, um contrato de operação e alvará de funcionamento.
Planejamento • Design • Desenvolvimento • Implantação
8
3. Envio para a Apple . Assim que tiver enviado o seu cadastro, confira o seu status se registrando
como desenvolvedor no Member Center http://developer.apple.com/membercenter. Como parte
dessa etapa, a Apple analisará o app e entrará em contato com você ou com o seu departamento
jurídico, se necessário.
4. Aceite o Acordo de Licença do Programa Corporativo. Para continuar o cadastro, é necessário
aceitar os termos de licença do programa. Esse é o momento para conferir os termos e compartilhe-os
com o seu departamento jurídico.
5. Adquira o programa. Assim que tiver aceitado os termos, você receberá instruções sobre como
adquirir o programa na Apple Online Store. Se quiser usar uma ordem de compra, entre em contato
com a sua Apple Store local para ver as opções de compra disponíveis.
6. Ative a sua adesão. Você receberá um comprovante do pedido depois de ter adquirido o programa.
No prazo de 24 horas você receberá um e-mail de ativação da Apple com um código para ativar a sua
adesão. Uma vez ativada, você terá acesso a todos os recursos do programa.
Visão geral Definição da equipe
Os Agentes e Administradores podem adicionar novos Membros, que
podem ter papel de Administrador ou Membro, navegando pela guia
People do Apple Developer Member Center. Vá até a seção Invitations e
clique no botão Invite Person para convidar novos Membros para participar
da sua equipe.
Agente
Administradores
Membros
Administrador - Definição
e Distribuição
Membro - Definição
e Aprovações
Desenvolvimento
Certificado de
distribuição
Certificados de
desenvolvimento
Certificados de
desenvolvimento
Aprovisionamento para o
ambiente corporativo
Desenvolvimento Aprovisionamento
Desenvolvimento Aprovisionamento
Configurando a sua equipe
Assim que a empresa estiver cadastrada no iOS Developer Enterprise Program, será necessário colocar
o nome dos membros da sua equipe de desenvolvimento na seção Team do Member Center.
Papéis e responsabilidades da equipe
Uma equipe de desenvolvimento é composta de pessoas com as seguintes funções:
Agente. O contato principal da equipe de desenvolvimento, responsável por aceitar todos os acordos
do iOS Developer Program, é cadastrado também como o primeiro usuário inscrito no programa.
O Agente é responsável por gerenciar o certificado para distribuição na empresa, usado para
aprovisionar apps para implantação em larga escala para os funcionários.
Administrador(es). Os administradores gerenciam as suas equipes de desenvolvimento e os
certificados de desenvolvimento. Necessário o envolvimento do Agente para gerenciar a distribuição
na empresa.
Membros. Principais desenvolvedores da empresa. Os membros recebem aprovação dos
Administradores para aprovisionar os apps e dispositivos para fins de teste e desenvolvimento.
Necessário o envolvimento do Agente para gerenciar a distribuição na empresa.
Planejamento • Design • Desenvolvimento • Implantação
Dicas rápidas. Cadastrando dispositivos para desenvolvimento
Os Administradores podem inserir vários IDs de dispositivo
simultaneamente subindo um arquivo .deviceids gerado pelo iPhone
Configuration Utility. No iPhone Configuration Utility, selecione os
dispositivos que você deseja carregar e clique no botão Export. Isso irá criar
o arquivo.deviceids.
Acesse www.apple.com/support/iphone/enterprise para baixar o iPhone
Configuration Utility.
9
Recursos de aprendizado
Assim que tiver informado os nomes dos membros da sua equipe, acesse o iOS Dev Center em http://developer.apple.com/devcenter/ios onde você encontrará uma grande variedade de recursos.
Você poderá marcá-los como favoritos ou fazer deles a sua página inicial para tudo relacionado ao
processo de desenvolvimento. Veja aqui alguns dos ótimos recursos disponíveis.
Fóruns
Entre em contato com outros desenvolvedores de apps corporativos e compartilhe ideias
e melhores práticas. É sempre útil contar com uma comunidade de desenvolvedores como
você e à sua disposição.
Biblioteca de referência
Uma enciclopédia, um livro texto e um programa de referência em um lugar só. Uma lugar
para você pesquisar, com tópicos separados por categoria, com todas as informações que
você precisa para criar os seus apps.
Código de amostra
Use os exemplos para inspirar o desenvolvimento de apps incríveis, criados por você. Se
quiser você pode copiar e colar o código de exemplo diretamente no seu projeto.
“Os exemplos em Apple.com
realmente ajudam a ver melhor
um recurso específico como
detalhamento, por exemplo, ou
mapas, ou a integração com um
banco de dados SQL local.”
— Keith Debickes, JM Family Enterprises, Inc.
Links rápidos
Perguntas mais frequentes sobre adesão ao programa:
http://developer.apple.com/support/ios/enrollment.html
Perguntas mais frequentes sobre o Programa para Desenvolvedores de
Apps Corporativos em iOS:
http://developer.apple.com/support/ios/enterprise.html
Guias de Primeiros Passos
Se você é novato em desenvolvimento de iOS, esses guias oferecem à sua equipe conceitos
fundamentais e melhores práticas para o desenvolvimento em iOS.
Mais à frente
Quando concluir o processo de planejamento, consulte a lista de verificação de planejamento no
início desde capítulo. Se você concluiu todas as etapas, é bem provável que você tenha o suporte
dos executivos e da sua equipe e um planejamento claro do projeto para que todos possam seguir.
Sua equipe estará bem preparada para a próxima fase do processo: conhecer as melhores práticas de
design e desenvolvimento e entender os conceitos básicos de desenvolvimento em iOS.
Planejamento • Design • Desenvolvimento • Implantação
10
Design
O design é muito importante. É muito fácil criar um app básico para iPhone e iPad. Mas apps mais
elaborados demandam um pouco mais de trabalho. O que os apps mais bem sucedidos têm de
tão atrativos? Eles têm um design atrativo e fazem excelente uso das cores e do áudio. São simples
de usar e funcionam como o previsto. Eles envolvem o usuário e fazem com que o usuário sempre
retorne a eles. Dando bastante atenção ao design na criação de um app novo ou aprimorando um
app existente, você melhora o seu apelo, promove uma experiência mais envolvente para o usuário e
faz com que as pessoas gostem de usar o seu app.
Este capítulo descreve algumas estratégias que podem ser usadas para refinar a sua ideia, analisar as
opções de design e determinar o design de um app que deixará os usuários mais produtivos.
Lista de verificação do design
No final da fase de design, você terá:
Lido as Diretrizes sobre Interface Humana em iOS da Apple
Definido uma lista concisa de recursos, diretamente alinhados à definição do seu aplicativo
Dado prioridade a uma lista de objetos, tarefas e conceitos e definido como eles se relacionam entre si
Criado um conjunto básico de esquemas e composições para visualização do processo do app
Design para toque
Criar uma interface para interação com o mouse é bem diferente do que criar uma interface para
toque. Assim que você começar a desenvolver um app, ficará interessado em entender o grande
diferencial dos dispositivos com iOS. Analise melhor um iPhone ou um iPad e se familiarize com a
interação dos usuários e convenções de design da interface.
Para resumir, para interação por toque é necessário um número maior de pixels para representar
um botão que pode ser selecionado por um dedo do que seriam para um mouse em um desktop.
Por exemplo, o tamanho mínimo confortável para um elemento de toque da interface é 44 x 44
pontos. Os elementos como os menus pull-down e as barras de rolagem,tão comuns no desktop não
funcionam bem nos dispositivos móveis desenvolvidos para toque.
Leia as Diretrizes sobre Interface Humana
As Diretrizes sobre Interface Humana em iOS descrevem os princípios que ajudam na criação de uma
interface de usuário aprimorada, para melhor experiência do usuário com o seu app em iOS. Esses
princípios são importantes tanto para os apps corporativos desenvolvidos internamente como para os
apps desenvolvidos para a App Store.
Planejamento • Design • Desenvolvimento • Implantação
“Uma das formas de garantir a consistência dos nossos
apps é seguir as Diretrizes sobre Interface Humana da
Apple. Esse material realmente nos ajuda na consistência
dos apps que desenvolvemos. Há vários estilos diferentes
de design à disposição e sempre nos certificamos de ter
um tema consistente permeando todos eles. É muito
importante para nós seguir as Diretrizes sobre Interface
Humana.”
—Todd Schofield, Standard Chartered Bank
11
Simplifique
Muitas vezes os apps corporativos desenvolvidos internamente serão derivados de um aplicativo
já existente para desktop ou serão baseados em sistemas que os usuários já utilizam. É muito fácil
cair na armadilha de tentar levar todos os recursos e funções do aplicativo para desktop para o
dispositivo móvel. Isso quase nunca dá certo e normalmente o usuário não tem a mesma experiência
no dispositivo móvel. Lembre-se que os usuários realizam as tarefas de forma totalmente diferente
nos dispositivos móveis e que a realização de algumas tarefas nem sempre é tão prática em um
dispositivo móvel. O dispositivo móvel é mais indicado para tarefas menores, por isso é tão importante
filtrar continuamente os recursos na fase de definição do aplicativo, para refinar o seu app. Dicas rápidas. Apps compactos
• Os apps simples, rápidos e bem executados
irão gerar demanda interna e minimizar o
escopo e o investimento.
• Esses apps compactos fazem a festa. Os
usuários irão criar as suas próprias “soluções”,
dando assim muito mais flexibilidade à força
de trabalho.
Veja algumas perguntas que você pode se fazer sobre os elementos da interface do usuário do seu
app e que ajudarão a simplificar o design:
• É importante que esse elemento apareça na tela?
• Esse elemento viabiliza o acesso a um recurso importante?
• Ele é utilizado frequentemente? Quase sempre?
• O usuário precisa desse elemento para fazer uma seleção?
• Com base no fluxo do app, é importante colocar esse elemento na tela agora?
Caso a resposta a alguma dessas perguntas seja não, é bem provável que você possa ignorar o
elemento. Talvez você possa considerar a combinação da funcionalidade com alguma outra coisa.
Os usuários de iPhone e iPad estão habituados com a aparência e o comportamento dos apps que
acompanham esses dispositivos. Você não precisa copiar cada detalhe dos apps integrados, mas é
interessante entender os padrões de design que eles seguem e pensar como aplicar esses padrões aos
apps que você criar, com um design simples, funcional e fácil de usar. Analise os comandos comuns
desses apps, os eventos de toque como esticar e zoom, as animações e comece a pensar como você
poderia aplicar esses conceitos ao seu próprio app de forma consistente.
Planejamento • Design • Desenvolvimento • Implantação
“Nossa filosofia é que os apps
internos devem ser tão elegantes
e bonitos quanto o melhor
app comercial. Por isso quando
começamos a pensar no desenho
da interface do usuário, não
queríamos apenas resolver um
mero problema de funcionalidade,
queríamos resolver isso…de uma
forma que fosse bastante prática.”
—Mark McWilliams, Razorfish
12
Priorizar
Quando um app em iOS define e mantém o foco na sua função principal, ele fica agradável e prático
de usar. Cada parte do seu app deve ser ajustada para a sua finalidade principal. Criar uma lista
de objetos, tarefas e conceitos—e depois organizar tudo com base na relevância para a finalidade
principal do seu app — ajudará a apresentar uma interface de usuário bem organizada e com foco.
Essa etapa também ajudará você a pensar no fluxo de trabalho ou processo de interação do seu app,
que informará as decisões sobre o design da interface do usuário.
Faça um inventário dos objetos, tarefas e conceitos
Dicas rápidas. Tela Retina
A tela Retina do iPhone 4 possibilita a visualização de
versões em alta resolução da parte gráfica e dos ícones.
Se você exagerar nos elementos gráficos, perderá a
oportunidade de mostrar as imagens bonitas e atrativas
que os usuários tanto gostam. Em vez disso, trabalhe
os recursos da imagem existentes de forma a compor
versões maiores e de maior qualidade mais ricas em termos de textura, detalhes e mais realistas.
• Objetos. São os principais elementos funcionais do seu app. Por exemplo, em um app de calendário,
os elementos seriam as coisas como os dias, meses, compromissos e lembretes.
• Tarefas. São as ações normalmente executados nos objetos, por exemplo, filtragem, agendamento,
edição e criação.
• Conceitos. São os fluxos de trabalho ou, em alguns casos, uma série de tarefas relacionadas que
compõem um conceito mais amplo. Usando o mesmo exemplo do calendário, um conceito poderia
ser a busca, algo que normalmente envolveria várias tarefas.
Objetos
Busca
Tarefas
Agenda
Conceitos
Busca
Dias
Criar
Calendários
Semanas
Editar
Filtrar
Meses
Busca
Criar
Lembretes
Quando tiver criado essas listas, você começará a perceber alguns relacionamentos entre os itens
dentro de cada categoria. Isso ajudará você a agrupar objetos, tarefas e conceitos relacionados em
uma hierarquia que poderá simplificar a forma como eles serão apresentados para o usuário.
Planejamento • Design • Desenvolvimento • Implantação
13
Pense de cima para baixo
Disponha os elementos utilizados com mais frequência (normalmente os de nível mais elevado)
próximo à parte superior da tela, onde eles ficarão mais visíveis e de fácil alcance. Como o usuário
varre a tela de cima para baixo, os elementos são apresentados progressivamente, de acordo com os
seguintes critérios:
Dicas rápidas. Crie um esquema do seu app
O mesmo vale para as informações no seu app. Elas devem ser apresentadas na tela do material de
maior interesse geral para o mais específico na parte mais inferior.
Repita no papel.
Normalmente a melhor
maneira de articular a visão
do seu design é criar esboços
nos estágios iniciais do processo de design que ajudem
a moldar e refinar o seu
design, sem o custo associado ao desenvolvimento de
código. Você pode comprar
práticos modelos online que
irão ajudar na criação de esquemas com certo refinamento.
Otimize
Repita com um app. Há também apps na App Store, como o iMockup e o
App Layout, que ajudam a criar uma espécie de maquete da interface do
usuário para iOS, usando comandos e modos de visualização padrão.
• Frequência de utilização: Os elementos utilizados com mais frequência devem ser maiores e os
utilizados com menos frequência, menores.
• Importância para o usuário: Os elementos mais importantes devem ser maiores.
• Ênfase visual: Os elementos que você quiser que tenham mais destaque na sua composição devem
ser maiores.
O bom design é um processo iterativo. Quanto mais você aplicar os conceitos de design da interface
nos estágios iniciais do processo (antes de gravar qualquer código), melhor serão os resultados finais.
É muito importante otimizar o design para o seu público-alvo e dispositivo alvo. Os apps incríveis
compensam os conceitos de interação do usuário que irão variar de acordo com as características
únicas do dispositivo. Otimize o seu app para refinar e reiterar esses conceitos, de forma que o
resultado final irá satisfazer os seus usuários.
Seja iterativo
Antes de dar início à criação bem sucedida de um app, você precisa de um conjunto bem organizado
de esquemas. Você pode começar com alguns esquemas iniciais e refinar as ideias com o passar do
tempo. A cada passo você descobrirá mais sobre como o seu usuário poderá interagir com o app e
novas ideias que poderiam ser incorporadas —tudo sem gastar tempo, dinheiro nem recursos no
desenvolvimento em si. Considere desenhar ou esquematizar o fluxo completo do seu app, do início
ao fim, para obter uma ambientação completa da experiência do usuário e da funcionalidade que o
seu projeto irá oferecer.
Planejamento • Design • Desenvolvimento • Implantação
14
iPad versus iPhone
Se você pretende desenvolver um app que rode tanto no iPhone como no iPad, será necessário
adaptar o design do app para cada dispositivo. Embora a maioria dos elementos da interface de
usuário estejam disponíveis para todos os dispositivos, o layout como um todo varia muito. Por
exemplo, o usuário normalmente espera uma parte gráfica mais sofisticada nos apps para iPad do
que nos apps para iPhone. Não é recomendável aumentar simplesmente um app para iPhone para
preencher toda a tela do iPad. Em vez disso, você precisa fazer com que o seu app para iPad envolva
o usuário de forma que ele aproveite ao máximo todas as vantagens da sua tela maior e dos seus
recursos. Lembre-se também que o iPhone 4 suporta elementos gráficos de maior resolução com a
ajuda da tela Retina, o que exige a duplicação da resolução da parte gráfica. Há também diferenças
nos movimentos disponíveis e na forma como ocorre a rotação. Os dispositivos também suportam
diferentes elementos da interface do usuário. Por exemplo, os comandos popover e os comandos do
modo de divisão de tela são exclusivos do iPad.
“O iPad definitivamente nos deu mais flexibilidade, e
vamos tirar proveito disso. Isso foi fundamental para nós.
Não foi simplesmente algo do tipo “vamos aumentar
tudo três vezes agora que podemos contar com muito
mais pixels” mas, “vamos nos certificar que estamos
usando esse espaço devidamente”. Se vamos passar uma
coisa do iPhone para o iPad, vamos repensar o processo.
Provavelmente 60% da funcionalidade principal é a
mesma, mas o que mais nós podemos fazer? Como
podemos deixar o app mais prático, como podemos usar
menos cliques ou menos tela para fazer as coisas?”
—James Blomberg, General Electric
Apps Universais
O iOS SDK suporta o desenvolvimento de aplicativos Universais. Um app Universal é otimizado para
rodar em todos os dispositivos com iOS. Basicamente é um app para iPhone e um app para iPad
criado como um único binário.
Um app Universal consegue determinar em qual dispositivo ele está sendo executado e viabilizar a
melhor experiência para aquele dispositivo. Os apps Universais bem desenvolvidos usam os recursos
exclusivos de hardware do dispositivo, oferecem a opção certa de elementos de interface de usuário e
usam apenas a funcionalidade suportada por aquele dispositivo.
Ao criar um app Universal app para iOS, é importante pensar como separar a interação do usuário do
código do aplicativo adjacente. As classes e APIs do iOS SDK usam um paradigma MVC (model-viewcontroller) que promove uma separação clara dos dados e da lógica do seu app dos modos de visualização
que serão usados para apresentar tais dados. Por exemplo, a criação da sua interface de usuário com a
ajuda do Interface Builder dá ao seu projeto esse tipo de flexibilidade (consulte o próximo capítulo).
O primeiro passo na criação de um app Universal é criar desenhos da interface do usuário para
cada tamanho—um desenho para os dispositivos iPad e outro para os dispositivos iPhone/iPod
touch. Grande parte do design será influenciada pelos recursos que serão apresentados em cada
um dos diferentes tamanhos. Pense como os usuários irão utilizar os movimentos e a orientação de
forma diferente. Considere cada recurso de hardware de cada dispositivo, assim como a câmera. As
diferenças em como os seus usuários usam o dispositivo informarão qual será o seu enfoque e design
consistente de cada dispositivo e onde você poderá precisar de codificação condicional.
Planejamento • Design • Desenvolvimento • Implantação
15
Acessibilidade
É importante em um ambiente corporativo viabilizar acesso igual a todas as ferramentas e tecnologia
móvel para todos os usuários. O iOS oferece vários recursos que deixam um dispositivo acessível e
fácil para que todos possam usar. Entretanto também é importante otimizar os seus apps internos
para acessibilidade para que os usuários com necessidades especiais visuais, auditivas e físicas possam
usar e usufruir o seu app.
O iOS traz uma interface de programação de Interface de Usuário de Acessibilidade, uma API leve que
ajuda um app a oferecer todas as informações que o VoiceOver precisa para descrever a interface para
que pessoas com necessidades visuais especiais possam usar o app. A interface de programação de
Interface de Usuário de Acessibilidade permite agregar uma camada extra de funcionalidade que não
altera a aparência do seu app nem interfere na sua lógica principal. Isso significa que quando você usa
comandos e modos de visualização padrão, grande parte do trabalho de deixar o seu app acessível é
feito no seu lugar. Dependendo do nível de personalização do seu app, deixá-lo acessível pode ser tão
simples quando fornecer descrições precisas e úteis dos elementos da interface do usuário.
O iOS SDK também oferece essas ferramentas que ajudam você a deixar o seu app acessível:
Dicas rápidas. Agregando suporte ao VoiceOver
A coisa mais certa a fazer é tornar
o seu app em iOS acessível para
usuários de VoiceOver. Com isso você
também responderá às diretrizes de
acessibilidade elaboradas por vários
organismos governamentais.
Para certificar-se que os usuários de
VoiceOver poderão usar o seu app,
não será necessário fazer qualquer
tipo de modificação no design da sua
interface. Quando você usa elementos
padrão, praticamente não há trabalho extra.
Pode ser que seja necessário fornecer informações descritivas sobre os modos de
visualização e comandos da sua interface de usuário. Quanto mais personalizada
for a sua interface de usuário, mais informações personalizadas você precisará
fornecer para que o VoiceOver possa descrever o app com precisão.
• Uma janela inspetor do Interface Builder que facilita a colocação de informações descritivas de
acessibilidade durante a criação dos arquivos nib.
• O Accessibility Inspector, que mostra as informações de acessibilidade integradas à interface de usuário
do seu app e que ainda permite que você verifique essas informações quando roda o seu app no iOS
Simulator.
Além disso você pode usar o próprio VoiceOver para testar a acessibilidade do seu app.
Mais à frente
Tendo como base as melhores práticas de design de interface de usuário, você estará pronto para
passar para a fase de desenvolvimento do seu projeto. Mas como você pode se lembrar do capítulo
sobre planejamento, o design é um processo iterativo que continua durante todo o ciclo de vida de
desenvolvimento do app. A execução de um bom design com foco na experiência do usuário deve
ser uma estratégia consciente, mesmo quando a sua equipe de desenvolvimento começa a mexer
no código. O conjunto de ferramentas e os conceitos discutidos no próximo capítulo ajudarão você a
fazer exatamente isso—desenvolver um código sólido e, ao mesmo tempo, permitir que você ofereça
apps muito bem feitos para os seus usuários.
Planejamento • Design • Desenvolvimento • Implantação
16
Desenvolvimento
Com o iOS você oferece conteúdo e informações de novas formas, simples, mas poderosas, ajudando os
seus funcionários a serem ainda mais produtivos. Com o iOS SDK, a sua equipe de desenvolvimento poderá
criar apps usando as mesmas ferramentas que os engenheiros da Apple utilizam para criar o OS e os apps
que vêm em cada iPhone e iPad. Isso permite criar apps que se apresentam, operam e respondem aos seus
usuários de forma elegante e com a máxima eficiência.
Lista de verificação do desenvolvimento
No final da fase de desenvolvimento você terá noções básicas de:
Ferramentas iOS SDK, entre elas Xcode, Interface Builder, Instruments e Simulator
Usando as ferramentas do iOS você usa estruturas de alto nível que ajudam a aproveitar todas as vantagens
da plataforma. Nós iremos explorar as principais APIs para desenvolvimento interno e dar a você ideias para
integração desses recursos aos seus apps. Discutiremos também como aproveitar as tecnologias web como
HTML5, CSS e JavaScript. Com os recursos certos de segurança integrados na sua solução, essas tecnologias
operam juntas para a criação de um alicerce poderoso e seguro que suporte as suas necessidades corporativas.
As principais APIs e estruturas para desenvolvimento de apps corporativos internos
Finalmente, antes que você possa considerar o seu app pronto para os usuários, você terá que testá-lo e
depurá-lo. Você também irá validar o desempenho do seu app em diferentes dispositivos. Nós discutiremos
como as ferramentas do iOS ajudam você a realizar essas tarefas e sugerir melhores práticas para garantir
que o seu app funcione da forma que você pretende.
Teste, depuração e validação do desempenho do seu app
Desenvolvimento de apps web
Arquitetura do iOS para acesso aos dados dos sistemas de back-office
Melhores práticas para a segurança dos seus apps internos
Desenvolvimento nativo
Quando se trata de desenvolvimento interno, o importante é a execução da visão do design do seu
app, aproveitando ao máximo os recursos do dispositivo e tudo isso em um ambiente organizado e
eficiente. O iOS SDK vem com o Xcode, o IDE para codificação, criação e depuração do seu app; Interface
Builder para a criação de uma interface de usuário; Instruments para analisar o comportamento e o
desempenho e dezenas de outras ferramentas.
“Minha equipe diz que o SDK e o Xcode são ferramentas
fantásticas de programação e muito fáceis de usar, mesmo
para desenvolvedores que não tem conhecimento de Mac.”
—Hans-Christian Pahlig, Axel Springer
O Xcode é a central da sua experiência de desenvolvimento. O Xcode oferece finalização de
código, análise estática em tempo real e depuração imediata no dispositivo.
O Interface Builder facilita a criação de um protótipo do seu app. Arraste elementos para
criar uma interface completa de usuário, sem necessidade de qualquer código. No Xcode 4, o
Interface Builder está integrado ao IDE do Xcode.
O Instruments coleta e apresenta os dados como uso do disco, da memória e da CPU em
tempo real, facilitando a identificação de áreas problemáticas.
O Simulator roda o seu app praticamente da mesma forma que um dispositivo iOS faria, para
que você possa verificar e testar o seu código diretamente no ambiente do desktop.
Planejamento • Design • Desenvolvimento • Implantação
17
APIs essenciais para desenvolvedores de apps internos
O iOS SDK oferece ferramentas que ajudam você a integrar praticamente qualquer funcionalidade que
você possa imaginar. Várias dessas ferramentas vêm com código de exemplo e recursos para ajudar
você a se familiarizar rapidamente. Vamos analisar alguns dos milhares de APIs disponíveis no iOS
SDK. Uma rápida olhada pode dar asas à sua imaginação quando você vê a fantástica variedade de
recursos que podem ser facilmente integrados na criação dos seus apps internos.
Multitarefa. Os desenvolvedores têm acesso a sete serviços multitarefa que permitem que
tarefas sejam executadas em segundo plano, preservando o desempenho e a duração da
bateria. Eles incluem funções como Voice over IP, áudio em segundo plano, serviços de
localização em segundo plano, notificações locais e via tecnologia push, finalização de tarefa
e alternância rápida entre apps.
Notificação via tecnologia push. O serviço da Apple de notificação via tecnologia push
oferece uma forma de alertar os seus usuários sobre novas informações, mesmo com o app
inativo. Envie notificações em texto, acione alertas audíveis ou agregue um identificador
numérico ao ícone do seu app.
O Xcode é a central da sua experiência de desenvolvimento, oferecendo finalização
de código, análise estática em tempo real e depuração imediata no dispositivo.
Acessórios. Os aplicativos podem se comunicar com os acessórios via o conector da base de
30 pinos ou sem fio, via Bluetooth. Crie um app que recupere dados de sensores externos
e até mesmo controle os acessórios com a ajuda de uma sofisticada interface Multi-Touch.
Crie um app de inventário para o seu leitor de código de barras. Mas se preferir, crie um app
que registra e controla as leituras de um monitor cardíaco conectado. Você também pode
criar seus próprios protocolos personalizados para intercâmbio de dados e comandos com
o seu app. Para descobrir como agregar suporte a apps em iOS no seu acessório, obtenha
mais informações sobre o programa de licenciamento MFi em http://developer.apple.com/
programs/mfi.
Serviços de localização. Use a estrutura Core Location para determinar a latitude e a
longitude atuais de um dispositivo para configurar e agendar eventos relacionados à
localização. A estrutura usa o hardware disponível para fazer uma triangulação da posição do
usuário com base nas informações dos sinais das redondezas. iOS 4 traz aprimoramentos ao
mapeamento com a ajuda da API MapKit. O MapKit oferece suporte à panorâmica e zoom,
anotações personalizadas, mostra a localização atual e até codificação geográfica, destacando
regiões do mapa e apresentando outras informações.
Planejamento • Design • Desenvolvimento • Implantação
18
Integração de dados compartilhada. O iOS oferece opções poderosas de conectividade
para compartilhamento de informações entre apps. Usando sintaxe em URL, você consegue
acessar dados da web, assim como iniciar ações em outros apps instalados como o Mail,
Calendário, Contatos e outros. Seu próprio app pode adotar um esquema exclusivo de URL,
permitindo que qualquer aplicativo inicie o seu app.
• Mail. O iOS permite apresentar uma interface de composição de Mail ou SMS padrão a
partir do seu app. Em ambos os casos, você pode pré-configurar por programa a mensagem
com os destinatários e conteúdo, que pode ser editado pelo usuário antes do envio. O
correio e as mensagens SMS enviadas são coordenados automaticamente nas filas do Mail e
do Mensagens do sistema.
• Contatos. Com APIs do Address Book para dados compartilhados, o seu app pode criar
um novo contato ou obter informações de um contato já existente. Acessando a lista
de contatos integrada, o seu app pode habilitar um usuário e associar um contato ou
endereço comercial a um processo ou tarefa do aplicativo.
• Calendários. O Event Kit permite que apps em iOS acessem informações sobre eventos
que constem no banco de dados do Calendário de um usuário. Busque eventos por faixa
de data ou identificador exclusivo, receba notificações quando os registros do evento
sofrerem alguma alteração e permita que os usuários criem e editem eventos para qualquer
calendário. As alterações feitas nos eventos do banco de dados do Calendário de um usuário
com o Event Kit são sincronizadas automaticamente com o calendário devido, inclusive com
calendários corporativos hospedados em servidores CalDAV e Exchange.
O Interface Builder, integrado diretamente ao IDE do Xcode 4, simplifica a criação de
um protótipo do seu app. Arraste elementos para criar uma interface completa de
usuário, sem necessidade de qualquer código.
• Fotos. O UIKit viabiliza o acesso à biblioteca de fotos do usuário. A interface para escolha de
fotos traz comandos para navegação pela biblioteca de fotos do usuário e seleção de uma
imagem que será enviada para o seu app. Você também tem a opção de habilitar comandos
de edição para o usuário, para que o usuário possa dar uma panorâmica e recortar a imagem
recebida. Outra opção é oferecer uma interface para a câmera, para que as fotos tiradas
possam ser carregadas diretamente no seu app.
Core Animation
Áudio e vídeo. Tecnologias multimídia do iOS SDK permitem implantar recursos sofisticados
de áudio e vídeo no seu app. A estrutura Media Player, que suporta reprodução de arquivos de
vídeo em tela cheia e reprodução de HTTP ao vivo, facilita o uso de servidores web padrão para a
reprodução de conteúdo em áudio e vídeo de alta qualidade e remotamente. Seu app também
pode aproveitar os benefícios de Core Audio para gerar, gravar, mixar, processar e reproduzir
áudio no seu app. Use Core Animation para agregar movimento suave e feedback dinâmico à sua
interface de usuário. Se preferir, use OpenGL ES para gráfico em 2D ou 3D de alto desempenho.
Planejamento • Design • Desenvolvimento • Implantação
19
Desenvolvimento web
Apps web — uma categoria totalmente nova de aplicativos para dispositivos móveis — estão abrindo
inúmeras possibilidades para o mundo corporativo. Os apps web são páginas web personalizadas que
aproveitam as vantagens de HTML, CSS e JavaScript para oferta de uma experiência realmente inigualável
para os usuários de iOS. Como você cria apps usando HTML, você consegue desenvolver apps web em
qualquer ambiente de desenvolvimento web. Você só precisa hospedar uma página web para oferecer um
app web. Você consegue gerenciar as mudanças e atualizações a partir do servidor que armazena a página.
Vamos dar uma olhada rápida nas tecnologias utilizadas para criar apps web para dispositivos com iOS.
HTML5 é a especificação HTML mais recente, o principal padrão que determina como
o conteúdo web interage com os navegadores modernos. HTML5 permite que os
desenvolvedores integrem mídia rica diretamente em páginas web padrão, reduzindo o
tempo de desenvolvimento e oferecendo rica interatividade para a criação de apps web.
As animações CSS3 e os efeitos visuais permitem criar interfaces gráficas de usuário
sofisticadas para os apps web. Os efeitos visuais disponíveis vão desde degradês, máscaras e
reflexos até efeitos 2D e 3D mais complexos. Quando esses efeitos visuais são combinados
com eventos de toque, é possível criar apps web que interagem de forma bem semelhante
aos apps nativos do iPhone e iPad.
O WebKit é um mecanismo aberto de navegador. Viabilizando o Safari no iPhone e no
iPad, o WebKit simplifica o desenvolvimento web e acelera a inovação. Um conjunto
de ferramentas de código aberto, WebKit é gratuito para qualquer pessoa. Oferece um
mecanismo HTML para os apps web no iPhone e no iPad.
Dashcode faz parte do iOS SDK. Seu ambiente integrado permite compor, codificar e até
mesmo testar apps web. O Dashcode também oferece práticos modelos para dar vida ao
seu app web.
O Safari 5 para Mac e Windows traz um poderoso conjunto de ferramentas que
facilita a depuração, calibragem e otimização de apps web para melhor desempenho
e compatibilidade. Para ter acesso a essas ferramentas, vá até o menu Develop em
Preferências do Safari no seu Mac ou PC.
Planejamento • Design • Desenvolvimento • Implantação
O Simulator roda o seu app praticamente da mesma forma que um dispositivo
com iOS, para que você possa verificar e testar o seu código diretamente do seu
ambiente desktop. Como o Simulator vem com o navegador Safari para iOS, você
consegue testar e verificar os seus apps web antes da implantação.
“Uma das coisas que conseguimos fazer no SDK é ir ao
ponto certo e fazer as mudanças necessárias rapidamente.
É uma coisa que pode ser feita rapidamente na tela.
Depois você usa o Simulator onde poderá ver tudo
praticamente na hora. E para nós é possível ter uma
resposta direta.”
—Todd Schofield, Standard Chartered Bank
20
Integração de conteúdo web aos apps nativos Com o iOS SDK você também viabiliza acesso a conteúdo web em um app do iOS com a ajuda de um
elemento chamado Web View. Ele permite que os seus aplicativos web acessem iOS recursos como notificações
via tecnologia push, a câmera integrada, movimento em 3D e muito mais. Como benefício você implanta
novos aprimoramentos no seu app, com ajustes no seu servidor web e sem necessidade de implantar o app
novamente. Usar o conteúdo web do seu app nativo também é ótimo para turbinar o desenvolvimento nativo
e sem necessidade de retroagir nem de descartar qualquer investimento já feito em desenvolvimento web.
Como acessar sistemas de back-office
“Tínhamos que descobrir uma
forma de fazer atualizações e
mudanças rapidamente, por isso
adotamos a abordagem híbrida.
Reunimos elementos nativos da
interface de usuário presentes no
telefone com páginas web.”
—Giancarlo De Lio, Mt. Sinai Hospital
Em muitos casos o seu app corporativo terá que acessar os sistemas de back-office e depósitos de
dados existentes. Embora viabilizar uma excelente experiência para o usuário no cliente seja uma
importante prioridade para qualquer app de sucesso para ambientes móveis, é necessária a mesma
atenção aos detalhes e à arquitetura para integrar a experiência do cliente aos dada dos servidores
de back-end. O iOS SDK traz um poderoso conjunto de ferramentas e estruturas para armazenamento,
acesso e compartilhamento dos dados armazenados nos servidores de dados corporativos.
Serviços web
Com o iOS SDK, você trabalha com dados XML para comunicação entre o aplicativo cliente e o servidor.
Os arquivos XML têm um formato leve e estruturado que o seu app pode ler e gravar facilmente. Eles se
adaptam perfeitamente ao sistema de arquivos do iOS. Se você estiver usando SOAP, poderá criar e analisar
as suas próprias transações de dados, ou usar bibliotecas de terceiros como a gSOAP ou Axis2. Se você estiver
implantando REST, poderá integrar XML diretamente no seu app para melhorar o desempenho. Vários apps
em iOS usam JSON para intercâmbio leve dos dados e bibliotecas de terceiros como a estrutura JSON.
Dicas rápidas. Web View
Para integrar conteúdo web basta incluir um objeto UIWeb View no seu app
nativo, anexá-lo a uma janela e enviá-lo com uma solicitação para carregar
conteúdo web. Essa classe também pode ser usada para se mover para a
frente e para trás no histórico das páginas web. É possível até definir algumas
propriedades de conteúdo web por programa.
Rede
O iOS oferece uma grande variedade de tecnologias de rede modernas, práticas e sofisticadas. BSD
Sockets é a principal interface de programação de rede do iOS; todas as estruturas de nível mais
elevados se baseiam nela. É uma ótima opção para quem deseja melhor desempenho e flexibilidade.
Como BSD é o padrão de fato para programação de rede UNIX, normalmente a portabilidade de
código de rede de outras plataformas é bem mais fácil.
O Bonjour é o protocolo poderoso da Apple que facilita a localização de sistemas e serviços em uma
rede local, automaticamente e sem necessidade de configuração trabalhosa. Seu app tem acesso a
esses recursos via estruturas de alto nível que facilitam a conexão, apresentação e interação com a
informações, onde necessário, em qualquer parte do mundo.
Planejamento • Design • Desenvolvimento • Implantação
21
Armazenamento local
O iOS traz o Core Data e o SQLite que ajudam o seu app a gerenciar e a interagir com os dados
armazenados no próprio dispositivo.
• Core Data. A estrutura Core Data compreende soluções generalizadas e automatizadas para tarefas
comuns associadas ao ciclo de vida dos objetos e gerenciamento gráfico do objeto, inclusive
persistência. Core Data é uma solução geral para gerenciamento de dados desenvolvida para
responder às necessidades de modelos de dados de todos os tipos de aplicativos, pequenos e grandes.
Você consegue definir o modelo de dados dos seus apps rapidamente e graficamente e acessá-lo
facilmente a partir do código. Essa solução fornece uma infraestrutura para lidar com funcionalidades
comuns como, por exemplo, salvar, restaurar, desfazer e refazer, permitindo que você fique apenas com
a tarefa de colocar inovações no seu app. Como Core Data utiliza a biblioteca de dados integrada do
SQLite, você não precisa instalar um sistema de banco de dados a parte.
• SQLite. O iOS traz uma conhecida biblioteca SQLite, um mecanismo de banco de dados relacional
leve, mas poderoso, que se integra facilmente a um app. Utilizado em inúmeros apps e em várias
plataformas, o SQLite é considerado o padrão de mercado de fato em programação de banco de
dados SQL leve. Diferentemente da estrutura Core Data, orientada a objetos, SQLite usa uma API de
processo com foco em SQL para manipulação direta das tabelas de dados. Você também pode usar
SQLite em um app web com JavaScript.
Exemplo: Serviços web centralizados
Uma excelente forma de simplificar o seu desenvolvimento em back-end é
centralizar os serviços web, principalmente se o seu app precisar conversar com
vários sistemas back-office. Por exemplo, a Sunbelt Rentals usou os servidores de
aplicativos .Net para gravar scripts capazes de invocar procedimentos armazenados
em sistemas legados AS/400 e em bancos de dados CRM da Microsoft. Assim
eles conseguiram apresentar os dados recuperados por.Net via XML, para que
pudessem ser utilizados facilmente pelo app para dispositivos móveis
AS/400
Servidores MS SQL
MS CRM
Como proteger o seu app
É bem provável que o seu app interno use dados corporativos confidenciais que precisam ser
protegidos. Muitos dos salvaguardas básicos de dispositivos como as políticas de senhas e
apagamento remoto estão disponíveis para serem administrados pelos seus gerentes de TI. Mas,
independentemente desses recursos de segurança, é sempre aconselhável contar com uma estratégia
para proteger os dados armazenados nos seus apps internos.
Para suportar o processo de proteção dos dados no seu app, o iOS oferece um enfoque “fechado”
que exige que os apps sejam assinados para que não possam ser violados. O iOS também possui
uma estrutura que facilita o armazenamento seguro das credenciais do app em uma cadeia de chave
codificada. Há também estruturas de alto nível que podem ser usadas para codificar os dados dos apps
e viabilizar uma rede segura. Você pode usar todos esses recursos durante o seu próprio processo de
desenvolvimento para oferecer um alicerce seguro, sem impacto algum na experiência do usuário.
“A segurança é um fator fundamental
na nossa decisão para desenvolvimento
de um aplicativo para iPhone. O iPhone
nos ofereceu segurança HTTPS, cadeia
de chaves para manter determinadas
coisas confidenciais e ainda conseguimos
codificar dados.”
—Keith DeBickes, JM Family
Planejamento • Design • Desenvolvimento • Implantação
22
Apps
Dicas rápidas. Cadeia de chaves compartilhada
Core Services
Rede CF
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Serviços de segurança
Serviços de
cadeia de
chaves
Certificado,
chave e confiança
Serviços
Serviços de
randomização
Core OS
LibSystem
CommonCyrpto
Você pode compartilhar itens da cadeia de chaves com vários apps O
compartilhamento de itens facilita que apps do mesmo suíte de apps operem
entre si tranquilamente. Por exemplo, você poderia usar esse recurso para
compartilhar senhas de usuário e outros elementos
que poderiam, de outra forma, necessitar
informações do usuário a cada aplicativo. O acesso
a itens compartilhados em tempo de execução
envolve o uso da interface de programação
Keychain Services com os grupos de acesso
definidos durante a fase de desenvolvimento. Para
obter mais informações sobre como acessar a
cadeia de chaves, consulte o Guia de Programação
de Guia de Programação de Keychain Services no Portal do Desenvolvedor em iOS.
Arquitetura
As APIs de segurança do iOS localizam-se na camada Core Services do sistema operacional e se baseiam
em serviços na camada subjacente, Core OS (kernel), do sistema operacional. Os apps chamam as APIs
dos serviços de segurança diretamente, em vez de passar pelas camadas Cocoa Touch e Media. Os apps
de rede também podem acessar as funções de rede segura via API CF Network, localizada também na
camada Core Services. CFNetwork é uma API C de alto nível que facilita a criação, envio e recebimento
de mensagens HTTP serializadas. Como CFNetwork fica na parte superior de Secure Transport, é possível
codificar o fluxo de dados usando qualquer uma das diferentes versões dos protocolos SSL ou TLS.
Segurança da rede
Sem necessidade de qualquer codificação, o iOS suporta serviços VPN, permitindo que os apps internos
se comuniquem com as redes corporativas com segurança. Os departamentos de TI das empresas
podem configurar os ajustes VPN internos para IPSec, L2TP, PPTP, ou instruir os usuários para baixar os
apps cliente VPN da Juniper, Cisco ou da F5 SSL da App Store.
Para as configurações que usa autenticação por certificado, o iOS oferece VPN On Demand. VPN On
Demand estabelece uma conexão automaticamente quando um app acessa domínios predefinidos,
oferecendo assim conectividade tranquila para os apps internos. Para os apps que precisam de
acesso Wi-Fi, o iOS suporta WPA2 Enterprise Wi-Fi com autenticação 802.1X. O iOS também suporta
métodos padrão de autenticação como os certificados digitais tokens de segurança como Secure ID e
CRYPTOCard e autenticação por senha.
Planejamento • Diseño • Desenvolvimento • Implantação
23
Segurança dos dados
Os apps internos podem proteger os dados confidenciais, com a ajuda dos recursos integrados de
criptografia disponíveis nos dispositivos Apple de gerações mais recentes. Data Protection utiliza a senha
exclusiva de cada usuário para o dispositivo juntamente com a criptografia de hardware do dispositivo
para gerar uma chave de criptografia forte.
Quando o seu app interno especifica um determinado arquivo como protegido, o sistema armazena esse
arquivo no dispositivo em um formato codificado. Enquanto o dispositivo estiver bloqueado, o conteúdo
do arquivo ficará inacessível tanto para o seu app como para qualquer possível invasor. Mas quando o
usuário destrava o dispositivo, o iOS cria uma chave de criptografia que permite que o seu app acesse o
arquivo. Você terá que criar o seu app para proteger os dados porque eles são criados e preparados para
mudanças no acesso aos dados, tanto quanto o usuário bloqueia como quando desbloqueia o dispositivo.
Dicas rápidas. Biblioteca de autenticação
Uma forma ótima de implantar segurança nos apps em iOS é criar uma
biblioteca de autenticação compartilhada que você pode usar para todos os
seus apps internos. É possível integrar essa biblioteca de autenticação aos
seus serviços de diretório existentes (LDAP ou Active Directory) para que
cada vez que você crie um app novo, não seja necessário gravar um novo
código de autenticação. Armazenar uma credencial em uma cadeia de chaves
compartilhada, melhora a experiência do usuário porque os usuários não
precisam fazer login em cada app que forem usar. A sua biblioteca também
poderia definir períodos de espera de acordo com os requisitos internos de TI.
Compartilhar esse tipo de código com os apps internos dá consistência às suas
políticas e à experiência do usuário—ótimo tanto para os usuários como para TI.
Autenticação segura
O iOS oferece uma cadeia de chaves segura e codificada para armazenamento de identidades digitais,
nomes de usuários e senhas. O sistema operacional particiona os dados da cadeia de chaves para que
as credenciais armazenadas pelos apps de terceiros não possam ser acessadas por apps com uma
identidade diferente. Isso permite que o iOS proteja as credenciais de autenticação em todos os apps
e serviços dentro da empresa. No iOS, Keychain Services confere a assinatura de um app antes de
conceder o acesso a uma cadeia de chaves, cuidando de todo o acesso à cadeia de chaves sem interação
do usuário. Seus apps internos podem interagir com a cadeia de chaves via API de Keychain Services.
Testes e validação
Os testes de validação de desempenho, de otimização da interface de usuário, da rede e de usabilidade
devem fazer parte integrante do processo contínuo de desenvolvimento. Na verdade, o conselho “teste
desde o início e sempre” é fundamental para um projeto de desenvolvimento de app em iOS bem
sucedido. Você garante que o design e o código do seu app estão no caminho certo com a ajuda de
vários métodos de testes desde o início do projeto e validação. Veja um resumo das ferramentas de teste
para iOS que podem ser utilizadas para análise e depuração.
“Temos single sign-on em todos os
apps e listas de controle de acesso
nos confidenciais. Ou seja, mesmo
que você baixe um app, por causa
do single sign-on, ele passará
um dado para nosso aplicativo
e faremos uma verificação para
conferir se você tem acesso. Se tiver,
ótimo, caso contrário, você não
conseguirá abri-lo.”
—James Blomberg, General Electric
Análise estática. Identifique bugs no código até mesmo antes de rodar o app com a ajuda do analisador
estático Xcode integrado que testa milhares de caminhos de código possíveis em poucos segundos,
reportando possíveis bugs que poderiam ficar ocultos ou praticamente impossíveis de replicar.
Depuração em tempo real no dispositivo. Prepare o seu dispositivo para usar o depurador gráfico
Xcode ou colete dados sobre desempenho em tempo real no modo de visualização de linha do
tempo do Instruments. Essas ferramentas poderosas de otimização permitem identificar e responder
rapidamente a qualquer problema de desempenho. Você poderá ver valores variáveis passando o mouse.
Planejamento • Design • Desenvolvimento • Implantação
24
Instruments. O aplicativo Instruments é uma ferramenta poderosa de avaliação de desempenho que
permite conferir o seu código durante a execução e coletar métricas importantes sobre o que estiver
fazendo. Você pode ver e analisar os dados coletados pelo Instruments em tempo real, ou salvá-los e
analisá-los posteriormente.
Gravação de dados. Diga para o Instruments qual app deve ser analisado e quais instrumentos
devem ser usados. Clique no grande botão vermelho para iniciar o processo de registro. Os dados são
coletados e armazenados para análise mais detalhada.
Comparação visual. À medida em que os dados são registrados e apresentados, fica mais fácil ver os
relacionamentos entre os diferentes tipos de dados coletados, bem como os mesmos dados coletados
nas diversas execuções.
Detalhamento. Verifique os picos de dados no gráfico para saber que código está sendo executado
no pico e depois passe facilmente para o Xcode para solucionar o problema.
Reprodução. Faça um teste simulado registrando a interação do usuário com o seu app e reproduza a
gravação para ver como as mudanças no código afetam o desempenho.
Teste automatizado de interface do usuário. O instrumento de automação integrado opera a partir
de scripts (em JavaScript) que você fornece para orientar a simulação dos eventos no seu app. Esses
eventos sintéticos são gerados com a ajuda de interfaces de acessibilidade integradas ao iOS. Você
pode usar esse instrumento para melhorar o seu processo de teste e conferir os elementos da
interface de usuário do seu app enquanto ele estiver rodando em um dispositivo conectado.
Mais à frente
Como foi discutido durante todo este capítulo, as ferramentas e recursos fornecidos no iOS SDK
permitem que você desenvolva rapidamente apps inovadores que aproveitam todos os recursos
tanto do iOS como do dispositivo. Além disso, com o iOS SDK, os seus apps estão sempre prontos
para implantação em um instante. Na verdade, muitas das equipes internas de desenvolvimento
adotam um enfoque iterativo com relação ao processo de desenvolvimento como um todo, criando
e implantando apps frequentemente durante todo o ciclo de vida do projeto. Com validação e testes
integrados e um modelo de segurança que protege os seus dados corporativos, você pode implantar
os seus apps para qualquer número de usuários e grupos de qualquer tamanho. O próximo capítulo
irá orientar você passo a passo pelo processo de distribuição do app e ajudar você a elaborar uma
estratégia que atenda aos requisitos específicos da sua empresa.
Planejamento • Design • Desenvolvimento • Implantação
Instruments coleta e apresenta dados em tempo real como o uso do disco, da
memória e da CPU, facilitando a identificação de áreas problemáticas.
“O Static Analyzer é uma ferramenta
de valor inestimável para nós.
Consegue identificar problemas
sem que praticamente tenhamos
que rodar o app. A ferramenta
Static Analysis conseguiu localizar
imediatamente algo que poderia
ter nos custado semanas ou meses
de depuração, ou coisas que talvez
nunca encontrássemos.”
—Mark McWilliams, Razorfish
25
Implantação
Uma vez concluídas as etapas de desenvolvimento e teste do código do seu app code, há algumas
outras tarefas importantes que precisam ser feitas antes que ele esteja pronto para os usuários. Para
preparar o seu app para distribuição, é necessário obter um certificado de distribuição para ambiente
corporativo concedido pela Apple e validar o seu código em Xcode. Depois que o seu projeto em Xcode
estiver preparado para implantação, você poderá hospedar o seu app desenvolvido internamente, com
segurança, no seu próprio servidor web e distribuí-lo diretamente para os usuários via Wi-Fi e 3G. Este
capítulo apresenta os processos para implantação e gerenciamento do ciclo de vida do seu app.
Lista de verificação da implantação
No final da fase de implantação, você deveria ter concluído:
A criação do certificado da empresa e do perfil de aprovisionamento
A definição de um servidor web de distribuição ou de uma solução para a distribuição remota dos apps
O anúncio da sua solução para os usuários finais
Preparação para o lançamento
Para iniciar o processo de implantação, será necessário certificar a provisionar o seu app no iOS
Developer Enterprise Program e depois validar e criar o seu projeto em Xcode. Um processo simples
de três etapas irá preparar você para distribuir o seu app diretamente de Xcode.
1. Crie e baixe um certificado de distribuição. Para distribuir o seu app para iOS, o Agente cadastrado no
Programa para Desenvolvedores precisará criar um certificado de distribuição. Somente o Agente da sua equipe
poderá criar esse certificado e só esse certificado dará autorização para distribuição do app na sua empresa.
Obtenha mais informações e instruções detalhadas sobre como baixar e criar um certificado para distribuição na
empresa no Portal de Aprovisionamento de iOS em http://developer.apple.com/ios/manage/overview/.
2. Crie e baixe um perfil de aprovisionamento. Quando você estiver pronto para implantar o seu
app em produção, terá que criar um perfil de aprovisionamento para o ambiente corporativo. Como
esse perfil pode ser instalado em qualquer dispositivo, você optará por usar esse método para a
distribuição em larga escala do app na sua empresa.
Visão geral Developer Provisioning Portal
O iOS Provisioning Portal orienta você nas etapas necessárias para testar os
seus apps em dispositivos com iOS e como prepará-los para distribuição.
Você usará o iOS Provisioning Portal para várias das etapas descritas neste
capítulo como a criação de certificados e perfis de aprovisionamento. Acesse o Member Center no iOS Dev Center para localizar o portal, onde você
encontrará outros documentos úteis.
Os perfis de aprovisionamento de distribuição estão associados ao seu certificado de distribuição,
permitindo que você crie apps que os usuários poderão rodar nos seus dispositivos com iOS. Você
pode criar um perfil de aprovisionamento para um app específico ou vários apps, informando o AppID
autorizado pelo perfil. Se um usuário tiver um app, mas não tiver um perfil que autorize o seu uso, ele
não poderá usar o app. Como esses perfis estão atrelados ao seu certificado, quando o seu certificado for
revogado ou expirar, o app não rodará mais.
Há dois tipos de perfis de aprovisionamento: Ad Hoc e Corporativo. Os perfis de aprovisionamento
Ad Hoc são restritos a determinados IDs de dispositivos, ou sejam eles são executados apenas em
um determinado telefone identificado (via ID do dispositivo) e informado no Developer Program
Portal. Os perfis Ad Hoc são mais indicados para teste internos ou programas beta limitados, porque
eles não podem ser expandidos para até mais de 100 dispositivos e além disso eles demandam mais
administrativamente (ou seja, adicionar o ID de cada dispositivo no portal do programa).
Planejamento • Design • Desenvolvimento • Implantação
26
É importante observar que um perfil de aprovisionamento não é um mecanismo de segurança.
Embora ele forneça autorização básica para que um app seja executado, ele não oferece autenticação
do usuário nem proteção extra dos dados utilizados ou acessados no seu app. O mais aconselhável é
proteger o seu app com meios internos. Como mencionado no capítulo “Desenvolvimento” deste guia,
você pode agregar uma grande variedade de recursos de segurança e estruturas do iOS ao seu app
desenvolvido internamente. Por exemplo, uma das melhores formas de proteger o seu app interno é
criar uma biblioteca padrão para autenticação de usuários.
3. Valide e crie em Xcode. Depois de instalados o seu certificado de distribuição e o perfil de
aprovisionamento, você precisará validar o seu código em Xcode. Para obter mais informações sobre o
processo de assinatura de código, siga as instruções passo-a-passo no Developer Provisioning Portal.
Assim que o app for validado, o Xcode criará um pacote para que a distribuição no ambiente
corporativo ocorra como um processo simples de exportação. Use o Xcode Organizer para
compartilhar um projeto que foi adicionado ao seu arquivo e selecione as opções para distribuição
no ambiente corporativo. Esse processo cria automaticamente um pacote contendo o app, o perfil de
aprovisionamento e outros elementos necessários para distribuição remota.
Distribuição
Uma vez finalizada a criação do seu app, a distribuição pode ocorrer hospedando o seu app em um
servidor web simples criado internamente, configurando o seu próprio catálogo de apps internos, ou
usando uma solução de terceiros para gerenciamento de dispositivos móveis.
A solução ideal depende dos seus requisitos específicos, da sua infraestrutura e do nível de
gerenciamento de apps que você precisa.
Planejamento • Design • Desenvolvimento • Implantação
Visão geral Xcode Organizer
O Organizer é simplesmente uma janela para gerenciamento de projetos
em Xcode, repositórios SCM, arquivos de apps e dispositivos — que
oferece, inclusive, configuração rápida de novos dispositivos com iOS para
desenvolvimento. Dentro do contexto de distribuição de apps, o organizer é a
biblioteca central a partir da qual é possível compartilhar (exportar) apps para
distribuição no ambiente corporativo. O Organizer também pode ser usado
para instalar apps internos e aprovisionar perfis em dispositivos conectados.
27
Processo de distribuição remota de apps
A forma mais simples de distribuir o seu app é hospedá-lo em um servidor web. Basta seguir estas etapas:
1. Hospede o seu app em um servidor web que os seus funcionários possam acessar.
2. Notifique os seus usuários por e-mail, SMS, por notificação push ou qualquer outro método que os
seus usuários possam receber uma mensagem em um dispositivo com iOS que o app está disponível;
não se esqueça de informar a URL do app.
3. Dê um toque na URL para instalar o app. Uma caixa de diálogo perguntará se você deseja continuar
com a instalação.
Para obter mais detalhes sobre como definir um serviço para distribuição remota de app, acesse
http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/.
Catálogo dos apps internos
Sua equipe também pode criar um catálogo de apps internos que ofereça um portal para a distribuição
remota dos seus apps em iOS. Esse modelo de auto-atendimento exige um mínimo em termos de download e
instalação por parte dos funcionários. O catálogo pode oferecer as URLs para que os apps possam ser baixados
diretamente, possibilitando assim a instalação e atualização de vários apps simultaneamente, agilizando
a implantação e a configuração. Um site ou app nativo—otimizado para iPhone ou iPad—é um método
ainda mais fácil para colocar as URLs de uma forma organizada e mais familiar. Para obter um exemplo
informativo de um catálogo de apps internos, consulte “Estudo de caso: A App Store interna da GE” à direita.
Gerenciando as atualizações
Os apps desenvolvidos e distribuídos internamente não são atualizados automaticamente. É necessário
comunicar os funcionários sobre as atualizações e orientá-los sobre como instalar o app. Se o
identificador do aplicativo associado ao app no Xcode não mudar, ele irá reconhecer o app como um
app já existente e instalará a atualização, mantendo os dados e preferências do app armazenados
localmente. Para maior praticidade, considere a possibilidade de desenvolver uma função dentro do app
que entre em contato com o servidor em busca de atualizações durante a execução.
Na distribuição remota de apps é possível fornecer um link para o app atualizado, diretamente dentro do
seu app. Se você criar um aplicativo de catálogo de apps nativos, pense na possibilidade de usar Serviços
de Notificação Push com um alerta ou ícone que permita que o usuário saiba quando houver alguma
atualização disponível.
Gerenciamento de dispositivos móveis
Várias soluções de terceiros para gerenciamento de dispositivos móveis já oferecem recursos de
distribuição remota de apps. Uma das vantagens de gerenciar apps internos em um ambiente
Planejamento • Design • Desenvolvimento • Implantação
Estudo de caso: A App Store interna da GE
A equipe de desenvolvimento interno de apps
para dispositivos móveis da GE, o Mobile Center
for Excellence, não desenvolve apenas apps
avançados. Eles também criaram um portal
interno, a GE Internal App Store, para simplificar
os downloads dos apps específicos da companhia
para os seus mais de 300 mil funcionários.
“Precisávamos encontrar um jeito prático
para distribuir os aplicativos para dispositivos
móveis internamente”, explica James Blomberg,
diretor de Mídias Novas e Emergentes da GE
tecnologia. “Também temos apps na App Store da Apple, mas precisávamos
de uma coisa mais privativa, para os aplicativos da GE que não podem ser
compartilhados com todos.
Desde o seu lançamento em 2009, a App Store da GE já registrou a visita de
dezenas de milhares de usuários internos e mais de 100 mil downloads de apps.
Quando há apps novos disponíveis, o grupo os divulga na internet da companhia,
posts e boca a boca pelos 200 membros do Mobile Center of Excellence da GE,
que conta com participantes de todos os principais setores da companhia.
O sucesso da loja se deve em parte à sua aparência simples, mas muito
eficiente. “A interface é bem rica, mas fácil de usar”, explica Dayan Anandapa,
diretor de Tecnologias Digitais e Colaboração da GE. “É só se cadastrar e clicar
em uma URL para obter instruções sobre todo o processo de download.
Como os próprios dispositivos são muito práticos, queríamos um processo de
instalação que seguisse o mesmo padrão.
Em uma empresa tão grande e diversificada como a GE, nem todos os apps
internos servem para todos os usuários. Para controlar o acesso e deixar os
apps à disposição apenas a quem interessa, a empresa instituiu um sistema de
acesso em duas fases. “Temos o single sign-on para todos os apps e listas de
controle de acesso para os apps confidenciais”, explica Blomberg.
A App Store interna da GE ajuda a informar e a divulgar os recursos da GE para
dispositivos móveis, além de facilitar o processo de download dos apps. Mas
há outras vantagens.
“Ela também atua como repositório, uma central de compartilhamento de
conhecimento para as nossas diferentes áreas de negócios”, conta Blomberg.
“Além disso é totalmente aberta a novos relacionamentos. Várias pessoas
que não se conheciam hoje trabalham juntas. Em toda GE a comunicação e
colaboração móvel é enorme.”
28
gerenciado é a capacidade de ter controle sobre as versões e saber quais usuários estão trabalhando com
qual versão do seu app. Várias soluções para gerenciamento de dispositivos também oferecem serviços de
Notificações Push que permitem que os usuários saibam quando há apps novos ou atualizações disponíveis.
E as soluções para gerenciamento de dispositivos móveis conseguem fazer isso. Configurações de rede e
políticas de segurança - é uma ótima forma de configurar diretamente os dispositivos no momento em que
um app é instalado (por exemplo, certificados Wi-Fi ou VPN). Para obter mais informações sobre soluções
para gerenciamento de dispositivos móveis, acesse www.apple.com/iphone/business/integration/mdm.
Anunciando a sua solução
Parabéns! Você projetou, desenvolveu e implantou um iOS app para os seus funcionários. A única coisa que
falta fazer é anunciar aos quatro ventos dentro da sua empresa. Alguns dos melhores apps internos e mais
inovadores caem no esquecimento e não são adotados ou não dão retorno de investimento simplesmente
porque os usuários não sabem que eles existem. Há várias formas de anunciar novas soluções para os seus
usuários. Veja aqui algumas ideias que podem ser usadas quando você for compor seu pacote de anúncio e
comunicação do seu app:
• Considere a possibilidade de promover os apps internos mais recentes e melhores na intranet da empresa.
• Crie um site específico na sua intranet apenas para os apps em iOS e permita que os usuários façam
comentários, participem de fóruns e assim por diante.
• Crie uma demo em vídeo do seu app em ação para que os usuários entendam o poder da solução.
Exemplo: Comunicação interna
Ao anunciar novos apps internos para os seus usuários, a Genentech dá
uma grande importância à comunicação dos novos recursos e benefícios de
cada solução. Assim como um fornecedor de software faria uma campanha
para lançamento de um produto, a Genentech cria material de marketing
exclusivo para a divulgação de cada app interno novo. Essa estratégia traz
resultados imediatos, ajudando na maior adoção dos novos apps.
• Envie e-mails e boletins para divulgar o app.
• Coloque cartazes e outros materiais gráficos em locais de maior acesso para que os funcionários
tomem conhecimento do app quando estiverem circulando pelo escritório e pelo campus.
• Quando possível, envie notificações push para os seus usuários sobre novos apps, assim que eles
estiverem disponíveis e também sobre aprimoramentos em recursos.
• Incremente o catálogo de apps internos com capturas de tela e demos em vídeo dos seus apps para
que os funcionários obtenham mais detalhes sobre eles.
Mais à frente
Mas implantar e divulgar o seu app ainda não é o fim do processo — na verdade, é apenas o começo. A cada
app de sucesso para dispositivos móveis, seus usuários irão exigir outros mais. Este guia é apenas um ponto
de partida para a sua equipe de desenvolvimento. Além deste guia, há uma grande variedade de recursos
didáticos, melhores práticas, dicas e técnicas à disposição como parte do iOS Developer Program. Entre em
contato com outras pessoas através dos fóruns para desenvolvedores ou baixe os vídeos para desenvolvedores
para conhecer melhor os recursos avançados da plataforma. As possibilidades são ilimitadas.
Planejamento • Design • Desenvolvimento • Implantação
29
Mais recursos didáticos
Quer se aprimorar no desenvolvimento de apps internamente na empresa? Os recursos avançados
apresentados abaixo vão mais fundo e trazem informações técnicas detalhadas sobre os tópicos mais
relevantes para o desenvolvimento de apps internos. Vídeos WWDC
Para assistir os engenheiros da Apple e especialistas discutirem como inovar com a ajuda das
tecnologias mais recentes da Apple, acesse: http://developer.apple.com/videos/wwdc/2010/
Podcast da Universidade de Stanford
Conheça as ferramentas e as APIs necessárias para a criação de apps para iPad, iPhone e
iPod touch. “O podcast Developing Apps for iOS” da Universidade de Stanford abrange
o design da interface de usuário para dispositivos móveis, interações especiais para os
usuários com a ajuda das tecnologias Multi-Touch, Core Animation e muito mais. Confira
essa série no iTunes ou acesse:
http://itunes.apple.com/us/itunes-u/developing-apps-for-ios-hd/id395605774
Big Nerd Ranch
Esse curso de sete dias, elaborado para oferecer a você noções básicas sobre Objetive-C
e do iOS SDK, traz um material bastante abrangente sobre desenvolvimento com iOS. O
Big Nerd Ranch também pode vir até você com workshops para a sua equipe interna de
desenvolvimento. Para saber mais sobre as ofertas do Big Nerd Ranch acesse: www.bignerdranch.com
Pragmatic Studio
Esse curso prático de quatro dias ensina como criar apps em iOS repletos de recursos. Para
saber mais acesse: http://pragmaticstudio.com/iphone/
Sobre Objects
About Objects
I Saiba mais sobre desenvolvimento de apps em iOS com turmas menores e cursos mais
individualizados. Para ver uma lista completa dos custos disponíveis acesse: www.aboutobjects.com
© 2011 Apple Inc.Todos os direitos reservados. Apple, o logotipo da Apple, Bonjour, Cocoa Touch, Dashcode, iMac, Instruments, iPad, iPhone, iPod, iPod
touch, iTunes, o logo do iTunes, Keychain, Mac, MacBook, MacBook Air, Safari e Xcode são marcas comerciais da Apple Inc., registradas nos Estados Unidos
e em outros países. Multi-Touch é uma marca comercial da Apple Inc. Apple Store é uma marca de serviço da Apple Inc., registrada nos Estados Unidos e
em outros países. App Store é marca de serviço da Apple Inc. A palavra marca Bluetooth e os logos são marcas comerciais registradas da Bluetooth SIG,
Inc. e qualquer uso dessas marcas pela Apple é devidamente licenciado. Intel e Intel Core são marcas comerciais da Intel Corp. nos Estados Unidos e em
outros países. UNIX é marca registrada do The Open Group. Os demais produtos e nomes de empresas aqui mencionados provavelmente são marcas
comerciais das suas respectivas empresas. Este material tem apenas caráter informativo. A Apple não assume qualquer responsabilidade sobre o seu uso.
30