BT

Experimente a nova interface visual do InfoQ! Veja o novo design do InfoQ 3.0 e nos diga o que você achou.

iOS 9 Day by Day: Uma análise do iOS para desenvolvedores

| por Sergio De Simone Seguir 21 Seguidores , traduzido por Diogo Carleto Seguir 46 Seguidores em 12 fev 2016. Tempo estimado de leitura: 4 minutos |

O iOS 9 Day by Day é um livro gratuito de Chris Grant da shinobicontrols que fornece uma anaálise do iOS 9 para os desenvolvedores. O livro é composto de 13 curtos capítulos que colocam as principais características do iOS 9 em ação nos projetos de exemplo que acompanham.

O InfoQ tem coberto extensamente o iOS 9 nos últimos meses. Uma das motivações da série "iOS 9 for Developers" do InfoQ é auxiliar o desenvolvedor a se aproximar dos novos recursos do SDK do iOS 9, as ferramentas relacionadas, e fornecer uma visão ampla de todas novidades e atualizações do framework. O iOS 9 Day by Day aborda as mesmas preocupações, embora faça isso fornecendo projetos de exemplo que demonstram como usar as novas funcionalidades.

Segue a lista de todos os 13 capítulos, cada um acompanhado por um projeto Xcode:

  • Search APIs
  • User Interface testing
  • Storyboard references
  • UIStackView
  • Xcode code coverage
  • Multitasking
  • Contacts framework
  • Apple Pay
  • UIKit Dynamics
  • MapKit Transit
  • GamePlayKit - pathfinding
  • GamePlayKit - behaviors and goals
  • CloudKit web services

O livro nasceu de uma coleção de posts independentes. Isto torna cada capítulo um tutorial independente que pode ser lido e executado. Todos projetos estão implementados em Swift.

O InfoQ conversou com Sam Burnstone, evangelista técnico na shinobicontrols, sobre o Swift e o ecossistema de desenvolvimento iOS.

Quais são as três funcionalidades mais importantes no iOS 9, em sua opinião?

Funcionalidade 1) UIStackView - O AutoLayout é um tanto difícil de se familiarizar em um primeiro momento. Fixar uma view em um container é bastante simples, mas em hierarquias mais complexas, como as que requerem que as views sejam posicionadas relacionadas a outras são difíceis de realizar de forma programática ou usando storyboards. Isso rapidamente se torna um emaranhado de restrições de layout.

A Apple obviamente percebeu isso e introduziu a UIStackView, que remove a maior dor de cabeça ao desenhar views. Tudo que se exige do desenvolvedor é posicionar o stack view e definir o eixo sobre quais sub-views devem ser organizadas (horizontal ou vertical). A view então manipulará as sub-views automaticamente. A possibilidade de aninhar StackViews dentro de outra é extremamente poderosa, e resulta em um layout muito mais gerenciável, devido à enorme redução de restrições de layout.

Funcionalidade 2) Busca - o iOS 9 permite que os desenvolvedores exponham o conteúdo dos aplicativos para o iOS, tornando possível para os usuários visualizarem o conteúdo sem sair de sua tela inicial. A ligaçãopode ser conseguida usando NSUserActivity e permite aos usuários ir diretamente para a aplicação através da tela inicial, o que melhora consideravelmente a experiência do usuário.

Funcionalidade 3) Suporte direita para esquerda - Embora existam funcionalidades mais interessantes, esta foi uma adição interessante. Frequentemente nos esquecemos que existem regiões no mundo que não usam os aplicativos da mesma maneira que nós. A boa notícia é que aplicativos que usam predominantemente UIKit padrão não precisarão fazer quase nada para aproveitar os benefícios do suporte a idiomas direita para esquerda, além de localizar o conteúdo.

Quais projetos que estão no livro foram mais divertidos de escrever?

Acho que o capítulo StackView foi particularmente interessante. Pesquisando a nova funcionalidade, ficamos impressionados com quão pouco código foi preciso para desenhar qualquer hierarquia de views; simplesmente arraste algumas views em um storyboard e adicione algumas restrições simples (constraints). A API parece ter sido muito bem pensada e tem algumas funcionalidades extras como a possibilidade de animar uma sub-view ao exibí-la ou ocultá-la.

Tendo implementado um extenso conjunto de pequenos e variados projetos, como você julga a maturidade do Swift como um substituto ao Objective-C?

O Swift está certamente maduro o suficiente para desenvolver projetos inteiros. A interoperabilidade com bases de código escritas em C e Objective-C significa que é possível migrar bases de código existentes. Entretanto, é possível continuar desenvolvendo em Objective-C e simplesmente anotar o velho código com alguns dos novos atributos que a Apple introduziu, para melhorar a forma como as APIs Objective-C são consumidas em Swift.

O ritmo em que o Swift está evoluindo é muito emocionante, embora a parte ruim disto é que o código usando em uma versão anterior da linguagem frequentemente quebra. O compromisso da Apple para o desenvolvimento de Swift após a abertura do código, no entanto, significa que os desenvolvedores irão agora estar cientes de quais partes de sua base de código podem quebrar e podem responder muito mais cedo a essas mudanças.

As ferramentas para desenvolver em Swift ainda estão muito primitivas no momento, embora goste bastante da direção que a Apple tem tomado para o Playground do XCode. O Playground parece ser uma ótima ferramenta para ensinar ou testar um novo algoritmo. A Apple parece realmente estar colocando o Swift como uma grande primeira linguagem de aprendizado, e realizando muito trabalho para torná-la o mais acessível assim que possível.

A shinobicontrols é uma empresa que comercializa controles de interface interativas de usuário para desenvolvedores iOS e Android, tais como shinobicharts, shinobitoolkit e shinobiforms.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
BT