Desenvolvimento

1 out, 2014

Desenvolvimento para iOS – uma reflexão sobre passado, presente e futuro

Publicidade

Na World Wide Developer Conference deste ano, o conhecido WWDC ou simplesmente “dub-dub” para os mais próximos, a Apple deixou claro seu recado para a comunidade de desenvolvedores de sua plataforma: “Escreva código, mude o mundo”. Uma frase tão simples e óbvia que, ao lê-la, nós, desenvolvedores, pensamos: “Mas não é exatamente isso que estamos fazendo há tantos anos?”, ou seja, escrevendo código para os devices da Apple e tentando fazer a vida das pessoas melhor?

Na época do evento, ficou claro que duas coisas poderiam ocorrer a partir dali: ou teríamos melhorias incrementais (como aconteceu em anos anteriores), ou seguramente teríamos algo que seria uma ruptura com o passado e um novo horizonte de oportunidades iria se abrir. Contrariando todas as expectativas, inclusive as nossas, o segundo aconteceu!

Após os anúncios do keynote, os sentimentos dos participantes nos corredores do Moscone Center West (local onde historicamente acontece a WWDC) eram uma mistura de felicidade com frustração. Felicidade, pois todos estávamos muito satisfeitos com os anúncios e tivemos boas novidades. Frustração, porque sabíamos que uma carga de conhecimento e experiência que acumulávamos há anos com o Objective-C seria substituída algo novo – a desconhecida e intrigante linguagem Swift. Por essa, ninguém esperava.

Conversando com alguns engenheiros amigos que trabalham na Apple há anos, eles mesmos foram surpreendidos pelo anúncio, e alguns tomaram conhecimento da linguagem poucas horas antes da apresentação. Apenas um pequeno grupo de pessoas estava trabalhando secretamente em um projeto que mais tarde se tornou o Swift.

Historicamente, a Apple sempre valorizou sua comunidade de desenvolvedores, buscando estabelecer altos padrões de engenharia de software, User Interface (UI) e User Experience (UX). Veja um dos seus aplicativos para iOS, o GarageBand: um bom exemplo de como fazer uso da tecnologia existente para criar algo que beira a magia. Quem é usuário desse aplicativo sabe do que ele é capaz.

E não é por menos. Um dos principais motivos para a retenção de usuários no universo Apple é a AppStore, e nela foi criada um ciclo virtuoso, no qual bons apps a preços acessíveis atraem um grande público, que por sua vez atrai mais bons desenvolvedores, que vão construir apps cada vez melhores, e assim por diante.

Evolução – da tecnologia e também do usuário

E não é só tecnologia, hardware, recursos e apps que estão evoluindo. O usuário também está evoluindo junto. Façamos uma reflexão sobre o passado do desenvolvimento para a Apple. Mais especificamente, o passado do desenvolvimento para iOS. Um telefone, um iPod e um comunicador de internet. Assim foi apresentado o iPhone. Natural que a necessidade do usuário fosse suprida apenas com webapps, ou aplicativos em HTML que imitavam a interface do iPhoneOS (nome do iOS na época), pois a web era a sinônimo de internet. Lembrando que não era possível, para o usuário comum, instalar aplicativos além dos que já eram embarcados no aparelho.

iPhone lançado, usuários e crítica fascinados com o novo gadget, e meses depois a Apple anuncia o primeiro SDK (Software Development Kit) para desenvolvedores, que permitiria a criação de aplicativos nativos para o iPhone, e não mais os chatos e limitados webapps. Junto com o SDK foi lançada a AppStore, oferecendo aos desenvolvedores e usuários um local único e centralizado para vender e comprar aplicativos. Para os desenvolvedores surgia uma oportunidade ainda maior, pois a loja de aplicativos resolveria uma grande dificuldade que existia na época – a divulgação e a logística de entrega. O que antes era uma dor de cabeça, agora estava a um toque de distância do usuário, com um cartão de crédito pronto para ser usado, criando uma verdadeira corrida do ouro na indústria.

O interessante disso tudo isso é observar que desenvolvedores e usuários estão sempre lado a lado nessa evolução. Olhando para trás, vemos que desde o lançamento do iPhone, em 2007, a Apple já preparava o terreno para receber desenvolvedores no futuro e iniciar uma parceria com eles, criando um mercado até então inexistente. Ao lançar o iPhoneOS 2.0, a Apple disponibilizou um SDK completo e de qualidade, fazendo com que o iPhone não fosse apenas um fantástico sistema operacional, mas também uma poderosa plataforma em que desenvolvedores pudessem criar aplicativos de qualidade. Uma boa parte dos frameworks que usamos até hoje, como o UIKit, foram liberados nessa versão.

As primeiras versões do iOS também possuíam uma característica marcante: o esqueumorfismo, princípio de design no qual os elementos virtuais simulam o visual de objetos reais. Bons exemplos dessa prática de design podiam ser observados em aplicativos como o Notas ou em elementos mais simples como botões e pickers. O usuário sabia – ou pelo menos conseguia imaginar – como interagir com esses apps ou componentes simplesmente pelo fato de eles lembrarem objetos do mundo real.

A partir daí, a atenção ao desenvolvedor cresceu exponencialmente. Com o iOS 3 (e o surgimento do iPhone 3GS), vieram novas APIs, como sensor de proximidade, in-app purchases e APIs para streaming de áudio e vídeo, que abriram portas para uma nova gama de aplicativos. Em 2009, com a versão 3.2 do iOS, a Apple lançou o iPad e, com ele, vieram novos paradigmas de design de interface para uma tela maior. A versão 4 trouxe, para os usuários, multitasking, AirPlay, AirPrint, Game Center, entre outras centenas de funcionalidades e melhorias. Já o iOS 5 incluía a Siri, Notification Center, iMessages, updates over-the-air e, claro, o iCloud. Do ponto de vista do desenvolvedor, essas versões juntas foram responsáveis pela introdução de blocks, ARC (Automatic Counting Reference), literals e milhares de novas APIs, como o GCD (Grand Central Dispatch), que facilitou o desenvolvimento de aplicações multi-thread, UIAppearance, Storyboards, Schemes e integração do Xcode com o GIT.

O iOS 6 trouxe importantes ferramentas de interface, como Collection Views e Auto-Layout, que pré-anunciavam mudanças no tamanho de tela de um iPhone que poderia ser lançado em um futuro próximo – o que de fato aconteceu meses depois, com as telas de 4″ introduzidas no iPhone 5.

Com a vinda do iOS 7, a Apple quis também passar a mensagem de que os usuários de dispositivos móveis evoluíram. Elementos esqueumórficos já não eram mais necessários e foram completamente removidos do sistema, promovendo uma drástica mudança visual. A UI agora estava mais natural, próxima do usuário e de como ele interage com ela. Simulações de física foram incorporadas aos elementos de UIKit (UIKit Dynamics), que passaram a responder à ação da gravidade, elasticidade e posicionamento do dispositivo, em uma interface viva, mas focada no que é importante: o conteúdo.

Muitos aplicativos foram refeitos do zero e muitos outros surgiram, mostrando que a nova cara do iOS e os novos paradigmas de design tinham sido realmente mudanças positivas. Foram apresentadas também ferramentas como o Bots e frameworks novos como o XCTest, que davam suporte para os desenvolvedores garantirem a qualidade dos seus códigos, gerando testes automatizados.

O iOS 8, junto com o OSX Yosemite, está agora diminuindo a distância entre o mobile e o desktop, em uma estratégia amadurecida na qual um não compete com o outro, mas são complementares, no sentido de tornarem as transições entre um e outro suaves e sem passos extras.

Comece a escrever um e-mail no iPhone, chegue ao escritório, abra o iMac e continue exatamente de onde parou. Comece a navegar na web no iMac e continue na mesma página no iPad. O iPhone tocou? Atenda no OSX ou no iPad. E essa mesma tecnologia que torna isso possível, conhecida como Handoff, está disponível para desenvolvedores e seus apps.

E agora, o futuro presente

Por fim, a Apple está começando um novo capítulo em sua história com os desenvolvedores, rompendo os laços com as arquiteturas do passado e introduzindo uma nova linguagem de programação chamada Swift. Ela vem com as promessas de tornar o código mais seguro e com alto desempenho. Testes mostram que códigos que demandam processamento (como criptografia) chegam a ser processados até 70% mais rapidamente quando escritos em Swift.

Mas não é só isso. O Swift é uma linguagem moderna, que incorpora padrões que há anos são requisitados por desenvolvedores de todo o mundo, como generics, tuples, inferência de tipos, closures e outros, sem deixar de lado uma de suas principais características, que é o foco em produtividade.

A melhor época para começar a desenvolver aplicativos para iOS foi, sem dúvida, quando a Apple disponibilizou o SDK pela primeira vez. Se existe uma “segunda melhor época”, podemos afirmar com convicção que é agora.

A Apple raramente dá ponto sem nó. Analisando o histórico de lançamentos de APIs e de versões dos seus sistemas operacionais, podemos ter a certeza de que a introdução do Swift e de todas as novidades apresentadas na WWDC deste ano são apenas o começo de uma nova evolução no mundo do desenvolvimento de software. A nova linguagem de programação é apenas o meio pelo qual a Apple conseguirá, cada vez mais, facilitar o trabalho do desenvolvedor e abrir as portas para um futuro no qual os dispositivos, existentes e os que estão por vir, sejam cada vez mais integrados e poderosos.

A Apple já não é mais um ou outro produto, mas sim um ecossistema pensado como um produto único, formado por vários componentes integrados de uma maneira sem precedentes na indústria, e o desenvolvedor é mais do que nunca o elemento fundamental desse ecossistema. As sementes para a próxima década estão plantadas. Se você sempre sonhou com uma oportunidade para aprender a desenvolver aplicativos para os dispositivos da Apple, a sua hora chegou, não deixe para depois.

***

Artigo feito em colaboração com George Villasboas, integrador do movimento CocoaHeads no Brasil que sonha em ver a comunidade brasileira de desenvolvedores ganhando o mundo. Engenheiro, web developer desde 1997 e iOS developer desde 2010. Participou de projetos de mobilidade para diversas empresas listadas na Fortune 500 e co-autor de títulos promovidos pela Apple em diversas AppStores. @ghvillasboas | LinkedIn | contato@cocoaheads.com.br

***

Artigo publicado na Revista iMasters, na seção “Mobile”. Você pode assinar a Revista e receber as edições impressas em casa, saiba mais.