Successfully reported this slideshow.
Your SlideShare is downloading. ×

Desenvolvimento iOS

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 46 Ad

More Related Content

Slideshows for you (14)

Similar to Desenvolvimento iOS (20)

Advertisement

Recently uploaded (20)

Desenvolvimento iOS

  1. 1. Desenvolvimento iOS André Gustavo Espeiorin
  2. 2. Apresentação Sócio/Programador/Eletricista da Code Rockr Programo para: ‣ Web ‣ iOS... ... e nas horas vagas: ‣ Mac OS X ‣ Arduino “Professor” de desenvolvimento iOS http://twitter.com/xorna xorna@coderockr.com
  3. 3. Plataforma iOS Aplicativos nativos Dispositivos atualizados Programas para desenvolvedores pagos Ambiente controlado Comissão de 30% para aplicativos pagos Mercado de Aplicativos Gigante
  4. 4. Pré-requisitos Programação Orientada a Objetos Inglês pelo menos para leitura Conhecimento de Design Patterns MVC é primário Acesso a Mac OS X Ferramentas de desenvolvimento Um iDevice para testes é recomendado
  5. 5. Recursos para desenvolvedores iOS Dev Center Apple Developer Forums Documentação Ferramentas de desenvolvimento Provisioning Portal iTunes Connect
  6. 6. iOS Dev Center
  7. 7. Apple Developer Forums
  8. 8. Documentação
  9. 9. Human Interface Guidelines Guia para construção de interfaces Estudos de UX feitos sobre os apps da Apple Frequentemente atualizada Indispensável para designers e desenvolvedores
  10. 10. Ferramentas de Desenvolvimento Xcode iOS Simulator Instruments Cocoa-Touch ‣ Foundation Framework ‣ UIKit Framework Frameworks Gráficos
  11. 11. Xcode Ambiente de desenvolvimento integrado nativo da Apple Versão atual: 4.2 Suporta desenvolvimento iOS e Mac OS X Possui Interface Builder Integrado Possui console de depuração Grátis para desenvolvedores e usuários Mac OS X Lion Possui documentação completa integrada
  12. 12. Xcode
  13. 13. iOS Simulator iPhone iPhone Retina Display
  14. 14. iOS Simulator iPad
  15. 15. Instruments (Profiling)
  16. 16. Framework Foundation Framework base do Mac OS X e iOS Totalmente Objective-C Facilita o desenvolvimento Classes básicas como: ‣ NSObject ‣ NSString ‣ NSArray ‣ NSDictionary
  17. 17. UIKit Framework responsável pela Interface Gráfica Elementos gráficos Controles Eventos Manipulação de eventos de toque
  18. 18. UIKit UIView UIViewController UITabBarController UIImage UIImageView UILabel UIButton
  19. 19. Objective-C Baseada em C Orientada a Objetos Inspirada em SmallTalk Mac OS X e iOS Pode ser usada combinada com C e C++
  20. 20. Sintaxe Objective-C
  21. 21. Declaração de Classes Necessária a prévia declaração de uma classe com suas propriedades, métodos e demais configurações de comportamento. #import <Foundation/Foundation.h> // Inicio da declaração @interface Carro : NSObject // Lista de propriedades @property (nonatomic, strong) NSString *modelo; @property (nonatomic, strong) NSString *fabricante; @property (nonatomic, strong) UIColor *cor; @property (nonatomic, assign) BOOL ligado; // Lista de Métodos - (void) acelerar:(NSInteger) aceleracao; - (void) freiar:(NSInteger) desaceleracao; - (BOOL) ligar; - (BOOL) desligar; // Final da declaração @end
  22. 22. Configuração de Propriedades Usadas para configurar o comportamento dos getters e setters. Leitura/Escrita ‣ readwrite ‣ readonly Atribuição ‣ assign ‣ strong ‣ unsafe_unretained Atomicidade ‣ atomic ‣ nonatomic
  23. 23. Assinatura de Métodos
  24. 24. Implementação de Classes Seguindo a declaração prévia da classe, faz-se a implementação da mesma. Abaixo a implementação das propriedades. // Importação da declaração da classe #import "Carro.h" // Início da Implementação @implementation Carro // Geração automática de getter and setter + variável privada @synthesize modelo = _modelo; @synthesize fabricante = _fabricante; @synthesize cor = _cor; @synthesize ligado = _ligado;
  25. 25. @synthesize Gera os métodos get e set para cada propriedade, de acordo com sua configuração. Cria também uma variável dentro do escopo da implementação para acesso direto a uma propriedade.
  26. 26. Implementação de Classes Agora a implementação dos métodos // Implementação dos métodos - (void) acelerar:(NSInteger)aceleracao { } - (void) freiar:(NSInteger)desaceleracao { } - (BOOL) ligar { return YES; } - (BOOL) desligar { return YES; } // Final da Implementação @end
  27. 27. Criação de Objetos Carro *carro = [[Carro alloc] init]; carro.modelo = @"Ecosport"; carro.fabricante = @"Ford"; carro.cor = [UIColor redColor]; [carro ligar]; [carro acelerar:10]; [carro freiar:10]; [carro desligar];
  28. 28. Classes básicas do Cocoa
  29. 29. NSString Classe padrão para manipulação de strings, pode ser mutável (NSString) ou imutável (NSMutableString) // NSString na criação de uma imagem UIImage *img = [UIImage imageNamed:@"icon.png"]; // Manipulação de uma string mutável NSMutableString *str = [NSMutableString stringWithString:@"Mac OS Dev"]; ! [str replaceOccurrencesOfString:@"Mac OS" ! ! ! ! ! ! withString:@"iOS" ! ! ! ! ! ! ! options:NSLiteralSearch ! ! ! ! ! ! ! range:NSMakeRange(0, [str length])];
  30. 30. NSArray Utilizada para armazenar e manipular listas ordenadas numericamente. Possui uma forma imutável (NSArray) e uma forma mutável (NSMutableArray). // Criação do Array NSArray *carros = [NSArray arrayWithObjects:@"Corsa", @"Palio", @"Fiesta", @"Gol", nil]; // Acesso a um objeto em um índice específico NSString *carro = [carros objectAtIndex:0];
  31. 31. NSDictionary Utilizada para armazenar para armazenar e manipular listas com índices não numéricos. Possui uma versão imutável (NSDictionary) e uma versão mutável (NSMutableDictionary) // Criação da lista NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"primeiro", @"objeto1", @"segundo", @"objeto2", nil]; // Recuperação de um item específico NSString *item = [dict objectForKey:@"primeiro"];
  32. 32. NSNumber Utilizada para armazenar e manipular qualquer valor numérico de qualquer tipo (int, float, double), forma utilizada para utilizar números como objetos. É possível recuperar o valor em tipo nativo a qualquer instante. // Criação do Objeto NSNumber *number = [NSNumber numberWithFloat:12.3]; // Recuperação do Valor float floatNumber = [number floatValue];
  33. 33. Xcode na Prática
  34. 34. Uso do Interface Builder Criação de interfaces de forma totalmente visual Ligações com o ViewController ‣ IBOutlet ‣ IBAction // Conecta o elemento a uma propriedade @property (nonatomic, strong) IBOutlet UILabel *label; // Conecta o elemento a uma ação - (IBAction)doSomething:(id)sender;
  35. 35. Conexão InterfaceBuilder - Código
  36. 36. Uso de Imagens Um dos recursos mais comuns no desenvolvimento de aplicativos Imagens podem ser: ‣ Arquivos Locais ‣ Objetos Quartz ‣ Fotos tiradas com a camera ‣ Dados vindos de um servidor Formatos Suportados: ‣ .tiff, .tif ‣ .jpg, .jpeg ‣ .gif ‣ .png ‣ .bmp ‣ .ico ‣ .cur ‣ .xbm
  37. 37. Retina Display e as Imagens Pixels 4x mais densos Resolução duplicada Solução: ‣ Imagens Normais para displays comuns ‣ Imagens com tamanho duplicado para Retina Display Tratamento via Código: Nenhum Na prática: ‣ Imagem normal com seu nome comum: background.png ‣ Imagem retina com sufixo @2x: background@2x.png
  38. 38. UIImage Representação de uma imagem em forma de objeto Imutável Possui gerenciamento automático de memória Evitar imagens maiores que 1024x1024 Redimensionamento de Imagens: ‣ Configuração do objeto UIImageView para apresentação ‣ Via código, de forma permanente
  39. 39. UIImageView Um UIView para exibição de imagens Suporta animações com vários frames Exibe um objeto UIImage Possui propriedades para redimensionamento da imagem
  40. 40. Exibindo Imagens https://github.com/xorna/Images
  41. 41. Elementos de Controle Elementos de interface utilizados para interação com usuário Executam ações e controlam valores UIKit possui os de uso mais comum Possibilidade de personalização Possibilidade de criação de novos elementos utilizando Cocoa
  42. 42. UIButton Elemento básico de interação Fácil personalização Diversos Formatos Imagens ou cores
  43. 43. UISlider Controla um valor entre um mínimo e um máximo Deslize lateral Utilizado em configurações
  44. 44. UISwitch Valores Booleanos Não possui personalização Também muito utilizado em configurações
  45. 45. UISegmentedControl Controle de vários botões O valor armazenado é o índice selecionado Configurações de múltipla escolha Utilizado para separação de conteúdo em abas
  46. 46. Utilizando os Controles https://github.com/xorna/Controles

Editor's Notes

  • \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
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×