1Tópico ZERO
Desenvolvendo apps nativos para iOS – Tópico ZERO
Por André Luiz Salla
Se você está começando a desenvolver p...
2 Desenvolvendo apps nativos para iOS
máximo dos recursos disponíveis do sistema operacional,
obtendo uma performance sem ...
3Tópico ZERO
Como não se trata do nosso
foco, não irei entrar em detalhes sobre
desenvolvimento de apps híbridos, mas quem...
4 Desenvolvendo apps nativos para iOS
testar esse recurso apenas no dispositivo. (Push
Notifications será abordado também ...
Próximos SlideShares
Carregando em…5
×

Desenvolvendo apps nativos para iOS - Tópico ZERO

1.001 visualizações

Publicada em

O primeiro de uma série de tópicos que visa, com uma linguagem fácil e descontraída, servir de guia para quem está começando ou tem interesse no desenvolvimento de apps nativos para iOS.

Publicada em: Celular
  • Seja o primeiro a comentar

Desenvolvendo apps nativos para iOS - Tópico ZERO

  1. 1. 1Tópico ZERO Desenvolvendo apps nativos para iOS – Tópico ZERO Por André Luiz Salla Se você está começando a desenvolver para iOS, alguns pontos podem te assustar ou mesmo te afugentar antes mesmo de escrever sua primeira linha de código. É para ajudar nessa pequena jornada que resolvi escrever uma série de pequenos tópicos para guiá-lo nesses primeiros passos no mundo do iOS. Não quero bancar o professor aqui, nem ser o cara que fala “javanês” como se todo mundo nascesse sabendo (aqui no caso seria mais um objectivês). Meu objetivo é ser claro, direto (ok, algumas vezes não tem como ser tão direto assim), e proporcionar uma leitura fácil, quebrando aquele paradigma de que todo texto técnico tem que ser maçante e chato. Antes de começarmos a pôr a mão na massa, eu vou, nesse tópico, fazer uma breve introdução do que é desenvolver um app nativo para iOS: qual a diferença de um app nativo, o que é necessário para desenvolver, quais linguagens posso usar. Por que nativo? Qual a vantagem de desenvolver um app nativo? Por que devo optar por investir tempo e dinheiro para aprender uma linguagem de programação e como usar os recursos de uma nova ferramenta de desenvolvimento? Essa pergunta não é tão simples de responder. Por isso, vou apresentar alguns pontos positivos do desenvolvimento nativo, e fazer um comparativo com as outras formas de desenvolver um aplicativo mobile existentes no mercado: web e híbrida. Um app nativo opera fortemente integrado à recursos de hardware, ou seja, explora ao máximo os recursos que a plataforma (no caso o smartphone) oferece. Em consequência, ele consegue rodar usando o “Vamos desenvolver apps nativos para iOS? Legal! Mas por onde eu começo?”
  2. 2. 2 Desenvolvendo apps nativos para iOS máximo dos recursos disponíveis do sistema operacional, obtendo uma performance sem igual. Em contrapartida, desenvolver um app nativo acaba gerando um aumento de custos, fazendo com que a empresa tenha que manter times distintos para desenvolver um mesmo app para diferentes plataformas (como por exemplo, manter uma equipe iOS, outra Android e outra Windows Phone). Foi então que outras alternativas começaram ao desenvolvimento nativo surgiram no mercado: o web app e o app híbrido. Web Vs. Nativo Abaixo, listo algumas das principais diferenças entre o Web App e um App Nativo:  Um web app opera em um navegador, utilizando comumente HTML5 e Javascript para realizar suas tarefas. Por ser independente de plataforma, é capaz de rodar em qualquer dispositivos de modo semelhante, sem que haja necessidade de versões específicas para cada um (como iOS e Android por exemplo).  O Web App, ao contrário de um app nativo, não é disponibilizado em uma store (App Store pra iOS ou Google Play pra Android), e é acessado por uma url.  A instalação de um Web App consiste apenas na criação de um ícone na sua Home que irá lhe direcionar para a página do aplicativo. No nativo, o app é de fato instalado no armazenamento do smartphone.  No app nativo, o tráfego de dados é reduzido, uma vez que o app opera direto no celular, deixando qualquer operação web destinada apenas à necessidade de acesso externo, reduzindo a dependência da rede. Híbrido: o divisor de águas do desenvolvimento mobile? Os apps híbridos são o meio termo entre o nativo e o web, falando de forma bem simplória. O web app não tem acesso ao recursos do sistema, mas tem um custo reduzido de produção. Já o app nativo tem um custo mais alto de produção, mas tem total acesso à todos os recursos do sistema. O app híbrido oferece um custo reduzido de produção, uma vez que pode rodar em qualquer plataforma, e também oferece acesso aos recursos do sistema, como câmera ou galeria de fotos. Apesar de ser bem versátil e prático quanto à aplicativos que não exigem o poder total do hardware, como aplicativos comerciais, os apps híbridos ainda perdem dos nativos quando falamos de desempenho, como, por exemplo, apps com animações pesadas ou jogos. A GeekDotCom é uma empresa que vende produtos para geeks, gamers, nerds, e se orgulha do seu público; tanto que seu logotipo, por mais estranho que pareça, é a cabeça de um troll usando óculos 3D. Até o início do ano, a GeekDotCom vendia seus produtos exclusivamente pelo seu site. Foi então que o geek mor Renato (conhecido nas partidas de RPG como Évelon, o mago da biosfera), proprietário da GeekDotCom, resolveu investir em uma nova forma de atender seu público: os smartphones. Afinal, qual geek não gostaria de poder comprar seu sabre de luz direto do seu próprio celular??? Mas a ideia não se mostrou tão simples quanto Renato imaginou... Uma verdadeira guerra custo-benefício se instaurou para determinar como esse app para smartphones seria desenvolvido. Sua equipe de desenvolvimento levantou então três opções para que o app fosse construído: 1. “Reformular nossa loja online, e transfomar ela num Web App é a melhor opção, afinal, nossa equipe de desenvolvimento web daria conta do recado, e não teríamos muito impacto, tanto de tempo quanto de custos com a contratação de uma equipe dedicada.” 2. “Fazer um app nativo é a melhor opção. Queremos que ele explore ao máximos os recursos do dispositivo, tendo uma performance sem igual. Por fim, vamos colocar nosso app numa store.” 3. “Nada de web, nada de nativo: vamos de híbrido! É uma forma de obter um balanceamento entre performance, custos e tempo de desenvolvimento. Também podemos colocar o app numa store no fim das contas.”
  3. 3. 3Tópico ZERO Como não se trata do nosso foco, não irei entrar em detalhes sobre desenvolvimento de apps híbridos, mas quem se interessar, sugiro uma busca na web por PhoneGap, um dos mais populares frameworks quando falamos de desenvolvimento híbrido. No fim das contas, qual o melhor: nativo, web ou híbrido?? Vou ser direto: depende. Depende da sua necessidade, depende dos seus recursos disponíveis, depende do tempo que você tem para colocar seu produto no mercado, depende da forma como você que colocá-lo no mercado. São muitos fatores que tem que ser levados em conta. Não quero iludir ninguém, dizendo que um sempre será mais vantajoso sobre o outro. Cada situação tem que ser estudada individualmente, e a solução mais indicada irá surgir. Nesse momento, vamos nos concentrar no desenvolvimento nativo para iOS e em tudo que a Apple e suas ferramentas de desenvolvimento têm à oferecer. O que é preciso para desenvolver para iOS? Antes de iniciarmos nossa pequena aventura no mundo do iOS, vamos ver algumas definições básicas e informações úteis que vão ajudar nosso caminho. XCode O XCode é a IDE (por IDE entenda Ambiente de Desenvolvimento Integrado) de desenvolvimento utilizada para o desenvolvimento voltado ao iOS. É através dele que seus apps nativos serão desenvolvidos. Não irei entrar em detalhes em funcionalidades específicas do XCode agora: isso fica para os próximos tópicos. O XCode é grátis, e pode ser baixado direto na Mac App Store. Agora, se você se animou com o fato do XCode ser distribuído gratuitamente pela Apple, se prepare pra surpresinha que te aguarda no próximo requisito... Um Mac ($$$$$$$$$) SIM, o XCode é uma ferramenta desenvolvida pala própria Apple, e que roda APENAS no seu sistema operacional, o OS X. SIM, o OS X roda APENAS num computador da Apple. Nesse tópico, eu vou ser politicamente correto, e não vou citar que existem os Hackintoshes ou as VMs como alternativa para essa limitação... OPS!! Um (ou mais) dispositivos iOS (iPhone, iPad, etc) Embora não seja exatamente um requisito para desenvolver para iOS de início, ter um dispositivo iOS é importante. O SDK do iOS oferece o iOS Simulator, um emulador iOS para que o desenvolvedor possa testar e debugar sua aplicação. No entanto, o iOS Simulator não pode ser considerado um substituto ao dispositivo real. Imagine uma empresa que esteja desenvolvendo um app para iOS. Ela precisa de vários testadores, cada qual com um dispositivo para testes, ou seja, ficar preso ao iOS Simulator é totalmente inviável. Outro ponto interessante, é que o iOS Simulator não oferece os recursos necessários para testar sua aplicação como um todo. Por exemplo, o Simulator não suporta Push Notifications, sendo possível “Você gastou uma fortuna montando o PC mais potente disponível no mercado? LEGAL!!! Mas nele não roda o OS X...” Um fato interessante que vale a pena destacar, é que até a versão 4 do XCode, o Interface Builder era uma ferramenta de design de interface gráfica à parte que vinha junto ao SDK do iOS. Foi a partir da versão 4 que o Interface Builder se tornou integrado ao XCode. Através do Interface Builder é possível “desenhar” seus componentes visuais, sejam eles telas do seu app ou qualquer componente visual customizado (como células de um TableView, que abordaremos futuramente). Sim, esse é o logotipo
  4. 4. 4 Desenvolvendo apps nativos para iOS testar esse recurso apenas no dispositivo. (Push Notifications será abordado também em tópicos futuros). Uma assinatura do iOS Developer Program Esse é mais um item que não é exatamente obrigatório pra quem está aprendendo iOS, mas para quem tem intenção de levar a coisa mais a sério, é algo interessante pra ser considerado. Para participar do iOS Developer Program, é necessário pagar uma assinatura de 99 dólares anuais; o que te dará acesso à algumas vantagens. Como dito no “requisito” anterior, só é possível exportar um app pra um dispositivo se você possuir uma assinatura de desenvolvedor. No entanto, é importante ter em mente que, com uma conta de desenvolvedor, você poderá ter ATÉ 100 dispositivos registrados. De cara pode parecer bastante, 100 dispositivos registrados; mas não é. O “contador” de dispositivos que sua conta suporta é apenas incremental. Ou seja, mesmo que você deixe de usar um dispositivo, ele continua contando como um dispositivo registrado. Só é possível remover de fato um dispositivo da sua conta na renovação da sua assinatura, anualmente. Para um único desenvolvedor, atuando sozinho, 100 dispositivos anuais podem parecer bastante; mas não para uma corporação. A Apple possui uma solução pra essa limitação, voltada à empresas, mas eu tratarei esse assunto em um tópico futuro. Outro detalhe que vale a pena comentar é que, para que você possa publicar seu app na App Store da Apple, você precisa fazer parte do iOS Developer Program. Mais detalhes sobre a App Store e o iOS Developer Program serão discutidos em tópicos futuros. Linguagem padrão de desenvolvimento Pra quem vem de outras linguagens, como Java, C#, isso pode ser algo que vai lhe causar um certo incômodo: a linguagem de desenvolvimento. Para desenvolver apps nativos para iOS pelas ferramentas de desenvolvimento da Apple, há atualmente duas opções de linguagem: Objective-C e a nova Swift. Alguns podem pensar “poxa, mas no Android eu programo usando Java; tive que aprender apenas o SDK do Android, a linguagem eu já sabia”. Certo, mas aqui a coisa é um pouco diferente. Vai ser preciso um pouquinho de paciência para aprender uma “nova velha linguagem”. Objective-C e Swift O Objective-C é a linguagem de programação primária tanto do OS X quanto do iOS. Construída em cima da linguagem C e do SmallTalk, o Objective-C é uma linguagem um tanto quanto diferente, mas que não será um impeditivo para que possamos começar a desenvolver nossos apps; tudo é uma questão de se acostumar. O Swift é a nova linguagem de programação desenvolvida pela Apple, que, segundo ela mesma, é o resultado de pesquisas em linguagens de programação somado à décadas de experiência na plataforma Apple. Apesar de estar ainda engatinhando, a quantidade de material disponível na web sobre a linguagem vem crescendo exponencialmente, e seu futuro é bastante promissor, uma vez que está sendo alvo de constantes melhorias por parte da Apple. That’s all folks!! É isso aí pessoal! Espero que vocês tenham gostado dessa pequena introdução ao desenvolvimento de apps nativos para iOS. Embora eu tenha falado pouco das particularidades do iOS em si, é muito interessante ter uma visão mais abrangente das práticas de desenvolvimento mobile, independente de plataforma. Nos próximos tópicos, começarei de fato a falar sobre desenvolvimento para iOS de um modo prático: o quê, como e porque fazer; iremos começar a pôr a mão na massa e fazer nosso primeiro app. “100 DISPOSITIVOS???? É piada né?? Pra que tanto se eu tenho um iPhone só?” Pra quem ficou curioso sobre qual opção o poderoso Évelon escolheu, eu digo: ele escolheu o web app. Ninguém conseguiu fazer ele entender o porquê de uma loja virtual precisar ter um app que rodasse off-line, sendo que tanto seu catálogo quanto seus pedidos se concentram no seu servidor.

×