treinamento i os
TRANSCRIPT
Agenda
- Manhã (parte 1): Introdução aos conceitos básicos da plataforma e da linguagem Objective-C.
- Manhã (parte 2): Dojo com objective-c para pegar as manhas ;)
- Tarde: Hands On!
Conceitos Básicos: Cocoa Touch
- “The Cocoa Touch frameworks that drive iOS apps share many proven patterns found on the Mac, but were built with a special focus on touch-based interfaces and optimization. “ Redator da Apple
Cocoa Touch - Foundation.framework- Base da linguagem(Swift e Obj-C).- Onde fica os tipos primitivos, tipos de
classe, estruturas, coleções… você entendeu.
- Foi projetado para ser pequeno, pensando em portabilidade e facilitar o desenvolvimento através de convenções pré-definidas.
Cocoa Touch - UiKit.framework
- Framework com tudo que você vai usar no dia a dia.
- Sério, tudo mesmo!
Cocoa Touch - MapKit.framework
- Cuida apenas de assuntos relacionados a mapas (como o nome indica).
- Desde colocar um mapa dentro da sua view como fazer reverse-coding pra determinar um endereço
Conceitos Básicos: Objective C
- “Objective-C is the primary programming language you use when writing software for OS X and iOS. It’s a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime. ”
Objective C - Syntax
NSString *name = @"Pedro Souza";
CGRect windowFrame = window.frame;
NSLog(@"Olá %@", name);
[Classe
chamandoMetodoEstatico:param1
nomeDoProximoParam:param2];
[name chamandoMetodoDeInstancia];
Objective C - Classes
// MyClass.h
#import <Foundation/Foundation.h>
#import SomeType.h
@interface CardapioAlimento :
NSObject<AnyProtocol>
@property (strong, nonatomic) NSString
*obj;
@property (weak) CGRect frame;
@property (retain, atomic) SomeType
*obj2;
- (void) metodo:(NSString *)param1;
@end
// MyClass.m
#import MyClass.h
@implementation MyClass
// your shit goes here
@end
Objective C - Classes
- Lista com todos os tipos pro @property- atomic- nonatomic- retain- copy- readonly- readwrite- assign- strong
Objective C - Protocol
- Protocols servem para definir comportamentos esperados por um objeto. (ou seja, uma interface).
- Você pode definir métodos e propriedades que, aqueles que implementarem o protocol, iram incorporar. Eles podem ser obrigatórios ou não.
@interface Cachorro :
NSObject<Animal>
@end
@implementation Cachorro
- (void)beberAgua {
// your code
}
@end
Objective C - Protocol
@protocol Animal
- (void)beberAgua;
@optional
- (void)comerCarne;
- (void)comerPlantas;
@required
- (void)irAoBanheiro;
@end
- São responsáveis por definir métodos de extensão a tipos já definidos.
- Essencialmente, é uma classe que adiciona novos comportamentos a outras classes.
Objective C - Categories
- Uso#import NSString+MVUtils;
[[NSDate now].stringValue
dateFromFormat:@"FORMAT"];
Objective C - Categories
- Definição@interface NSString (MVUtils)
- (NSDate *)dateFromFormat:
(NSString *)format;
@end
@implementation NSString
(MVUtils)
@end
Objective C - Dynamic Runtime- ID type- Distributed Objects- Dynamic setters/getters- Key-Value observing
Conceitos Básicos - Storyboard
- No iOS 6, foi apresentado o conceito de Storyboard.
- Dentro dele, você pode ter Scenes.- Você pode definir a navegação entre essas
cenas utilizando o conceito de Segue.- Você pode customizar as transições criando
seus próprios segues.
Conceitos Básicos: Core Data
- CoreData é o framework responsável pela persistência dos dados.
- Possui uma API para mapear objetos, persistir os dados e trabalha com diversos contextos