Your SlideShare is downloading. ×

Minicurso Objective-C

3,885

Published on

Minicurso ministrado em 18/02 na DueCappa

Minicurso ministrado em 18/02 na DueCappa

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,885
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
229
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Objective-C Saulo Arruda18/02/2012
  • 2. @sauloarruda• Co-fundador e desenvolvedor da Jera• 12 anos fazendo software• 6 meses fazendo iOS
  • 3. Desenvolvimento iOShttps://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/Introduction/Introduction.html
  • 4. • Conhecendo a linguagem Objective-C• Explorando o framework Cocoa Touch• Criando uma aplicação simples• Testando no dispositivo• Publicando na App Store
  • 5. Installing Tools
  • 6. Ferramentas1. Download Xcode2. Inscrever-se como um desenvolvedor no iOS Developer Program
  • 7. Jump Right In
  • 8. Hello World
  • 9. Tools
  • 10. Simulator e Debugger
  • 11. Provisioning Profiles
  • 12. Testar no dispositivo
  • 13. Documentação
  • 14. Profiler
  • 15. Snapshots
  • 16. SCM - Git
  • 17. Distribuição
  • 18. Language
  • 19. Objective-C
  • 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. 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. 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. Definição de Classe
  • 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. Definição do método
  • 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. 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. 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. Blocosint result = myBlock(4); // result is 28
  • 30. Protocolos e Categorias@interface HelloWorldViewController : UIViewController <UITextFieldDelegate> {}@end@protocol MyProtocol- (void)myProtocolMethod;@end@interface NSDate (NSDateCreation)
  • 31. Basic Tasks
  • 32. Frameworks
  • 33. Apps are Driven by Events
  • 34. Using an Object-Oriented Framework
  • 35. Design Patterns
  • 36. Model-View-Controller
  • 37. Delegation
  • 38. Protocol
  • 39. Notification
  • 40. Target-action
  • 41. Key-Value Observer
  • 42. Outros• View hierarchy• Responder chain• View controller• Receptionist
  • 43. Human Interface Design
  • 44. Human Interface Principles• Integridade estética• Consistência• Manipulação direta• Feedback• Metaphors• Controle do usuário
  • 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. Estratégia de design• Enumere a lista de funcionalidades• Desenhe para o dispositivo• Customize apropriadamente• Prototipe e itere
  • 47. App Design
  • 48. App Store
  • 49. Preparar para App Store
  • 50. Finding Information
  • 51. Where to Go from Here
  • 52. Obrigado!
  • 53. @sauloarrudasaulo@jera.com.br

×