Objective-C                Saulo Arruda18/02/2012
@sauloarruda• Co-fundador e desenvolvedor da Jera• 12 anos fazendo software• 6 meses fazendo iOS
Desenvolvimento iOShttps://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/Introduction/Introd...
• Conhecendo a linguagem Objective-C• Explorando o framework Cocoa Touch• Criando uma aplicação simples• Testando no dispo...
Installing Tools
Ferramentas1. Download Xcode2. Inscrever-se como um desenvolvedor no   iOS Developer Program
Jump Right In
Hello World
Tools
Simulator e Debugger
Provisioning Profiles
Testar no dispositivo
Documentação
Profiler
Snapshots
SCM - Git
Distribuição
Language
Objective-C
Extensão de ANSI C•   Convensão sintática para definição de classes•   Convensão para métodos de classe e instância•   Sint...
Vantagens• Tipagem dinâmica detemina classe em  tempo de execução.• Ligação dinâmica determina o método a ser  chamado em ...
Classes e objetosExtensão                     Tipo           Header files da definição de classes,   .h           tipos, fun...
Definição de Classe
Implementação#import "MyClass.h"                                // Static typing                                          ...
Definição do método
Envio de mensagens[myArray insertObject:anObject atIndex:0];[[myAppObject theArray]    insertObject:[myAppObject objectToI...
Métodos de classe// nil is essentially the same as NULLNSMutableArray *myArray = nil;// Create a new array and assign it t...
Propriedades@property (nonatomic, copy) NSString *userName;// Default is to simply assign value@property BOOL flag;// Copy...
Blocosint result = myBlock(4); // result is 28
Protocolos e          Categorias@interface HelloWorldViewController :     UIViewController <UITextFieldDelegate> {}@end@pr...
Basic Tasks
Frameworks
Apps are Driven by Events
Using an Object-Oriented Framework
Design Patterns
Model-View-Controller
Delegation
Protocol
Notification
Target-action
Key-Value Observer
Outros• View hierarchy• Responder chain• View controller• Receptionist
Human Interface   Design
Human Interface Principles• Integridade estética• Consistência• Manipulação direta• Feedback• Metaphors• Controle do usuário
Guidelines•   Focar na tarefa primária•   Fazer uso simples e óbvio•   Usar terminologia centrada ao usuário•   Fazer alvo...
Estratégia de design• Enumere a lista de funcionalidades• Desenhe para o dispositivo• Customize apropriadamente• Prototipe...
App Design
App Store
Preparar para App Store
Finding Information
Where to Go from     Here
Obrigado!
@sauloarrudasaulo@jera.com.br
Minicurso Objective-C
Minicurso Objective-C
Minicurso Objective-C
Minicurso Objective-C
Próximos SlideShares
Carregando em…5
×

Minicurso Objective-C

4.854 visualizações

Publicada em

Minicurso ministrado em 18/02 na DueCappa

Publicada em: Tecnologia
0 comentários
7 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
4.854
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
273
Comentários
0
Gostaram
7
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Minicurso Objective-C

  1. 1. Objective-C Saulo Arruda18/02/2012
  2. 2. @sauloarruda• Co-fundador e desenvolvedor da Jera• 12 anos fazendo software• 6 meses fazendo iOS
  3. 3. Desenvolvimento iOShttps://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/Introduction/Introduction.html
  4. 4. • Conhecendo a linguagem Objective-C• Explorando o framework Cocoa Touch• Criando uma aplicação simples• Testando no dispositivo• Publicando na App Store
  5. 5. Installing Tools
  6. 6. Ferramentas1. Download Xcode2. Inscrever-se como um desenvolvedor no iOS Developer Program
  7. 7. Jump Right In
  8. 8. Hello World
  9. 9. Tools
  10. 10. Simulator e Debugger
  11. 11. Provisioning Profiles
  12. 12. Testar no dispositivo
  13. 13. Documentação
  14. 14. Profiler
  15. 15. Snapshots
  16. 16. SCM - Git
  17. 17. Distribuição
  18. 18. Language
  19. 19. Objective-C
  20. 20. Extensão de ANSI C• Convensão sintática para definição de classes• Convensão para métodos de classe e instância• Sintaxe para chamada de método (mensagem)• Sintaxe para declaração de propriedades• Convensão para tipagem estática e dinâmica• Blocos - segmentos de código encapsulados• Extensões da linguagem como protocolos e categorias
  21. 21. Vantagens• Tipagem dinâmica detemina classe em tempo de execução.• Ligação dinâmica determina o método a ser chamado em tempo de execução.• Carregamento dinâmico permite adicionar módulos de código em tempo de execução.
  22. 22. Classes e objetosExtensão Tipo Header files da definição de classes, .h tipos, funções e constantes. Source files da implementação em .m Objective-C ou C Source files da imeplementação em C++ .mm além de Objective-C e C
  23. 23. Definição de Classe
  24. 24. Implementação#import "MyClass.h" // Static typing MyClass *myObject1;@implementation MyClass // Dynamic typing- (id)initWithString:(NSString *)aName id myObject2;{ // código vai aqui}+ (MyClass *)myClassWithString:(NSString *)aName{ // código vai aqui}@end
  25. 25. Definição do método
  26. 26. Envio de mensagens[myArray insertObject:anObject atIndex:0];[[myAppObject theArray] insertObject:[myAppObject objectToInsert] atIndex:0];[myAppObject.theArray insertObject:myAppObject.objectToInsert atIndex:0];myAppObject.theArray = aNewArray;self.userName = self.textField.text;
  27. 27. Métodos de classe// nil is essentially the same as NULLNSMutableArray *myArray = nil;// Create a new array and assign it to the myArray variable.myArray = [NSMutableArray array];
  28. 28. Propriedades@property (nonatomic, copy) NSString *userName;// Default is to simply assign value@property BOOL flag;// Copy the object during assignment.@property (copy) NSString *nameObject;// Declare only a getter method.@property (readonly) UIView *rootView;@synthesize flag;@synthesize nameObject;@synthesize rootView;@synthesize flag, nameObject, rootView;@synthesize nameObject=_nameObject;
  29. 29. Blocosint result = myBlock(4); // result is 28
  30. 30. Protocolos e Categorias@interface HelloWorldViewController : UIViewController <UITextFieldDelegate> {}@end@protocol MyProtocol- (void)myProtocolMethod;@end@interface NSDate (NSDateCreation)
  31. 31. Basic Tasks
  32. 32. Frameworks
  33. 33. Apps are Driven by Events
  34. 34. Using an Object-Oriented Framework
  35. 35. Design Patterns
  36. 36. Model-View-Controller
  37. 37. Delegation
  38. 38. Protocol
  39. 39. Notification
  40. 40. Target-action
  41. 41. Key-Value Observer
  42. 42. Outros• View hierarchy• Responder chain• View controller• Receptionist
  43. 43. Human Interface Design
  44. 44. Human Interface Principles• Integridade estética• Consistência• Manipulação direta• Feedback• Metaphors• Controle do usuário
  45. 45. Guidelines• Focar na tarefa primária• Fazer uso simples e óbvio• Usar terminologia centrada ao usuário• Fazer alvos do tamanho dos dedos• Tirar ênfase das customizações• Usar elementos de forma consistente• Usar animação sutil para comunicação• Pedir para gravar somente quando necessário
  46. 46. Estratégia de design• Enumere a lista de funcionalidades• Desenhe para o dispositivo• Customize apropriadamente• Prototipe e itere
  47. 47. App Design
  48. 48. App Store
  49. 49. Preparar para App Store
  50. 50. Finding Information
  51. 51. Where to Go from Here
  52. 52. Obrigado!
  53. 53. @sauloarrudasaulo@jera.com.br

×