Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre Novidades.
Autores: Alexandre Oliveira e Vitor Granzinoli Vellozo
Muitas novidades nessa nova versão, inclusive alguns novos componentes que prometem agilizar o desenvolvimento de aplicativos e jogos, novas maneiras de atualizar a aplicação e mudanças na maneira de se desenvolver. Para discutir o tema, o artigo faz uma breve introdução e, em seguida, apresenta várias novidades da mais nova versão do iOS, explicando os novos componentes e suas funcionalidades e todo o poder que essas novidades agregam à plataforma móvel da Apple.
Em
que situação o tema é útil
O tema é útil para todos os desenvolvedores que
buscam constante atualização, e que buscam as informações necessárias para
agilizar o aprendizado sobre as novidades do iOS.
Após o sucesso da versão 5 do seu sistema operacional para sistemas móveis, a Apple lançou em setembro de 2012 a versão 6 do iOS, acompanhando esta atualização, uma atualização na ferramenta de desenvolvimento Xcode, que inclui o suporte às novidades deste sistema, além de atualizações no SDK e simuladores.
Nesta versão foram adicionadas centenas de novas funcionalidades, correções de bugs e modificações no funcionamento de vários componentes, que para muitos ocorreu de forma brusca, pois o iOS 5 havia sido lançado a cerca de um ano e da mesma forma, incluía uma série de novidades que exigiam tempo para adaptação.
Das novas funcionalidades, iremos falar sobre as mudanças no ambiente de desenvolvimento, detalhando as principais melhorias na ferramenta Xcode, modificações em nível de compilador e os novos componentes visuais como o UICollectionView, que nos permite criar aplicações com o layout similar à aplicação de fotos que acompanha o iPad de uma maneira simplificada.
Como nem tudo são flores, a evolução do sistema operacional nem sempre é feita de maneira transparente para o desenvolvedor, que muitas vezes se vê em uma posição desconfortável de ter que reaprender algo já costumeiro em seu dia a dia, como é o caso do método viewDidUnload, utilizado desde a primeira versão do sistema operacional para liberar recursos quando uma tela é removida da memória, que foi totalmente descartado, não sendo mais necessária a sua implementação. Outra mudança drástica foi a maneira como controlamos a orientação dos dispositivos, que recebeu novos aliados como o Auto Layout (ver Nota do DevMan 1).
Como as mudanças são muitas, iremos mostrar uma visão geral de cada novo componente ou mudança que consideramos importantes, deixando o leitor livre para aprofundar seus estudos na tecnologia que mais lhe interessa. No final do artigo incluímos uma série de referências para os assuntos aqui tratados, que podem servir como ponto inicial para suas pesquisas.
É muito importante frisar que a utilização de componentes específicos para iOS 6 fazem com que a exigência mínima do sistema operacional executada seja alterada para a versão seis. Caso o desenvolvedor pretenda suportar versões anteriores do sistema operacional, é necessário que seja feito um tratamento especial nas classes onde tais componentes serão executados, utilizando diretivas de compilador, do contrário a aplicação simplesmente não irá funcionar.
Melhorias no Cocoa Touch
Além de uma nova versão da ferramenta de desenvolvimento Xcode, que incluiu novos simuladores para versão 6 do sistema operacional, outras mudanças ocorreram internamente em nível de compilador e interface. As mudanças se dividem em novos componentes, novas funcionalidades e algumas modificações no funcionamento base de alguns componentes (ver Nota do DevMan 2).
O Cocoa Touch é a camada de mais alto nível para comunicação com o sistema operacional iOS. A mesma segue o padrão de arquitetura MVC (Model-View-Controller) e possui uma série de bibliotecas que facilitam a vida do desenvolvedor como o UIKit, MapKit, Core Data e Core Animation. Uma lista completa das bibliotecas que fazem parte do Cocoa Touch pode ser encontrada nas referencias no final do artigo.
Automatic Synthesize
Uma das regras básicas para utilizarmos uma property é a criação de seu par synthesize, que automaticamente cria os getters e setters necessários para o seu funcionamento. Até então, esta regra não podia ser quebrada, pois o código deixaria de compilar, porém, com o Xcode 4.5, podemos agora esquecer estas declarações de vez, pois o compilador irá se encarregar de inseri-las em tempo de compilação.
Algo que devemos ter em mente é que o acesso a propriedades deve ser feito diretamente pelo seu método self, pois o comando synthesize utilizado manualmente adicionava uma variável de instância com o mesmo nome, permitindo que o acesso fosse feito diretamente pelo nome da variável. Com o automatic synthesize, as variáveis de instância ainda são criadas, porém a sua nomenclatura padrão difere do nome da propriedade, sempre adicionando um underscore na frente de seu nome, o que nos permite ter propriedades com o mesmo nome de parâmetros de métodos, sem receber o famoso aviso “local declaration of ‘sua variável’ hides instance variable”.
O mais interessante é que esta nova funcionalidade é compatível não somente com aplicações que utilizam a última versão do sistema operacional, mas também com versões anteriores. Sendo uma funcionalidade opcional, o único requerimento é a utilização da versão mais recente da ferramenta Xcode.
Na Listagem 1 temos uma comparação entre as duas maneiras de se declarar propriedades, com automatic synthesize e utilizando o synthesize manualmente.
Listagem 1. Comparação entre o synthesize automático e manual.
@implementation ViewController
@synthesize propertyManual;
// Como o automatic synthesize declara as propriedades.
// @synthesize propertyAutomica = _propertyAutomatica;
- (void)viewDidLoad {
[super viewDidLoad];
propertyManual = @"Property manual acessada pela variável de instância.";
self.propertyManual = @"Property manual acessada via self.";
self.propertyAutomatica = @"Property automática acessada via self.";
_propertyAutomatica = @"Property automática acessada pela
variável de instância.";
}
@end
O método viewDidUnload
Em versões anteriores, quando uma aplicação recebia o aviso de falta de memória, todos os view controllers não visíveis na tela recebiam uma chamada para o método viewDidUnload, que os removia da memória. Este processo nos permitia liberar recursos que seriam carregados novamente quando a tela fosse aberta, porém, este método foi marcado como deprecated, ou seja, ele não é mais chamado e deve ser removido da implementação.
De acordo com a Apple, este método foi descontinuado, pois na maioria dos casos, descarregar componentes visuais em casos de pouca memória não resolvia de fato o problema.
Com a remoção deste método, a lógica para liberar tais recursos em caso de falta de memória deve ser centralizada no método didReceiveMemoryWarning, porém, não devemos simplesmente mover todo o conteúdo do método viewDidUnload para o método didReceiveMemoryWarning, pois como a view não é mais descarregada da memória, o método viewDidLoad não será chamado novamente e os componentes não serão reinicializados.
Novas maneiras de controlar a orientação
Outra mudança em conceitos básicos foi introduzida nesta versão do iOS, a maneira como é controlada a orientação dos dispositivos, que antes era feita sobrescrevendo o método shouldAutorotateToInterfaceOrientation dentro do viewcontroller, nos permitindo ajustar componentes visuais de acordo com a orientação, ou até mesmo carregar uma tela totalmente diferente. Este método foi descontinuado e a recomendação é utilizar uma nova dupla de métodos para controle de orientação, são eles: shouldAutorotate, que indica se a tela tem suporte a mudança de orientação e supportedInterfaceOrientations, que indica quais orientações são suportadas pelo view controller.
...Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.