desenvolvendos apps para ipad - tdc 2010

68
Desenvolvendo para iPad Apps Corporativas com Elegância Felipe Cypriano

Upload: felipe-cypriano

Post on 20-Jun-2015

2.906 views

Category:

Technology


0 download

DESCRIPTION

Slides da minha apresentação sobre iPad no The Developers Conference 2010 em Floripa.Com alguns extras: mais links e exemplo de implementação. :)

TRANSCRIPT

Page 1: Desenvolvendos Apps para iPad - TDC 2010

Desenvolvendo para iPad

Apps Corporativas com Elegância

Felipe Cypriano

Page 2: Desenvolvendos Apps para iPad - TDC 2010

iPad

• 9,7” LED Display com IPS

• 1024 x 768 px de resolução

• 1Ghz Apple A4

• 256mb de RAM

Page 3: Desenvolvendos Apps para iPad - TDC 2010

Mercado

2%2%

95%

iPad Global Market Share

Strategic Analytics 3ºT 2010

Page 4: Desenvolvendos Apps para iPad - TDC 2010

Qual tablet pretende comprar

Pesquisado por ChangeWave nos EUA

Page 5: Desenvolvendos Apps para iPad - TDC 2010

Faça Apps lindas

Page 6: Desenvolvendos Apps para iPad - TDC 2010

Interfaces mais realistas no iPad

A percepção de valor da informação digital é maior

Page 7: Desenvolvendos Apps para iPad - TDC 2010

Cuidado para não exagerar

Page 8: Desenvolvendos Apps para iPad - TDC 2010

iPhone vs iPad

• Mail no iPhone

• Hierarquia de vários níveis

Page 9: Desenvolvendos Apps para iPad - TDC 2010

iPhone vs iPad

• Mail no iPad

• Tela única com o mínimo de mudanças no contexto

• Poucos níveis de hierarquia

Page 10: Desenvolvendos Apps para iPad - TDC 2010

O Ícone

Page 11: Desenvolvendos Apps para iPad - TDC 2010

O Ícone

Page 12: Desenvolvendos Apps para iPad - TDC 2010

O Ícone

Page 13: Desenvolvendos Apps para iPad - TDC 2010

O Ícone

Page 14: Desenvolvendos Apps para iPad - TDC 2010

O Ícone

PNG Original

Page 15: Desenvolvendos Apps para iPad - TDC 2010

O Ícone

PNG OriginalEfeitos

Automáticos

Page 16: Desenvolvendos Apps para iPad - TDC 2010

Controles Tamanho “Ponta do Dedo”

• Dedos não são precisos como ponteiros do mouse

• Um mínimo ideal é uma área de 44 x 44 pixels

• Boa separação entre os elementos

Page 17: Desenvolvendos Apps para iPad - TDC 2010

Sem Amnésia

• A última tela que o usuário estava usando deve ser lembrada e reaberta

Page 18: Desenvolvendos Apps para iPad - TDC 2010

Sem Amnésia

• Salve cedo, salve constantementeCommit early, commit often

Page 19: Desenvolvendos Apps para iPad - TDC 2010

Sem Amnésia

• A qualquer momento um aplicativo pode ser informado que vai ser fechado

Page 20: Desenvolvendos Apps para iPad - TDC 2010

Sem Amnésia

• A qualquer momento um aplicativo pode ser informado que vai ser fechado

Não há nada que você possa fazer para impedir

Page 21: Desenvolvendos Apps para iPad - TDC 2010

Orientações

• Manter foco no conteúdo principal

• Não fazer mudanças radicais no layout

• Evitar entrada de dados textuais

(nos dois sentidos)

Page 22: Desenvolvendos Apps para iPad - TDC 2010

Launch Image

Page 23: Desenvolvendos Apps para iPad - TDC 2010

Launch Image

Page 24: Desenvolvendos Apps para iPad - TDC 2010

Objective-C

• 1984

• Dynamic method dispatch

• Runtime decision making

• Runtime class extensions

Page 25: Desenvolvendos Apps para iPad - TDC 2010

Objective-C

@interface Pessoa: NSObject { NSString *nome; int idade;}

+ (Pessoa *) initWithNome:(NSString *)oNome;

@end

Pessoa.h

Page 26: Desenvolvendos Apps para iPad - TDC 2010

Objective-C

Pessoa.m

@implementation Pessoa

+ (Pessoa *) initWithNome:(NSString *)oNome { if (self = [super init]) { nome = oNome; [nome retain]; } return self;}

@end

Page 27: Desenvolvendos Apps para iPad - TDC 2010

Objective-C

Pessoa *alguem = [Pessoa alloc];

[alguem initWithNome:@“NSString literal”];

Page 28: Desenvolvendos Apps para iPad - TDC 2010

Nada de Garbage Collector no iOS

Page 29: Desenvolvendos Apps para iPad - TDC 2010

Contagem de Referência

• O runtime monitora o “retain count”

• Todo objeto é criado com retain count de 1

• Precisa do objeto? [objeto retain];

• Não precisa mais? [objeto release];

Page 30: Desenvolvendos Apps para iPad - TDC 2010
Page 31: Desenvolvendos Apps para iPad - TDC 2010

OutraClasse

Page 32: Desenvolvendos Apps para iPad - TDC 2010

OutraClasse

Page 33: Desenvolvendos Apps para iPad - TDC 2010

OutraClasse

Page 34: Desenvolvendos Apps para iPad - TDC 2010
Page 35: Desenvolvendos Apps para iPad - TDC 2010

Persistindo Dados no iOS

Page 36: Desenvolvendos Apps para iPad - TDC 2010

Property List

• Pequenas quantidades de dados

• XML ou binário

• Somente tipos básicos

• NSUserDefaults e Settings

Page 37: Desenvolvendos Apps para iPad - TDC 2010

Quando Não Usar Property List

• Objetos complexos

• Objetos customizados

• Mais de algumas centenas de KB• Carregar um plist é tudo-ou-nada

• Múltiplas escritas (não ACID)

Page 38: Desenvolvendos Apps para iPad - TDC 2010

SQLite

• Banco de dados SQL completo em um arquivo

• Vem por padrão no iOS

• Simples, rápido e fácil

Page 39: Desenvolvendos Apps para iPad - TDC 2010

Quando Não usar SQLite

• Aplicações cliente/servidor

• Com muita concorrência

• Muitos gigabytes de dados

Page 40: Desenvolvendos Apps para iPad - TDC 2010

Quando Não usar SQLite

• Aplicações cliente/servidor

• Com muita concorrência

• Muitos gigabytes de dados

Não se aplica ao iPad

Page 41: Desenvolvendos Apps para iPad - TDC 2010

Quando Não usar SQLite no iOS

• Se você não gostar de usar API em C

Page 42: Desenvolvendos Apps para iPad - TDC 2010

Quando Não usar SQLite no iOS

• Se você não gostar de usar API em C

int sqlite3_open(const char *filename, sqlite3 **db);

int sqlite3_exec(sqlite3 *db, const char *sql, int (*callback)(void*,int,char**,char**),void *context, char **error);

Page 43: Desenvolvendos Apps para iPad - TDC 2010

Core Data

• Framework de persistência

• Persiste os dados no SQLite ou binário

Page 44: Desenvolvendos Apps para iPad - TDC 2010

Comunicação pela internet

Como obter dados do sistema legado

Page 45: Desenvolvendos Apps para iPad - TDC 2010

XML

• NSXMLParser

• API orientada à eventos: mais simples

• libxml2

• Toda a árvore é carregada em memória

• API em C: rápida e consumo menor de memória

• Complexa para gerenciar estado

Page 46: Desenvolvendos Apps para iPad - TDC 2010

JavaScript Object Notation

• Mais leve que XML

• json-framework, um wrapper open source para Objective-C

Page 47: Desenvolvendos Apps para iPad - TDC 2010

Web Service com SOAP/WSDL

• Sem suporte oficial

• Mais pesado tanto em CPU quanto em rede

• Duas opções:

• Na mão, criando XML e headers

• wsdl2objc, biblioteca open source

Page 49: Desenvolvendos Apps para iPad - TDC 2010

Mac OS X

Page 50: Desenvolvendos Apps para iPad - TDC 2010

iOS SDK

Cocoa Touch Framework

Page 51: Desenvolvendos Apps para iPad - TDC 2010

iOS SDK

Cocoa Touch Framework

XCode

Page 52: Desenvolvendos Apps para iPad - TDC 2010

iOS SDK

Cocoa Touch Framework

Interface Builder

XCode

Page 53: Desenvolvendos Apps para iPad - TDC 2010

iOS SDK

Cocoa Touch Framework

Instruments

Interface Builder

XCode

Page 54: Desenvolvendos Apps para iPad - TDC 2010

iOS SDK

Cocoa Touch Framework

Instruments

iPhone Simulator

Interface Builder

XCode

Page 55: Desenvolvendos Apps para iPad - TDC 2010

1. Desenvolver

2. Testar

3. Distribuir

Page 56: Desenvolvendos Apps para iPad - TDC 2010

Grátis1. Desenvolver

2. Testar

3. Distribuir

Page 57: Desenvolvendos Apps para iPad - TDC 2010

iOS Developer Program

Page 58: Desenvolvendos Apps para iPad - TDC 2010

iOS Developer Program

US$ 99 / ano

2. Testar

3. Distribuir na App Store

Page 59: Desenvolvendos Apps para iPad - TDC 2010

App Store

• Total controle sobre o preço

• Divisão de 70/30 da receita

• Apps grátis não pagam nada a mais

• Sem custos de host, pagamento com cartão nem marketing

Page 60: Desenvolvendos Apps para iPad - TDC 2010

App Store

Page 61: Desenvolvendos Apps para iPad - TDC 2010

App Store

A Apple tem que autorizar sua app

Page 62: Desenvolvendos Apps para iPad - TDC 2010

App Store

A Apple tem que autorizar sua app

App Store Review Guidelines

http://developer.apple.com/appstore/guidelines.html

Page 63: Desenvolvendos Apps para iPad - TDC 2010
Page 64: Desenvolvendos Apps para iPad - TDC 2010
Page 65: Desenvolvendos Apps para iPad - TDC 2010

iOS Enterprise Program

Page 66: Desenvolvendos Apps para iPad - TDC 2010

iOS Enterprise Program

US$ 299 / ano3. Distribuição interna