Your SlideShare is downloading. ×
0
A primeira app iOS     ninguém esquece
A primeira app iOS     ninguém esquece
@sr_valeriano•   Ricardo Valeriano•   Developer iOS, Java, Ruby e JavaScript•   Instrutor iOS, Java, Ruby e JavaScript•   ...
Como?•   Básico, mesmo, mesmo•   Base para pesquisar depois•   Alguns conceitos... básicos•   Algum código nos slides =(• ...
NeXT Computer
NeXT Computer•   1985 - fundada por Jobs
NeXT Computer•   1985 - fundada por Jobs•   1988 - 1º NeXTStep Release
NeXT Computer•   1985 - fundada por Jobs•   1988 - 1º NeXTStep Release•   1990 - NeXTstation
NeXT Computer•   1985 - fundada por Jobs•   1988 - 1º NeXTStep Release•   1990 - NeXTstation
NeXT Computer•   1985 - fundada por Jobs•   1988 - 1º NeXTStep Release•   1990 - NeXTstation•   1990 - NeXTcube
NeXT Computer•   1985 - fundada por Jobs•   1988 - 1º NeXTStep Release•   1990 - NeXTstation•   1990 - NeXTcube
NeXT Computer•   1985 - fundada por Jobs•   1988 - 1º NeXTStep Release•   1990 - NeXTstation•   1990 - NeXTcube•   1993 - ...
NeXT Computer•   1985 - fundada por Jobs•   1988 - 1º NeXTStep Release•   1990 - NeXTstation•   1990 - NeXTcube•   1993 - ...
NeXTSTEP - S.O.      1988
NeXTSTEP - S.O.      1988
Steve Jobs e NeXTSTEP•   Unix-like :: BSD•   Objective-C runtime•   O.O. application layer•   Dock•   GUI
OpenStep  “OpenStep was an object-oriented applicationprogramming interface (API) specification for an   object-oriented op...
iPod Touch
iPhone OS   2007
iOS - SDK e apps      2008
iPad (iOS)   2010
iOS 4 - Multitasking        2010
iOS 5 2011
iOS 5 2011
iOSCocoa TouchMedia LayerCore Services  Core OS
iOSCocoa TouchMedia LayerCore Services  Core OS
iOSSistema Operacional      Cocoa Touch      Media Layer      Core Services        Core OS
iOSSistema Operacional      Cocoa Touch      Media Layer      Core Services        Core OS
iOS MultitaskingGestureViewNotification ServiceSystemPush ControllersApple Recognizers          Cocoa Touch
iOS         Cocoa TouchMultitaskingApple Push Notification ServiceGesture RecognizersSystem View Controllers
iOS MultitaskingGestureViewNotification ServiceSystemPush ControllersApple Recognizers          Cocoa Touch
iOSAir PlayVideoGraphic Media LayerAudio
iOS           Media LayerGraphicAudioVideoAir Play
iOSAir PlayVideoGraphic Media LayerAudio
iOSSQLiteIn-App CoreARC PurchaseiCloud StorageServices
iOS         Core ServicesiCloud StorageARCIn-App PurchaseSQLite
iOSSQLiteIn-App CoreARC PurchaseiCloud StorageServices
iOSCore Bluetooth network, memory)System FrameworkExternal Accessory FrameworkSecurity(thread, OS            Core
iOS          Core OSCore BluetoothExternal Accessory FrameworkSecurity FrameworkSystem (thread, network, memory)
iOSCore Bluetooth network, memory)System FrameworkExternal Accessory FrameworkSecurity(thread, OS            Core
Xcode, a IDE (para mac)
Show me!
Objective-C•   Bizarro?•   Esquizóide?•   Obstáculo?
Objective-C•   Orientado a Objetos•   Dinâmico•   Gerenciamento de memória é contigo!•   Square Brackets prá dar e vender
BRACE YOURSELVESIT’S A C EXTENSION
Coisas em C?NSLog(@"Vamo que vamo-lhes!");
Coisas em C?        Funçãozinha marota.NSLog(@"Vamo que vamo-lhes!");
Coisas em C?        Funçãozinha marota.NSLog(@"Vamo que vamo-lhes!");
Coisas em C?        Funçãozinha marota.NSLog(@"Vamo que vamo-lhes!");
Coisas em C?NSLog(@"Vamo que vamo-lhes!");
Classes•   Header File >> Declaração•   Implementation File >> Implementação XD
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
Diretivas (*.h)       Disponibiliza recursos e tipos básicos            (como a classe NSString)#import <Foundation/Founda...
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end           Permite definir uma nova classe
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end         Nome da nova classe
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end                     Herança
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end          É isso!
Diretivas (*.m)#import "Contato.h"@implementation Contato@end
Diretivas (*.m)Disponibiliza a declaração da classe   #import "Contato.h"   @implementation Contato   @end
Diretivas (*.m)            Poderia importar outros              arquivos se preciso#import "Contato.h"@implementation Cont...
Diretivas (*.m)#import "Contato.h"@implementation Contato@end         Objective C, meu amigo, agora          vamos impleme...
Diretivas (*.m)#import "Contato.h"@implementation Contato@end           E o nome dessa classe é                  Contato
Diretivas (*.m)#import "Contato.h"@implementation Contato@end          E terminamos!
Show me!
Instanciando Objetos         Contato allocMétodo de classe, para alocar memória      e otras cositas más...
Instanciando Objetos             .     Contato alloc     Invocação de método?
Instanciando Objetos          X          .     Contato alloc
Instanciando Objetos          X          .     Contato alloc
Instanciando Objetosto *contato = [ Contato alloc        init];           Na verdade é assim que se invoca!
Instanciando Objetosto *contato = [[Contato alloc init];                Contato alloc]               Agora está completo.
Instanciando Objetosto *contato = [[Contato alloc] init];              Retorna uma “promessa”,                queremos o O...
Instanciando Objetosto *contato = [[Contato alloc] init];               Nova invocação de método!
Instanciando Objetosto *contato = [[Contato alloc] init];              O retorno é um objeto do tipo                      ...
Instanciando ObjetosContato *contato = [[Contato alloc] init];         contato                 Criando uma referência cham...
Instanciando ObjetosContato   contato = [[Contato alloc] init];          Define o tipo da referência.
Instanciando ObjetosContato *contato = [[Contato alloc] init];         Por falar em referência
Propriedades                 Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;
Propriedades                 Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;                Nome da propr...
Propriedades                  Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;       Tipo referenciado por...
Propriedades                 Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;                 Por falar em...
Propriedades                  Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;                Gerenciament...
Propriedades                  Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;                Gerenciament...
Propriedades                   Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;   Acesso concorrente (thre...
Implementação (*.m)  #import "Contato.h"  @implementation Contato  @synthesize nome;  @end
Implementação (*.m)  #import "Contato.h"  @implementation Contato  @synthesize nome;  @end            Agora sim: getter e ...
Propriedades     •   Métodos de acesso e atribuiçãoContato *contato = [[Contato alloc] init];[contato setNome:@"Ricardo Va...
Propriedades     •   Métodos de acesso e atribuição     •   Podem ser acessadas via “dot notation”Contato *contato = [[Con...
Métodos-(void)cadastra:(Contato *)contato;       cadastra
Métodos-(void)cadastra:(Contato *)contato;       cadastra:(Contato             Indica recebimento de parâmetro
Métodos-(void)cadastra:(Contato *)contato;       cadastra:(Contato                  Tipo do parâmetro
Métodos-(void)cadastra:(Contato *)contato;       cadastra:(Contato              Nome da variável no método
Métodos(void)cadastra:(Contato *)contato;Tipo do retorno
Métodos-(void)cadastra:(Contato *)contato;
Métodos   -(void)cadastra:(Contato *)contato;  Método de instância.+ para método de classe.
Métodos-(void)cadastraNome:(NSString *)nome              email:(NSString *)email;
Métodos -(void)cadastraNome:(NSString *)nome               email:(NSString *)email;[cadastro cadastraNome:@"Ricardo"      ...
VALERIANOY U NO FINISHES THE FORM?
Binding de Elementos•   Declaração (*.h)•   IBOutlet (propriedades)•   Instâncias de UIView
Binding de Elementos•   Declaração (*.h)•   IBOutlet (propriedades)•   Instâncias de UIView
Binding de Eventos•   Declaração (*.h)•   IBAction (métodos)•   Instâncias de UIView
Binding de Eventos•   Declaração (*.h)•   IBAction (métodos)•   Instâncias de UIView
Show me the code,     now!
Integração nativa
Integração nativaNSURL *url = [NSURL URLWithString:appUrl];[[UIApplication sharedApplication] openURL:url];
Maps
MapsNSString *urlEndereco = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@", @"Av. Ana costa"];
MapsNSString *urlEndereco = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@", @"Av. Ana costa"];NSString *app...
MapsNSString *urlEndereco = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@", @"Av. Ana costa"];NSString *app...
Telefone
TelefoneNSString *appUrl = @"tel:98761234";
TelefoneNSString *appUrl = @"tel:98761234";NSURL *url = [NSURL URLWithString:appUrl];[[UIApplication sharedApplication] op...
Frameworks
Frameworksif([MFMailComposeViewController canSendMail]){
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeVie...
Frameworks- (void) mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult...
Mandar um fax•   Daquele de papel mesmo
Mandar um fax•   Daquele de papel mesmo
Open Source?•   Não é tão forte•   Mas tem coisas bacanas
github.com/facebook
Diego, @dchohfi
github.com/caelum
Como?
Como?•   Baixe o Xcode (ide) da Apple
Como?•   Baixe o Xcode (ide) da Apple•   Crie uma aplicação integrada com a câmera
Como?•   Baixe o Xcode (ide) da Apple•   Crie uma aplicação integrada com a câmera•   Se puder ser social, melhor
Como?•   Baixe o Xcode (ide) da Apple•   Crie uma aplicação integrada com a câmera•   Se puder ser social, melhor
Como?•   Baixe o Xcode (ide) da Apple•   Crie uma aplicação integrada com a câmera•   Se puder ser social, melhor•   Vá pr...
Como?•   Baixe o Xcode (ide) da Apple•   Crie uma aplicação integrada com a câmera•   Se puder ser social, melhor•   Vá pr...
IP-67
Obrigado@sr_valeriano
A primeira app iOS (a gente não esquece)
A primeira app iOS (a gente não esquece)
A primeira app iOS (a gente não esquece)
A primeira app iOS (a gente não esquece)
A primeira app iOS (a gente não esquece)
A primeira app iOS (a gente não esquece)
A primeira app iOS (a gente não esquece)
A primeira app iOS (a gente não esquece)
Upcoming SlideShare
Loading in...5
×

A primeira app iOS (a gente não esquece)

982

Published on

Talk apresentando originalmente no evento #devinsantos

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

No Downloads
Views
Total Views
982
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
53
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • Jobs foi demitido da Apple, massa, e fundou a NeXT\n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  • Nesse per&amp;#xED;odo tem a pixar tamb&amp;#xE9;m, mas a&amp;#xED; &amp;#xE9; outra palestra\n
  • \n
  • \n
  • Porque toda essa hist&amp;#xF3;ria? Porque O NeXTStep influenciou o mac os x, e a forma como se desenvolve para plataforma apple hoje em dia\n
  • Esse OpenStep &amp;#xE9; usado no iOS\n
  • Volta para a Apple\n
  • Onde tudo (relativo ao iOS) come&amp;#xE7;ou, nessa &amp;#xE9;poca inclusive a Apple disse que esse cara era s&amp;#xF3; uma &amp;#x201C;especializa&amp;#xE7;&amp;#xE3;o&amp;#x201D; do OS X.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Aqui abre o xcode e arrasta uns componenets para a tela.\nNovo projeto, app vazia, novo view controller.\nCadastra rootviewcontroller, roda.\nRoda, mostra simulador.\n\n
  • O.O -&gt; propriedades de acesso, m&amp;#xE9;todos...\nDinamico -&gt; class extensions, categories, methods\nMem&amp;#xF3;ria -&gt; Arc ajuda a partir do iOS 5\n\n
  • O.O -&gt; propriedades de acesso, m&amp;#xE9;todos...\nDinamico -&gt; class extensions, categories, methods\nMem&amp;#xF3;ria -&gt; Arc ajuda a partir do iOS 5\n\n
  • \n
  • \n
  • O ObjectiveC &amp;#xE9; s&amp;#xF3; uma extens&amp;#xE3;o do C, ent&amp;#xE3;o d&amp;#xE1; pr&amp;#xE1; usar fun&amp;#xE7;&amp;#xF5;es em C no seu c&amp;#xF3;digo.\n
  • Apenas exibe algo no console do Xcode\n
  • Apenas exibe algo no console do Xcode\n
  • Apenas exibe algo no console do Xcode\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Implementa a classe contato (wizard mesmo e boa).\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Porque agora j&amp;#xE1; d&amp;#xE1;, afinal sabemos declarar propriedades e m&amp;#xE9;todos.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "A primeira app iOS (a gente não esquece)"

    1. 1. A primeira app iOS ninguém esquece
    2. 2. A primeira app iOS ninguém esquece
    3. 3. @sr_valeriano• Ricardo Valeriano• Developer iOS, Java, Ruby e JavaScript• Instrutor iOS, Java, Ruby e JavaScript• github.com/ricardovaleriano
    4. 4. Como?• Básico, mesmo, mesmo• Base para pesquisar depois• Alguns conceitos... básicos• Algum código nos slides =(• Algum código ao vivo =)
    5. 5. NeXT Computer
    6. 6. NeXT Computer• 1985 - fundada por Jobs
    7. 7. NeXT Computer• 1985 - fundada por Jobs• 1988 - 1º NeXTStep Release
    8. 8. NeXT Computer• 1985 - fundada por Jobs• 1988 - 1º NeXTStep Release• 1990 - NeXTstation
    9. 9. NeXT Computer• 1985 - fundada por Jobs• 1988 - 1º NeXTStep Release• 1990 - NeXTstation
    10. 10. NeXT Computer• 1985 - fundada por Jobs• 1988 - 1º NeXTStep Release• 1990 - NeXTstation• 1990 - NeXTcube
    11. 11. NeXT Computer• 1985 - fundada por Jobs• 1988 - 1º NeXTStep Release• 1990 - NeXTstation• 1990 - NeXTcube
    12. 12. NeXT Computer• 1985 - fundada por Jobs• 1988 - 1º NeXTStep Release• 1990 - NeXTstation• 1990 - NeXTcube• 1993 - NeXTStep (S.O.)
    13. 13. NeXT Computer• 1985 - fundada por Jobs• 1988 - 1º NeXTStep Release• 1990 - NeXTstation• 1990 - NeXTcube• 1993 - NeXTStep (S.O.)
    14. 14. NeXTSTEP - S.O. 1988
    15. 15. NeXTSTEP - S.O. 1988
    16. 16. Steve Jobs e NeXTSTEP• Unix-like :: BSD• Objective-C runtime• O.O. application layer• Dock• GUI
    17. 17. OpenStep “OpenStep was an object-oriented applicationprogramming interface (API) specification for an object-oriented operating system that used a non-NeXTSTEP operating system as its core, principally developed by NeXT with Sun Microsystems.”
    18. 18. iPod Touch
    19. 19. iPhone OS 2007
    20. 20. iOS - SDK e apps 2008
    21. 21. iPad (iOS) 2010
    22. 22. iOS 4 - Multitasking 2010
    23. 23. iOS 5 2011
    24. 24. iOS 5 2011
    25. 25. iOSCocoa TouchMedia LayerCore Services Core OS
    26. 26. iOSCocoa TouchMedia LayerCore Services Core OS
    27. 27. iOSSistema Operacional Cocoa Touch Media Layer Core Services Core OS
    28. 28. iOSSistema Operacional Cocoa Touch Media Layer Core Services Core OS
    29. 29. iOS MultitaskingGestureViewNotification ServiceSystemPush ControllersApple Recognizers Cocoa Touch
    30. 30. iOS Cocoa TouchMultitaskingApple Push Notification ServiceGesture RecognizersSystem View Controllers
    31. 31. iOS MultitaskingGestureViewNotification ServiceSystemPush ControllersApple Recognizers Cocoa Touch
    32. 32. iOSAir PlayVideoGraphic Media LayerAudio
    33. 33. iOS Media LayerGraphicAudioVideoAir Play
    34. 34. iOSAir PlayVideoGraphic Media LayerAudio
    35. 35. iOSSQLiteIn-App CoreARC PurchaseiCloud StorageServices
    36. 36. iOS Core ServicesiCloud StorageARCIn-App PurchaseSQLite
    37. 37. iOSSQLiteIn-App CoreARC PurchaseiCloud StorageServices
    38. 38. iOSCore Bluetooth network, memory)System FrameworkExternal Accessory FrameworkSecurity(thread, OS Core
    39. 39. iOS Core OSCore BluetoothExternal Accessory FrameworkSecurity FrameworkSystem (thread, network, memory)
    40. 40. iOSCore Bluetooth network, memory)System FrameworkExternal Accessory FrameworkSecurity(thread, OS Core
    41. 41. Xcode, a IDE (para mac)
    42. 42. Show me!
    43. 43. Objective-C• Bizarro?• Esquizóide?• Obstáculo?
    44. 44. Objective-C• Orientado a Objetos• Dinâmico• Gerenciamento de memória é contigo!• Square Brackets prá dar e vender
    45. 45. BRACE YOURSELVESIT’S A C EXTENSION
    46. 46. Coisas em C?NSLog(@"Vamo que vamo-lhes!");
    47. 47. Coisas em C? Funçãozinha marota.NSLog(@"Vamo que vamo-lhes!");
    48. 48. Coisas em C? Funçãozinha marota.NSLog(@"Vamo que vamo-lhes!");
    49. 49. Coisas em C? Funçãozinha marota.NSLog(@"Vamo que vamo-lhes!");
    50. 50. Coisas em C?NSLog(@"Vamo que vamo-lhes!");
    51. 51. Classes• Header File >> Declaração• Implementation File >> Implementação XD
    52. 52. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
    53. 53. Diretivas (*.h) Disponibiliza recursos e tipos básicos (como a classe NSString)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
    54. 54. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
    55. 55. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end Permite definir uma nova classe
    56. 56. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
    57. 57. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end Nome da nova classe
    58. 58. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
    59. 59. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end Herança
    60. 60. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end
    61. 61. Diretivas (*.h)#import <Foundation/Foundation.h>@interface Contato : NSObject@end É isso!
    62. 62. Diretivas (*.m)#import "Contato.h"@implementation Contato@end
    63. 63. Diretivas (*.m)Disponibiliza a declaração da classe #import "Contato.h" @implementation Contato @end
    64. 64. Diretivas (*.m) Poderia importar outros arquivos se preciso#import "Contato.h"@implementation Contato@end
    65. 65. Diretivas (*.m)#import "Contato.h"@implementation Contato@end Objective C, meu amigo, agora vamos implementar a classe
    66. 66. Diretivas (*.m)#import "Contato.h"@implementation Contato@end E o nome dessa classe é Contato
    67. 67. Diretivas (*.m)#import "Contato.h"@implementation Contato@end E terminamos!
    68. 68. Show me!
    69. 69. Instanciando Objetos Contato allocMétodo de classe, para alocar memória e otras cositas más...
    70. 70. Instanciando Objetos . Contato alloc Invocação de método?
    71. 71. Instanciando Objetos X . Contato alloc
    72. 72. Instanciando Objetos X . Contato alloc
    73. 73. Instanciando Objetosto *contato = [ Contato alloc init]; Na verdade é assim que se invoca!
    74. 74. Instanciando Objetosto *contato = [[Contato alloc init]; Contato alloc] Agora está completo.
    75. 75. Instanciando Objetosto *contato = [[Contato alloc] init]; Retorna uma “promessa”, queremos o Objeto (do tipo Contato)
    76. 76. Instanciando Objetosto *contato = [[Contato alloc] init]; Nova invocação de método!
    77. 77. Instanciando Objetosto *contato = [[Contato alloc] init]; O retorno é um objeto do tipo Contato.
    78. 78. Instanciando ObjetosContato *contato = [[Contato alloc] init]; contato Criando uma referência chamada contato para o novo objeto.
    79. 79. Instanciando ObjetosContato contato = [[Contato alloc] init]; Define o tipo da referência.
    80. 80. Instanciando ObjetosContato *contato = [[Contato alloc] init]; Por falar em referência
    81. 81. Propriedades Declaração (*.h)@property ( nonatomic, strong ) NSString * nome;
    82. 82. Propriedades Declaração (*.h)@property ( nonatomic, strong ) NSString * nome; Nome da propriedade
    83. 83. Propriedades Declaração (*.h)@property ( nonatomic, strong ) NSString * nome; Tipo referenciado por nome
    84. 84. Propriedades Declaração (*.h)@property ( nonatomic, strong ) NSString * nome; Por falar em referência...
    85. 85. Propriedades Declaração (*.h)@property ( nonatomic, strong ) NSString * nome; Gerenciamento de memória (como interefer no contador de referência)
    86. 86. Propriedades Declaração (*.h)@property ( nonatomic, strong ) NSString * nome; Gerenciamento de memória (como interefer no contador de referência)
    87. 87. Propriedades Declaração (*.h)@property ( nonatomic, strong ) NSString * nome; Acesso concorrente (threads)
    88. 88. Implementação (*.m) #import "Contato.h" @implementation Contato @synthesize nome; @end
    89. 89. Implementação (*.m) #import "Contato.h" @implementation Contato @synthesize nome; @end Agora sim: getter e setter
    90. 90. Propriedades • Métodos de acesso e atribuiçãoContato *contato = [[Contato alloc] init];[contato setNome:@"Ricardo Valeriano"];NSString *nome = [contato nome];
    91. 91. Propriedades • Métodos de acesso e atribuição • Podem ser acessadas via “dot notation”Contato *contato = [[Contato alloc] init];contato.nome = @"Ricardo Valeriano";NSString *nome = contato.nome;
    92. 92. Métodos-(void)cadastra:(Contato *)contato; cadastra
    93. 93. Métodos-(void)cadastra:(Contato *)contato; cadastra:(Contato Indica recebimento de parâmetro
    94. 94. Métodos-(void)cadastra:(Contato *)contato; cadastra:(Contato Tipo do parâmetro
    95. 95. Métodos-(void)cadastra:(Contato *)contato; cadastra:(Contato Nome da variável no método
    96. 96. Métodos(void)cadastra:(Contato *)contato;Tipo do retorno
    97. 97. Métodos-(void)cadastra:(Contato *)contato;
    98. 98. Métodos -(void)cadastra:(Contato *)contato; Método de instância.+ para método de classe.
    99. 99. Métodos-(void)cadastraNome:(NSString *)nome email:(NSString *)email;
    100. 100. Métodos -(void)cadastraNome:(NSString *)nome email:(NSString *)email;[cadastro cadastraNome:@"Ricardo" email:@"rv@caelum.com.br"];
    101. 101. VALERIANOY U NO FINISHES THE FORM?
    102. 102. Binding de Elementos• Declaração (*.h)• IBOutlet (propriedades)• Instâncias de UIView
    103. 103. Binding de Elementos• Declaração (*.h)• IBOutlet (propriedades)• Instâncias de UIView
    104. 104. Binding de Eventos• Declaração (*.h)• IBAction (métodos)• Instâncias de UIView
    105. 105. Binding de Eventos• Declaração (*.h)• IBAction (métodos)• Instâncias de UIView
    106. 106. Show me the code, now!
    107. 107. Integração nativa
    108. 108. Integração nativaNSURL *url = [NSURL URLWithString:appUrl];[[UIApplication sharedApplication] openURL:url];
    109. 109. Maps
    110. 110. MapsNSString *urlEndereco = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@", @"Av. Ana costa"];
    111. 111. MapsNSString *urlEndereco = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@", @"Av. Ana costa"];NSString *appUrl = [urlEnderecostringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    112. 112. MapsNSString *urlEndereco = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@", @"Av. Ana costa"];NSString *appUrl = [urlEnderecostringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSURL *url = [NSURL URLWithString:appUrl];[[UIApplication sharedApplication] openURL:url];
    113. 113. Telefone
    114. 114. TelefoneNSString *appUrl = @"tel:98761234";
    115. 115. TelefoneNSString *appUrl = @"tel:98761234";NSURL *url = [NSURL URLWithString:appUrl];[[UIApplication sharedApplication] openURL:url];
    116. 116. Frameworks
    117. 117. Frameworksif([MFMailComposeViewController canSendMail]){
    118. 118. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];
    119. 119. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self;
    120. 120. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self;
    121. 121. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self; [enviadorEmail
    122. 122. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self; [enviadorEmail setToRecipients:[NSArray arrayWithObject:@"ricardovaleriano@caelum"]];
    123. 123. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self; [enviadorEmail setToRecipients:[NSArray arrayWithObject:@"ricardovaleriano@caelum"]];! [enviadorEmail setSubject:@"Dev in Santos"];
    124. 124. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self; [enviadorEmail setToRecipients:[NSArray arrayWithObject:@"ricardovaleriano@caelum"]];! [enviadorEmail setSubject:@"Dev in Santos"];! [self presentModalViewController:enviadorEmail
    125. 125. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self; [enviadorEmail setToRecipients:[NSArray arrayWithObject:@"ricardovaleriano@caelum"]];! [enviadorEmail setSubject:@"Dev in Santos"];! [self presentModalViewController:enviadorEmail animated:YES];
    126. 126. Frameworksif([MFMailComposeViewController canSendMail]){! ! MFMailComposeViewController *enviadorEmail =[[MFMailComposeViewController alloc] init];! ! enviadorEmail.mailComposeDelegate = self; [enviadorEmail setToRecipients:[NSArray arrayWithObject:@"ricardovaleriano@caelum"]];! [enviadorEmail setSubject:@"Dev in Santos"];! [self presentModalViewController:enviadorEmail animated:YES];}
    127. 127. Frameworks- (void) mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)resulterror:(NSError *)error{ [self dismissModalViewControllerAnimated:YES];}
    128. 128. Mandar um fax• Daquele de papel mesmo
    129. 129. Mandar um fax• Daquele de papel mesmo
    130. 130. Open Source?• Não é tão forte• Mas tem coisas bacanas
    131. 131. github.com/facebook
    132. 132. Diego, @dchohfi
    133. 133. github.com/caelum
    134. 134. Como?
    135. 135. Como?• Baixe o Xcode (ide) da Apple
    136. 136. Como?• Baixe o Xcode (ide) da Apple• Crie uma aplicação integrada com a câmera
    137. 137. Como?• Baixe o Xcode (ide) da Apple• Crie uma aplicação integrada com a câmera• Se puder ser social, melhor
    138. 138. Como?• Baixe o Xcode (ide) da Apple• Crie uma aplicação integrada com a câmera• Se puder ser social, melhor
    139. 139. Como?• Baixe o Xcode (ide) da Apple• Crie uma aplicação integrada com a câmera• Se puder ser social, melhor• Vá prá galera
    140. 140. Como?• Baixe o Xcode (ide) da Apple• Crie uma aplicação integrada com a câmera• Se puder ser social, melhor• Vá prá galera
    141. 141. IP-67
    142. 142. Obrigado@sr_valeriano
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×