Você está na página 1de 4

Tpico ZERO

Desenvolvendo apps nativos para iOS Tpico ZERO


Por Andr Luiz Salla

Vamos desenvolver apps


nativos para iOS? Legal! Mas
por onde eu comeo?
Se voc est comeando a desenvolver para
iOS, alguns pontos podem te assustar ou mesmo te
afugentar antes mesmo de escrever sua primeira linha de
cdigo. para ajudar nessa pequena jornada que resolvi
escrever uma srie de pequenos tpicos para gui-lo
nesses primeiros passos no mundo do iOS.
No quero bancar o professor aqui, nem ser o
cara que fala javans como se todo mundo nascesse
sabendo (aqui no caso seria mais um objectivs). Meu
objetivo ser claro, direto (ok, algumas vezes no tem
como ser to direto assim), e proporcionar uma leitura
fcil, quebrando aquele paradigma de que todo texto
tcnico tem que ser maante e chato.

Antes de comearmos a pr a mo na massa,


eu vou, nesse tpico, fazer uma breve introduo do que
desenvolver um app nativo para iOS: qual a diferena
de um app nativo, o que necessrio 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 programao e como
usar os recursos de uma nova ferramenta de
desenvolvimento? Essa pergunta no to 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 hbrida.
Um app nativo opera fortemente integrado
recursos de hardware, ou seja, explora ao mximo os
recursos que a plataforma (no caso o smartphone)
oferece. Em consequncia, ele consegue rodar usando o

Desenvolvendo apps nativos para iOS


mximo dos recursos disponveis 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 ento que outras alternativas comearam
ao desenvolvimento nativo surgiram no mercado: o web
app e o app hbrido.
Web Vs. Nativo
Abaixo, listo algumas das principais diferenas
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 verses especficas para
cada um (como iOS e Android por exemplo).

O Web App, ao contrrio de um app nativo, no


disponibilizado em uma store (App Store pra iOS ou
Google Play pra Android), e acessado por uma url.

A instalao de um Web App consiste apenas na


criao de um cone na sua Home que ir lhe direcionar
para a pgina do aplicativo. No nativo, o app de fato
instalado no armazenamento do smartphone.

No app nativo, o trfego de dados reduzido,


uma vez que o app opera direto no celular, deixando
qualquer operao web destinada apenas necessidade
de acesso externo, reduzindo a dependncia da rede.
Hbrido: o divisor de guas do desenvolvimento mobile?
Os apps hbridos so o meio termo entre o
nativo e o web, falando de forma bem simplria. O web
app no tem acesso ao recursos do sistema, mas tem um
custo reduzido de produo. J o app nativo tem um
custo mais alto de produo, mas tem total acesso
todos os recursos do sistema. O app hbrido oferece um
custo reduzido de produo, uma vez que pode rodar em
qualquer plataforma, e tambm oferece acesso aos
recursos do sistema, como cmera ou galeria de fotos.
Apesar de ser bem verstil e prtico quanto
aplicativos que no exigem o poder total do hardware,
como aplicativos comerciais, os apps hbridos ainda
perdem dos nativos quando falamos de desempenho,
como, por exemplo, apps com animaes pesadas ou
jogos.

A GeekDotCom uma empresa que vende produtos para geeks, gamers, nerds, e se orgulha do seu
pblico; tanto que seu logotipo, por mais estranho que parea, a cabea de um troll usando culos 3D.
At o incio do ano, a GeekDotCom vendia seus produtos exclusivamente pelo seu site. Foi ento que
o geek mor Renato (conhecido nas partidas de RPG como velon, o mago da biosfera), proprietrio da
GeekDotCom, resolveu investir em uma nova forma de atender seu pblico: os smartphones. Afinal, qual geek
no gostaria de poder comprar seu sabre de luz direto do seu prprio celular???
Mas a ideia no se mostrou to simples quanto Renato imaginou...
Uma verdadeira guerra custo-benefcio se instaurou para determinar como esse app para
smartphones seria desenvolvido. Sua equipe de desenvolvimento levantou ento trs opes para que o app
fosse construdo:
1. Reformular nossa loja online, e transfomar ela num Web App a melhor opo, afinal, nossa
equipe de desenvolvimento web daria conta do recado, e no teramos muito impacto, tanto de
tempo quanto de custos com a contratao de uma equipe dedicada.
2. Fazer um app nativo a melhor opo. Queremos que ele explore ao mximos 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 hbrido! uma forma de obter um balanceamento entre
performance, custos e tempo de desenvolvimento. Tambm podemos colocar o app numa store no
fim das contas.

Tpico ZERO

Sim, esse o logotipo


Como no se trata do nosso
foco, no irei entrar em detalhes sobre
desenvolvimento de apps hbridos, mas quem se
interessar, sugiro uma busca na web por PhoneGap, um
dos mais populares frameworks quando falamos de
desenvolvimento hbrido.
No fim das contas, qual o melhor: nativo, web ou
hbrido??
Vou ser direto: depende.
Depende da sua necessidade, depende dos
seus recursos disponveis, depende do tempo que voc
tem para colocar seu produto no mercado, depende da
forma como voc que coloc-lo no mercado. So muitos
fatores que tem que ser levados em conta.
No quero iludir ningum, dizendo que um
sempre ser mais vantajoso sobre o outro. Cada situao
tem que ser estudada individualmente, e a soluo 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 tm oferecer.

O que preciso para desenvolver para iOS?


Antes de iniciarmos nossa pequena aventura
no mundo do iOS, vamos ver algumas definies bsicas
e informaes teis que vo ajudar nosso caminho.
XCode

Agora, se voc se animou com o fato do XCode


ser distribudo gratuitamente pela Apple, se prepare pra
surpresinha que te aguarda no prximo requisito...
Um Mac ($$$$$$$$$)

Voc gastou uma fortuna


montando o PC mais potente
disponvel no mercado?
LEGAL!!! Mas nele no roda o
OS X...
SIM, o XCode uma ferramenta desenvolvida
pala prpria Apple, e que roda APENAS no seu sistema
operacional, o OS X.
SIM, o OS X roda APENAS num computador da
Apple.
Nesse tpico, eu vou ser politicamente correto,
e no vou citar que existem os Hackintoshes ou as VMs
como alternativa para essa limitao... OPS!!
Um (ou mais) dispositivos iOS (iPhone, iPad, etc)
Embora no seja exatamente um requisito para
desenvolver para iOS de incio, 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 aplicao.

O XCode a IDE (por IDE entenda Ambiente de


Desenvolvimento Integrado) de desenvolvimento
utilizada para o desenvolvimento voltado ao iOS.
atravs dele que seus apps nativos sero desenvolvidos.
No irei entrar em detalhes em funcionalidades
especficas do XCode agora: isso fica para os prximos
tpicos.

No entanto, o iOS Simulator no pode ser


considerado um substituto ao dispositivo real.

O XCode grtis, e pode ser baixado direto na


Mac App Store.

Outro ponto interessante, que o iOS


Simulator no oferece os recursos necessrios para
testar sua aplicao como um todo. Por exemplo, o
Simulator no suporta Push Notifications, sendo possvel

Imagine
uma
empresa
que
esteja
desenvolvendo um app para iOS. Ela precisa de vrios
testadores, cada qual com um dispositivo para testes, ou
seja, ficar preso ao iOS Simulator totalmente invivel.

Um fato interessante que vale a pena destacar, que at a verso 4 do XCode, o Interface Builder era
uma ferramenta de design de interface grfica parte que vinha junto ao SDK do iOS. Foi a partir da verso 4
que o Interface Builder se tornou integrado ao XCode. Atravs do Interface Builder possvel desenhar seus
componentes visuais, sejam eles telas do seu app ou qualquer componente visual customizado (como clulas
de um TableView, que abordaremos futuramente).

Desenvolvendo apps nativos para iOS


testar esse recurso apenas no dispositivo. (Push
Notifications ser abordado tambm em tpicos
futuros).

Linguagem padro de desenvolvimento

Uma assinatura do iOS Developer Program

Pra quem vem de outras linguagens, como


Java, C#, isso pode ser algo que vai lhe causar um certo
incmodo: a linguagem de desenvolvimento.

Esse mais um item que no exatamente


obrigatrio pra quem est aprendendo iOS, mas para
quem tem inteno de levar a coisa mais a srio, algo
interessante pra ser considerado.

Para desenvolver apps nativos para iOS pelas


ferramentas de desenvolvimento da Apple, h
atualmente duas opes de linguagem: Objective-C e a
nova Swift.

Para participar do iOS Developer Program,


necessrio pagar uma assinatura de 99 dlares anuais; o
que te dar acesso algumas vantagens.

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 pacincia para aprender uma nova velha
linguagem.

Como dito no requisito anterior, s possvel


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.

100 DISPOSITIVOS???? piada


n?? Pra que tanto se eu tenho
um iPhone s?
De cara pode parecer
dispositivos registrados; mas no .

bastante,

100

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 possvel remover de
fato um dispositivo da sua conta na renovao da sua
assinatura, anualmente.
Para um nico desenvolvedor, atuando
sozinho, 100 dispositivos anuais podem parecer
bastante; mas no para uma corporao. A Apple possui
uma soluo pra essa limitao, voltada empresas, mas
eu tratarei esse assunto em um tpico 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 sero discutidos em tpicos futuros.

Objective-C e Swift
O Objective-C a linguagem de programao
primria tanto do OS X quanto do iOS. Construda em
cima da linguagem C e do SmallTalk, o Objective-C uma
linguagem um tanto quanto diferente, mas que no ser
um impeditivo para que possamos comear a
desenvolver nossos apps; tudo uma questo de se
acostumar.
O Swift a nova linguagem de programao
desenvolvida pela Apple, que, segundo ela mesma, o
resultado de pesquisas em linguagens de programao
somado dcadas de experincia na plataforma Apple.
Apesar de estar ainda engatinhando, a quantidade de
material disponvel 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.

Thats all folks!!


isso a pessoal! Espero que vocs tenham
gostado dessa pequena introduo ao desenvolvimento
de apps nativos para iOS. Embora eu tenha falado pouco
das particularidades do iOS em si, muito interessante
ter uma viso mais abrangente das prticas de
desenvolvimento mobile, independente de plataforma.
Nos prximos tpicos, comearei de fato a falar
sobre desenvolvimento para iOS de um modo prtico: o
qu, como e porque fazer; iremos comear a pr a mo
na massa e fazer nosso primeiro app.

Pra quem ficou curioso sobre qual opo o poderoso velon escolheu, eu digo: ele escolheu o web app. Ningum
conseguiu fazer ele entender o porqu de uma loja virtual precisar ter um app que rodasse off-line, sendo que
tanto seu catlogo quanto seus pedidos se concentram no seu servidor.

Você também pode gostar