SlideShare una empresa de Scribd logo
1 de 150
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
•   github.com/ricardovaleriano
Como?

•   Básico, mesmo, mesmo
•   Base para pesquisar depois
•   Alguns conceitos... básicos
•   Algum código nos slides =(
•   Algum código ao vivo =)
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 - NeXTStep (S.O.)
NeXT Computer
•   1985 - fundada por Jobs
•   1988 - 1º NeXTStep Release
•   1990 - NeXTstation
•   1990 - NeXTcube
•   1993 - NeXTStep (S.O.)
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 application
programming 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.”
iPod Touch
iPhone OS
   2007
iOS - SDK e apps
      2008
iPad (iOS)
   2010
iOS 4 - Multitasking
        2010
iOS 5
 2011
iOS 5
 2011
iOS
Cocoa Touch


Media Layer


Core Services


  Core OS
iOS


Cocoa Touch
Media Layer
Core Services
  Core OS
iOS
Sistema Operacional

      Cocoa Touch
      Media Layer
      Core Services
        Core OS
iOS
Sistema Operacional

      Cocoa Touch
      Media Layer
      Core Services
        Core OS
iOS
 Multitasking
GestureViewNotification Service
SystemPush Controllers
Apple Recognizers
          Cocoa Touch
iOS
         Cocoa Touch

Multitasking

Apple Push Notification Service

Gesture Recognizers

System View Controllers
iOS
 Multitasking
GestureViewNotification Service
SystemPush Controllers
Apple Recognizers
          Cocoa Touch
iOS
Air Play
Video
Graphic Media Layer
Audio
iOS
           Media Layer

Graphic

Audio

Video

Air Play
iOS
Air Play
Video
Graphic Media Layer
Audio
iOS
SQLite
In-App Core
ARC Purchase
iCloud StorageServices
iOS
         Core Services

iCloud Storage

ARC

In-App Purchase

SQLite
iOS
SQLite
In-App Core
ARC Purchase
iCloud StorageServices
iOS
Core Bluetooth network, memory)
System Framework
External Accessory Framework
Security(thread, OS
            Core
iOS
          Core OS

Core Bluetooth

External Accessory Framework

Security Framework

System (thread, network, memory)
iOS
Core Bluetooth network, memory)
System Framework
External Accessory Framework
Security(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 YOURSELVES




IT’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/Foundation.h>

@interface Contato : NSObject

@end
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 Contato

@end
Diretivas (*.m)

#import "Contato.h"

@implementation Contato

@end
         Objective C, meu amigo, agora
          vamos implementar a classe
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 alloc



Mé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 Objetos


to *contato = [ Contato alloc        init];

           Na verdade é assim que se invoca!
Instanciando Objetos


to *contato = [[Contato alloc init];
                Contato alloc]

               Agora está completo.
Instanciando Objetos


to *contato = [[Contato alloc] init];

              Retorna uma “promessa”,
                queremos o Objeto
                 (do tipo Contato)
Instanciando Objetos


to *contato = [[Contato alloc] init];

               Nova invocação de método!
Instanciando Objetos


to *contato = [[Contato alloc] init];

              O retorno é um objeto do tipo
                        Contato.
Instanciando Objetos


Contato *contato = [[Contato alloc] init];
         contato
                 Criando uma referência chamada
                   contato para o novo objeto.
Instanciando Objetos


Contato   contato = [[Contato alloc] init];

          Define o tipo da referência.
Instanciando Objetos


Contato *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 propriedade
Propriedades
                  Declaração (*.h)


@property ( nonatomic, strong ) NSString * nome;

       Tipo referenciado por nome
Propriedades
                 Declaração (*.h)


@property ( nonatomic, strong ) NSString * nome;
                 Por falar em referência...
Propriedades
                  Declaração (*.h)


@property ( nonatomic, strong ) NSString * nome;


                Gerenciamento de memória
         (como interefer no contador de referência)
Propriedades
                  Declaração (*.h)


@property ( nonatomic, strong ) NSString * nome;


                Gerenciamento de memória
         (como interefer no contador de referência)
Propriedades
                   Declaração (*.h)


@property ( nonatomic, strong ) NSString * nome;



   Acesso concorrente (threads)
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 setter
Propriedades


     •   Métodos de acesso e atribuição


Contato *contato = [[Contato alloc] init];

[contato setNome:@"Ricardo Valeriano"];
NSString *nome = [contato nome];
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;
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"
                 email:@"rv@caelum.com.br"];
VALERIANO




Y 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 nativa

NSURL *url = [NSURL URLWithString:appUrl];
[[UIApplication sharedApplication] openURL:url];
Maps
Maps
NSString *urlEndereco = [NSString
stringWithFormat:@"http://maps.google.com/maps?
q=%@", @"Av. Ana costa"];
Maps
NSString *urlEndereco = [NSString
stringWithFormat:@"http://maps.google.com/maps?
q=%@", @"Av. Ana costa"];

NSString *appUrl = [urlEndereco
stringByAddingPercentEscapesUsingEncoding:NSUTF8
StringEncoding];
Maps
NSString *urlEndereco = [NSString
stringWithFormat:@"http://maps.google.com/maps?
q=%@", @"Av. Ana costa"];

NSString *appUrl = [urlEndereco
stringByAddingPercentEscapesUsingEncoding:NSUTF8
StringEncoding];

NSURL *url = [NSURL URLWithString:appUrl];
[[UIApplication sharedApplication] openURL:url];
Telefone
Telefone

NSString *appUrl = @"tel:98761234";
Telefone

NSString *appUrl = @"tel:98761234";

NSURL *url = [NSURL URLWithString:appUrl];
[[UIApplication sharedApplication] openURL:url];
Frameworks
Frameworks
if([MFMailComposeViewController canSendMail]){
Frameworks
if([MFMailComposeViewController canSendMail]){
! ! MFMailComposeViewController *enviadorEmail =
[[MFMailComposeViewController alloc] init];
Frameworks
if([MFMailComposeViewController canSendMail]){
! ! MFMailComposeViewController *enviadorEmail =
[[MFMailComposeViewController alloc] init];

! ! enviadorEmail.mailComposeDelegate = self;
Frameworks
if([MFMailComposeViewController canSendMail]){
! ! MFMailComposeViewController *enviadorEmail =
[[MFMailComposeViewController alloc] init];

! ! enviadorEmail.mailComposeDelegate = self;
Frameworks
if([MFMailComposeViewController canSendMail]){
! ! MFMailComposeViewController *enviadorEmail =
[[MFMailComposeViewController alloc] init];

! ! enviadorEmail.mailComposeDelegate = self;

   [enviadorEmail
Frameworks
if([MFMailComposeViewController canSendMail]){
! ! MFMailComposeViewController *enviadorEmail =
[[MFMailComposeViewController alloc] init];

! ! enviadorEmail.mailComposeDelegate = self;

    [enviadorEmail
  setToRecipients:[NSArray
  arrayWithObject:@"ricardovaleriano@caelum"]];
Frameworks
if([MFMailComposeViewController canSendMail]){
! ! MFMailComposeViewController *enviadorEmail =
[[MFMailComposeViewController alloc] init];

! ! enviadorEmail.mailComposeDelegate = self;

    [enviadorEmail
  setToRecipients:[NSArray
  arrayWithObject:@"ricardovaleriano@caelum"]];

! [enviadorEmail setSubject:@"Dev in Santos"];
Frameworks
if([MFMailComposeViewController canSendMail]){
! ! MFMailComposeViewController *enviadorEmail =
[[MFMailComposeViewController alloc] init];

! ! enviadorEmail.mailComposeDelegate = self;

    [enviadorEmail
  setToRecipients:[NSArray
  arrayWithObject:@"ricardovaleriano@caelum"]];

! [enviadorEmail setSubject:@"Dev in Santos"];

! [self presentModalViewController:enviadorEmail
Frameworks
if([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];
Frameworks
if([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];
}
Frameworks

- (void) mailComposeController:(MFMailComposeViewController
*)controller didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error
{
    [self dismissModalViewControllerAnimated:YES];
}
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á galera
Como?

•   Baixe o Xcode (ide) da Apple
•   Crie uma aplicação integrada com a câmera
•   Se puder ser social, melhor
•   Vá prá galera
IP-67
Obrigado
@sr_valeriano

Más contenido relacionado

La actualidad más candente

Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
JavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com BolachaJavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com BolachaRafael Afonso
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Luciano Ramalho
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Código limpo e eficiente com JavaScript
Código limpo e eficiente com JavaScriptCódigo limpo e eficiente com JavaScript
Código limpo e eficiente com JavaScriptRodrigo Vieira
 
Persistência com Realm.io
Persistência com Realm.ioPersistência com Realm.io
Persistência com Realm.ioOnyo
 
Objective-C e o dinamismo da linguagem
Objective-C e o dinamismo da linguagemObjective-C e o dinamismo da linguagem
Objective-C e o dinamismo da linguagemDiego Chohfi
 
Aula actionscript basico
Aula actionscript basicoAula actionscript basico
Aula actionscript basicoWemerson Silva
 
LINQ - Language Integrated Query
LINQ - Language Integrated QueryLINQ - Language Integrated Query
LINQ - Language Integrated QueryDalton Valadares
 
Javascript para CSharpers - Append B - jQuery
Javascript para CSharpers - Append B - jQueryJavascript para CSharpers - Append B - jQuery
Javascript para CSharpers - Append B - jQueryWesley Lemos
 

La actualidad más candente (20)

Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
Jquery a technical overview
Jquery a technical overviewJquery a technical overview
Jquery a technical overview
 
JavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com BolachaJavaFX e Scala - Como Leite com Bolacha
JavaFX e Scala - Como Leite com Bolacha
 
RMI em Java
RMI em JavaRMI em Java
RMI em Java
 
Minicurso de jQuery
Minicurso de jQueryMinicurso de jQuery
Minicurso de jQuery
 
Bd sql (1)
Bd sql (1)Bd sql (1)
Bd sql (1)
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Código limpo e eficiente com JavaScript
Código limpo e eficiente com JavaScriptCódigo limpo e eficiente com JavaScript
Código limpo e eficiente com JavaScript
 
Persistência com Realm.io
Persistência com Realm.ioPersistência com Realm.io
Persistência com Realm.io
 
Floggy-IIBoot-2008-09-25
Floggy-IIBoot-2008-09-25Floggy-IIBoot-2008-09-25
Floggy-IIBoot-2008-09-25
 
Python 01
Python 01Python 01
Python 01
 
Objective-C e o dinamismo da linguagem
Objective-C e o dinamismo da linguagemObjective-C e o dinamismo da linguagem
Objective-C e o dinamismo da linguagem
 
Python 02
Python 02Python 02
Python 02
 
Aula actionscript basico
Aula actionscript basicoAula actionscript basico
Aula actionscript basico
 
LINQ - Language Integrated Query
LINQ - Language Integrated QueryLINQ - Language Integrated Query
LINQ - Language Integrated Query
 
Python 03
Python 03Python 03
Python 03
 
Javascript para CSharpers - Append B - jQuery
Javascript para CSharpers - Append B - jQueryJavascript para CSharpers - Append B - jQuery
Javascript para CSharpers - Append B - jQuery
 

Destacado

Master ortodoncia (UEM Valencia)
Master ortodoncia (UEM Valencia)Master ortodoncia (UEM Valencia)
Master ortodoncia (UEM Valencia)ESTEMA
 
Canarias y las fiestas de Cruz.
Canarias y las fiestas de Cruz.Canarias y las fiestas de Cruz.
Canarias y las fiestas de Cruz.marinatoste
 
Rica Corp Deltek Solutions Brochure 112008
Rica Corp Deltek Solutions Brochure 112008Rica Corp Deltek Solutions Brochure 112008
Rica Corp Deltek Solutions Brochure 112008ricapower
 
Pizarra virtual
Pizarra virtualPizarra virtual
Pizarra virtualsssira
 
ValueTalk! — Print und der Strukturbruch
ValueTalk! — Print und der StrukturbruchValueTalk! — Print und der Strukturbruch
ValueTalk! — Print und der StrukturbruchAndreas Weber
 
Actividad integradoraa
Actividad integradoraaActividad integradoraa
Actividad integradoraaRubi Cortés
 
Sanoplan Novedades Tecnicas
Sanoplan Novedades TecnicasSanoplan Novedades Tecnicas
Sanoplan Novedades TecnicasSanoplant
 
Filippo
FilippoFilippo
FilippoADBUT
 
Harrods food & entertaining
Harrods food & entertainingHarrods food & entertaining
Harrods food & entertainingHarrods
 
Linkedin Training - Advancment Your Profile.
Linkedin Training - Advancment Your Profile.Linkedin Training - Advancment Your Profile.
Linkedin Training - Advancment Your Profile.Ali Tavanayan
 
Diventare avvocato-in-spagna-96-2001
Diventare avvocato-in-spagna-96-2001Diventare avvocato-in-spagna-96-2001
Diventare avvocato-in-spagna-96-2001Matteo Barberi
 
Digital strategy Insurance E-Broking Scotland
Digital strategy Insurance E-Broking ScotlandDigital strategy Insurance E-Broking Scotland
Digital strategy Insurance E-Broking ScotlandDave Hazlehurst
 
PIT Solutions - An IT services provider with operations in Switzerland and India
PIT Solutions - An IT services provider with operations in Switzerland and IndiaPIT Solutions - An IT services provider with operations in Switzerland and India
PIT Solutions - An IT services provider with operations in Switzerland and Indiapitsinfo
 
Buses: tipos y arquitectura
Buses: tipos y arquitecturaBuses: tipos y arquitectura
Buses: tipos y arquitecturadennissemayon0
 
Ruta de los ferreiros
Ruta de los ferreirosRuta de los ferreiros
Ruta de los ferreiroslamolinera
 

Destacado (20)

Master ortodoncia (UEM Valencia)
Master ortodoncia (UEM Valencia)Master ortodoncia (UEM Valencia)
Master ortodoncia (UEM Valencia)
 
Canarias y las fiestas de Cruz.
Canarias y las fiestas de Cruz.Canarias y las fiestas de Cruz.
Canarias y las fiestas de Cruz.
 
Rica Corp Deltek Solutions Brochure 112008
Rica Corp Deltek Solutions Brochure 112008Rica Corp Deltek Solutions Brochure 112008
Rica Corp Deltek Solutions Brochure 112008
 
Pizarra virtual
Pizarra virtualPizarra virtual
Pizarra virtual
 
Solomzi 2016 May 2
Solomzi 2016 May 2Solomzi 2016 May 2
Solomzi 2016 May 2
 
ValueTalk! — Print und der Strukturbruch
ValueTalk! — Print und der StrukturbruchValueTalk! — Print und der Strukturbruch
ValueTalk! — Print und der Strukturbruch
 
1569253169
15692531691569253169
1569253169
 
Actividad integradoraa
Actividad integradoraaActividad integradoraa
Actividad integradoraa
 
Sanoplan Novedades Tecnicas
Sanoplan Novedades TecnicasSanoplan Novedades Tecnicas
Sanoplan Novedades Tecnicas
 
Filippo
FilippoFilippo
Filippo
 
Harrods food & entertaining
Harrods food & entertainingHarrods food & entertaining
Harrods food & entertaining
 
Linkedin Training - Advancment Your Profile.
Linkedin Training - Advancment Your Profile.Linkedin Training - Advancment Your Profile.
Linkedin Training - Advancment Your Profile.
 
Cp documation 2008 lancement
Cp documation 2008 lancementCp documation 2008 lancement
Cp documation 2008 lancement
 
Diventare avvocato-in-spagna-96-2001
Diventare avvocato-in-spagna-96-2001Diventare avvocato-in-spagna-96-2001
Diventare avvocato-in-spagna-96-2001
 
Día de los Museos
Día de los MuseosDía de los Museos
Día de los Museos
 
Digital strategy Insurance E-Broking Scotland
Digital strategy Insurance E-Broking ScotlandDigital strategy Insurance E-Broking Scotland
Digital strategy Insurance E-Broking Scotland
 
trabajo Merca
trabajo Mercatrabajo Merca
trabajo Merca
 
PIT Solutions - An IT services provider with operations in Switzerland and India
PIT Solutions - An IT services provider with operations in Switzerland and IndiaPIT Solutions - An IT services provider with operations in Switzerland and India
PIT Solutions - An IT services provider with operations in Switzerland and India
 
Buses: tipos y arquitectura
Buses: tipos y arquitecturaBuses: tipos y arquitectura
Buses: tipos y arquitectura
 
Ruta de los ferreiros
Ruta de los ferreirosRuta de los ferreiros
Ruta de los ferreiros
 

Similar a Primeira app iOS ninguém esquece

Introdução ao desenvolvimento para iOS
Introdução ao desenvolvimento para iOSIntrodução ao desenvolvimento para iOS
Introdução ao desenvolvimento para iOSAndrei Rosseti
 
Introducao ao Desenvolvimento iOS
Introducao ao Desenvolvimento iOSIntroducao ao Desenvolvimento iOS
Introducao ao Desenvolvimento iOSDiogo Costa
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
 
Minicurso Objective-C
Minicurso Objective-CMinicurso Objective-C
Minicurso Objective-CSaulo Arruda
 
Testes Automatizados e o iOS
Testes Automatizados e o iOSTestes Automatizados e o iOS
Testes Automatizados e o iOSRicardo Valeriano
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Saulo Arruda
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinNelson Glauber Leal
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Alamo Saravali
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoMarcius Brandão
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftJuliana Chahoud
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Flávio Ribeiro
 
Scala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosScala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosFelipe Hummel
 
Maratona Windows Phone 7
Maratona Windows Phone 7Maratona Windows Phone 7
Maratona Windows Phone 7Felipe Pimentel
 
Ferramentas de automação de teste
Ferramentas de automação de testeFerramentas de automação de teste
Ferramentas de automação de testeMarcos Pessoa
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoronaldoferraz
 

Similar a Primeira app iOS ninguém esquece (20)

Introdução ao desenvolvimento para iOS
Introdução ao desenvolvimento para iOSIntrodução ao desenvolvimento para iOS
Introdução ao desenvolvimento para iOS
 
Desenvolvimento iOS
Desenvolvimento iOSDesenvolvimento iOS
Desenvolvimento iOS
 
Introducao ao Desenvolvimento iOS
Introducao ao Desenvolvimento iOSIntroducao ao Desenvolvimento iOS
Introducao ao Desenvolvimento iOS
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
 
Minicurso Objective-C
Minicurso Objective-CMinicurso Objective-C
Minicurso Objective-C
 
Testes Automatizados e o iOS
Testes Automatizados e o iOSTestes Automatizados e o iOS
Testes Automatizados e o iOS
 
Desenvolvendo para iOS
Desenvolvendo para iOSDesenvolvendo para iOS
Desenvolvendo para iOS
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com Kotlin
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
 
Scala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosScala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetos
 
Maratona Windows Phone 7
Maratona Windows Phone 7Maratona Windows Phone 7
Maratona Windows Phone 7
 
Ferramentas de automação de teste
Ferramentas de automação de testeFerramentas de automação de teste
Ferramentas de automação de teste
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Objective-C
Objective-CObjective-C
Objective-C
 

Primeira app iOS ninguém esquece

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. Jobs foi demitido da Apple, massa, e fundou a NeXT\n
  6. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  7. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  8. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  9. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  10. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  11. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  12. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  13. 93 - transi&amp;#xE7;&amp;#xE3;o para desenvolver apenas software \n
  14. Nesse per&amp;#xED;odo tem a pixar tamb&amp;#xE9;m, mas a&amp;#xED; &amp;#xE9; outra palestra\n
  15. \n
  16. \n
  17. 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
  18. Esse OpenStep &amp;#xE9; usado no iOS\n
  19. Volta para a Apple\n
  20. 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
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. 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
  43. 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
  44. 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
  45. \n
  46. \n
  47. 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
  48. Apenas exibe algo no console do Xcode\n
  49. Apenas exibe algo no console do Xcode\n
  50. Apenas exibe algo no console do Xcode\n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. Implementa a classe contato (wizard mesmo e boa).\n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n\n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. Porque agora j&amp;#xE1; d&amp;#xE1;, afinal sabemos declarar propriedades e m&amp;#xE9;todos.\n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n