SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
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 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.”
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 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.

Más contenido relacionado

Destacado

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Destacado (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Desenvolvendo apps nativos para iOS - Tópico ZERO

  • 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 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. 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 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.