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