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.