Introdução ao desenvolvimento para iOS (sistema operacional para dispositivos móveis da Apple). Nesta apresentação você pode conferir alguns conteúdos como conjunto de ferramentas para desenvolvimento, como iniciar um projeto, a estrutura de um aplicativo e a linguagem de desenvolvimento.
19. Arquivos de Suporte ao Projeto
Configuração, Strings, Imagens e o Main.
Estrutura do Aplicativo
20. Código do seu Aplicativo
Classes de Objetos e Storyboard
As pastas (folders) são
chamados de grupos. Esses
grupos são abstrações para
ajudar a organizar seu projeto,
elas não existem no sistema de
arquivos.
Reorganize como quiser!
Estrutura do Aplicativo
24. Tipos primitivos
Os tipos mais comuns são:
int, float, ...
possui próprio tipo booleano
(obj-c implementou antes do que o C99)
BOOL os valores são YES=1 e NO=0
Alguns outros tipos especiais
SEL, id, Class, IMP
nil é utilizado ao invés de NULL
Implementação
[myButton addTarget:self
action:@selector(myButtonWasPre
ssed)
forControlEvents:UIControlEvent
TouchUpInside];
!
- (void)myButtonWasPressed {
// Do something about it
}
Seletores
25. Strings
sempre utilize (NSString *) ao invés das Strings do C, a
menos que você saiba o que está fazendo.
inline
@”Este é um exemplo de uma String inline”;
atribuído
NSString *str = @”Esta é uma variável atribuída”;
Se você acidentalmente esquecer do @, pode esperar um crash!
27. Prefixo NS? WTF
• NSString
• NSNumber
• NSLog
• NSException
NS é herdado de uma API do NextStep.
NexT foi uma empresa fundada por Jobs
após a saída em 1985. NextStep foi um
sistema operacional (Unix based)
juntamente com ObjC.
31. Objetos
Todo objeto é do tipo
id
Ponteiro para os dados da instância do Objeto:
id minhaInstancia;
Você pode declarar um tipo mais específico:
MyClass *minhaInstancia;
32. Sintaxe ObjC vs Java
MyClass *minhaInstancia = [[MyClass alloc] init];
ou
id minhaInstancia = [[MyClass alloc] init];
Objective C
MyClass minhaInstancia = new MyClass();
Java
41. Escrever getters e setters na mão é chato d+
Propriedades
As propriedades são macros que o compilador interpreta para gerar
automaticamente os getters e setters.
Propriedades
43. Atributos da Propriedade
@property (atributos) tipo nome;
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html
fonte
Capacidade de Escrita
readwrite (padrão)
Atomicidade
readonly
nonatomic
(não há atributo “atomic”,
mas ele é o padrão).
Semântica Setter
assign (padrão)
retain
copy
atribuído
preserva
Suporte Multi Thread*
Melhor performance
* Multi Thread é uma característica que permite repartir a utilização do processador entre várias tarefas simultaneamente.
45. Idéia básica
Você precisa ajudar o Garbage Collector a saber quando é
permitido limpar um objeto
ObjC já realiza isso com uma técnica semelhante à contagem de
referência. (ARC - Automatic Reference Counting)
46. Gerenciamento de
Memória
Ciclo de vida de um Objeto
+ alloc - init - retain - release - release
Cria Objeto Inicializa Libera do uso
Libera do usoPreserva para o uso
47. Gerenciamento de
Memória
Ciclo de vida de um Objeto
1
+ alloc - init - retain - release - release
Cria Objeto Inicializa Libera do uso
Libera do usoPreserva para o uso
1 2 1 0
+1 +1 -1 -1