Advertisement
  1. Code
  2. iOS

iOS do princípio com Swift: Entendendo o ecossistema do iOS

Scroll to top
Read Time: 11 min
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Setting Up the Development Environment

Portuguese (Português) translation by David Batista (you can also view the original English article)

Antes de você começar a construir aplicativos iOS, é crucial que você entenda primeiro o ecossistema. Este artigo inspeciona os fundamentos do sistema operacional da Apple, os vários dispositivos disponíveis e a App Store da Apple.

1. Por que iOS?

Antes da chegada do Android e do Windows Phone, a Apple era o jogador dominando no segmento mobile, rivalizado pela Nokia e BlackBerry. Com o aparecimento de novas plataformas mobile, se tornou mais e mais importante se perguntar qual plataforma é mais adequada para você.

Apesar da Apple ter começado na frente em 2007, o Android superou o iOS em quota de mercado. O que isso significa para o iOS? Ele ainda é uma plataforma que se vale a pena desenvolver? Claro que é. Há muitas razões para você começar a desenvolver para iOS hoje.

  • Fortes incentivos financeiros: As pessoas gastam mais dinheiro na App Store da Apple do que em qualquer outra plataforma mobile. Apesar do fato que o Android vem sendo o jogador dominante no segmento mobile, a plataforma iOS permanece sendo mais lucrativa para desenvolvedores.
  • Jardim murado: Ao longo dos anos a App Store da Apple recebeu uma série de críticas de desenvolvedores e clientes, o processo de revisão da Apple em particular. É claro, porém, que a política da Apple transformou a App Store em que a qualidade de suas aplicações é maior do que em qualquer outra loja de móvel. Os clientes também tendem a se sentir muito mais seguros ao comprar aplicativos da App Store do que em outras — mais abertas — plataformas, tais como Google Play.
  • Comunidade e Suporte: A comunidade de desenvolvedores iOS é uma grande comunidade para se fazer parte. Há um suplimento ilimitado de artigos, tutoriais e documentação para ajudar você quando você estiver preso em um problema. Também, a documentação da Apple para o SDK do iOS é soberba, para não mencionar as centenas de vídeos WWDC (World Wide Developer Conference) disponíveis no site de desenvolvedor da Apple.

As pessoas muitas vezes esquecem, ou não sabem, que o Android e o iOS são plataformas muito diferentes. Embora ambas as plataformas terem sido projetadas para o segmento móvel, o ecossistema iOS difere em muitos aspectos do ecossistema do Android.

Numa perspectiva de desenvolvimento, a maioria das pessoas parecem achar mais fácil desenvolver para iOS do que para o Android. Não me entenda mal, não estou me referindo ao conjunto de tecnologia que cada plataforma usa nem estou me referindo às ferramentas disponíveis para cada plataforma. Duas razões são a base deste abismo entre o iOS e o Android, fragmentação e taxa de adoção.

Fragmentação

Um dos principais pontos forte do Android é ao mesmo tempo uma das suas principais fraqueza. Como a maioria de vocês sabem, o sistema operacional Android é distribuído como um projeto open source e pode, portanto, ser usado e modificado por qualquer um. Numerosos fabricantes de hardware viram o potencial do Android, especialmente porque é apoiado pelo Google.

Como resultado, o Android rapidamente ganhou popularidade. O problema é que cada fabricante de hardware modifica o Android para atender suas necessidades e uma ampla variedade de modelos surgiram desde a introdução do Android.

Mesmo que a quota de mercado do Android possa parecer um grande pote de mel, é uma dor de cabeça criar um software que rode em cada versão do Android disponível atualmente. Devido a centenas de dispositivos diferentes que rodam o Android, testar software em hardwares não é uma tarefa fácil. Como você pode imaginar, o suporte e a compatibilidade torna-se um verdadeiro desafio.

Taxa de adoção

Tradicionalmente, em muitos países, o mercado de telefonia móvel está sob controlo apertado por operadoras de celular. Desde o início, a Apple sabia que precisava estar no controle de seus dispositivos móveis para fornecer a melhor experiência possível ao usuário. O resultado é que os clientes podem atualizar seus dispositivos iOS para a ultima versão do iOS no mesmo dia que ele é lançado ao publico. Esta é uma importante vantagem da plataforma iOS e o resultado é substancial. Menos de uma semana após o lançamento do iOS 9, mais de 50% dos dispositivos iOS tinham sido atualizados para o iOS 9.

Vamos comparar isto com o Android. Em setembro de 2015, apenas 20% dos usuários Android atualizaram seus dispositivos para o Lollipop (lançado em 2014) e menos que 40% tem atualizado para KitKat (lançado em outubro de 2013).

A razão para trazer estes números não é minimizar a plataforma Android ou qualquer outra plataforma móvel. O que eu quero é enfatizar o impacto que a taxa de adoção tem sobre o ecossistema de aplicação dessas plataformas.

Os usuários mais lentos a adotar uma nova versão de um sistema operacional, os desenvolvedores que são forçados a dar suporte à versões mais antigas do sistema operacional. Isto também torna menos atraente adotar novas tecnologias, que só podem ser usadas em uma fração de dispositivos Android.

2. Por que nativo?

Se você é um leitor frequente do Envato Tuts+, você deve ter visto sobre frameworks multi-plataforma como Xamarin, React Native, PhoneGap, Apache Cordova e Titanium Mobile. Você pode estar se perguntando por que você deve passar pela dificuldade de aprender Swift ou Objetive-C quando você pode criar aplicativos iOS usando C# ou JavaScript. Deixe-me te dar um breve resumo das suas opções se você decidir desenvolver aplicativos para iOS.

Aplicativos Web

Um aplicativo web é sua primeira opção e era, de fato, a unica opção antes da introdução do SDK nativo do iOS em 2008. O lado positivo dos aplicativos web é que eles não precisam lidar com o processo de revisão da App Store da Apple. Por que isso? Um aplicativo web é um nome fantasia para um site que age e se comporta como um aplicativo. Tudo que você precisa é um navegador, como o Safari Mobile ou o Google Chrome.

Aplicativos Web tem vantagens claras. Eles são multi-plataforma por padrão já que o aplicativo roda em um navegador. Outra vantagem é a curva de aprendizagem para se criar um aplicativo web. Se você conhecer de desenvolvimento web, então você estará criando e desenvolvendo em pouco tempo.

É claro, que as desvantagens de aplicativos web não podem ser ignoradas tampouco. Um aplicativo web tem acesso limitado aos recursos do dispositivo em que ele esta rodando. Aplicativos web mobile são muito poderosos graças ao HTML5 e o JavaScript. Entretanto, eles têm limitações distintas em termos do que eles podem fazer. Você pode não ser capaz de usar alguns recursos legais do iPad e iPhone. Além de, aplicativos web geralmente requerem uma conexão com a internet para funcionar, embora sempre há exceções à esta regra.

Talvez a maior desvantagem em criar um aplicativo web é que, no geral, eles são significativamente mais lentos que aplicativos nativos. A capacidade de resposta de um aplicativo web tem aumentado durante os anos, mas o atraso adicionado pelo navegador não pode ser esquecido ou ignorado. A experiência é diferente. Não há dúvida sobre isso.

Frameworks mobile multi-plataforma

A promessa de um framework multi-plataforma é que desenvolvedores possam escrever um aplicativo que funcione em múltiplos dispositivos mobile a partir de um único código base. Isso é obtido através de uma série de abordagens.

Muitos frameworks, como Phonegap e Apache Cordova, usam o SDK nativo da plataforma para criar um web view no qual o aplicativo é incorporado. Como um aplicativo web, isto impõem limites em termos de funcionalidade. A principal vantagem é que o aplicativo parece com um aplicativo nativo em termos de interface de usuário e pode ser distribuído através da loja da plataforma.

Apesar dos frameworks de desenvolvimento mobile parecerem com o Santo Graal para desenvolvimento móvel, há um grande número de desvantagens que precisam ser considerados. A desvantagem mais importante é que seu aplicativo dependerá de um framework de terceiros. Em outras palavras, seu projeto depende da empresa que fornece a solução multi-plataforma. Se essa empresa finalizar suas atividades ou for lenta para implementar as alterações feitas no SDK nativo, você pode ser forçado a começar do zero. Este é um risco que você precisa considerar.

SDK do iOS

Escolher desenvolver com o SDK nativo é a melhor escolha se você quer criar uma aplicativo que destaca-se e aproveite dos recursos do dispositivo. Optar por um aplicativo nativo também significa que você irá trabalhar em um ambiente de desenvolvimento robusto e que você pode contar com as ferramentas de desenvolvimento, utilitários e suporte da Apple.

3. Ecossistema iOS

Um dos mais atraentes aspectos do ecossistema iOS é sua simplicidade. A lista de dispositivos capacitados a rodar o iOS é surpreendentemente pequena se comparada com o Android ou Windows Phone. Isso significa que testar aplicativos iOS é muito menos massante se comparado a outras plataformas.

Como eu mencionei anteriormente, o Android ultrapassou o iOS em termos de cota de mercado, mas isto é penas parte da história. A plataforma iOS é responsável por mais de um terço do uso da web em dispositivos mobile. O que isso nós diz sobre o segmento mobile? Isto nós diz que o iOS continua a ser o jogador dominante no segmento mobile, pelo menos online, e isso apesar com a grande cota de mercado do Android.

Dispositivos

Há essencialmente duas familias de dispositivos dentro do ecossistema iOS: 

  • a familia do iPad
  • a familia do iPhone, que também inclui o iPod Touch

Para uma visão geral completa, eu recomendo dar uma olhada nesta lista. As principais diferenças dentro da familia do iPhone são a capacidade de hardware e o tamanho da tela. Para o iPhone e o iPod Touch, há quatro tamanhos de tela:

  • 3.5"
  • 4.0"
  • 4,7"
  • 5.5"

Para a familia do iPad, há três tamanhos de tela:

  • 7,9"
  • 9,7"
  • 12,9"

A diferença no tamanho das telas impacta o desenvolvimento, mas não adiciona muita sobrecarga para a maioria dos aplicativos. Eu falarei mais sobre isto no decorrer da série.

Em 2012, a Apple apresentou o iPad Mini e em 2015 a família do iPad foi expandida com o iPad Pro. Embora o lançamento do iPad Mini e o iPad Pro tenha causado um murmúrio na industria de tecnologia, isto não teve muito impacto para os desenvolvedores iOS.

A tela do iPad Mini, por exemplo, é significantemente menor que a 9.7" do iPad Air, mas a resolução é idêntica a resolução 9.7" dos dispositivos iPad. Devido a tela menor do iPad Mini, o tamanho médio do toque alvo é menor e isto pode representar um problema para alguns aplicativos.

iOS

A Apple tradicionalmente lança uma nova versão de seu sistema operacional todo ano. Até hoje, a Apple lançou nove versões principais de seu sistema operacional com a mais recente lançada sendo o iOS 9.

O suporte a dispositivos é um aspecto do iOS que as pessoas muitas vezes ignoram. Pegue o iPhone 4S, como exemplo. O iPhone 4S foi lançado em 2011 e ainda é capaz de rodar o iOS 9. Não há plataforma mobile que chegue nem perto disto em termos de suporte a dispositivos.

App Store

Uma das principais razões para se desenvolver para a plataforma iOS é o incrível sucesso da App Store. Vender software nunca foi tão fácil graças á App Store da Apple no iOS e o OS X. Com mais que um milhão de aplicativos, ela está ficando um pouco cheia na App Store para iOS, mas não se esqueça que o números de aparelhos iOS também continua a crescer exponencialmente.

O segmento mobile está no começo e ainda tem muito potencial que está à espera de ser descoberto. Como a internet no final dos anos noventa, o segmento mobile continuará a crescer a um ritmo acelerado e a quantidade de dinheiro que pode ser feito aumentará com cada novo smartphone, smartwatch e tablet vendido.

4. watchOS e tvOS

Em 2015, a apple anunciou dois novos sistemas operacionais, watchOS para o Apple Watch e o tvOS para o Apple TV. A Apple abriu ambas as plataformas para desenvolvedores terceiros, trazendo aplicativos de terceiros para seu pulso e sala de estar.

As ferramentas para desenvolvimento para o watchOS e tvOS são idênticas as usadas para o desenvolvimento do iOS. Está é outra razão para a escolha do ecossistema iOS. Os sistemas operacionais da Apple, OS X, iOS, watchOS e tvOS são fortemente integrados e as possibilidades são praticamente infinitas.

Conclusão

Agora você tem uma visão clara do ecossistema iOS e eu espero que eu tenha convencido você de começar a desenvolver para o iOS.  No próximo post, eu irei mostrar à você como começar no SDK nativo, configurando o ambiente de desenvolvimento. Você vai se surpreender de como isto é fácil.

Se você tiver dúvidas ou comentários, você pode deixa-los nos comentários abaixo ou você pode me enviar no Twitter.

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.