desenvolvendos apps para ipad - tdc 2010

Post on 20-Jun-2015

2.908 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

Desenvolvendo para iPad

Apps Corporativas com Elegância

Felipe Cypriano

iPad

• 9,7” LED Display com IPS

• 1024 x 768 px de resolução

• 1Ghz Apple A4

• 256mb de RAM

Mercado

2%2%

95%

iPad Global Market Share

Strategic Analytics 3ºT 2010

Qual tablet pretende comprar

Pesquisado por ChangeWave nos EUA

Faça Apps lindas

Interfaces mais realistas no iPad

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

Cuidado para não exagerar

iPhone vs iPad

• Mail no iPhone

• Hierarquia de vários níveis

iPhone vs iPad

• Mail no iPad

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

• Poucos níveis de hierarquia

O Ícone

O Ícone

O Ícone

O Ícone

O Ícone

PNG Original

O Ícone

PNG OriginalEfeitos

Automáticos

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

Sem Amnésia

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

Sem Amnésia

• Salve cedo, salve constantementeCommit early, commit often

Sem Amnésia

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

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

Orientações

• Manter foco no conteúdo principal

• Não fazer mudanças radicais no layout

• Evitar entrada de dados textuais

(nos dois sentidos)

Launch Image

Launch Image

Objective-C

• 1984

• Dynamic method dispatch

• Runtime decision making

• Runtime class extensions

Objective-C

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

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

@end

Pessoa.h

Objective-C

Pessoa.m

@implementation Pessoa

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

@end

Objective-C

Pessoa *alguem = [Pessoa alloc];

[alguem initWithNome:@“NSString literal”];

Nada de Garbage Collector no iOS

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];

OutraClasse

OutraClasse

OutraClasse

Persistindo Dados no iOS

Property List

• Pequenas quantidades de dados

• XML ou binário

• Somente tipos básicos

• NSUserDefaults e Settings

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)

SQLite

• Banco de dados SQL completo em um arquivo

• Vem por padrão no iOS

• Simples, rápido e fácil

Quando Não usar SQLite

• Aplicações cliente/servidor

• Com muita concorrência

• Muitos gigabytes de dados

Quando Não usar SQLite

• Aplicações cliente/servidor

• Com muita concorrência

• Muitos gigabytes de dados

Não se aplica ao iPad

Quando Não usar SQLite no iOS

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

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);

Core Data

• Framework de persistência

• Persiste os dados no SQLite ou binário

Comunicação pela internet

Como obter dados do sistema legado

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

JavaScript Object Notation

• Mais leve que XML

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

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

Mac OS X

iOS SDK

Cocoa Touch Framework

iOS SDK

Cocoa Touch Framework

XCode

iOS SDK

Cocoa Touch Framework

Interface Builder

XCode

iOS SDK

Cocoa Touch Framework

Instruments

Interface Builder

XCode

iOS SDK

Cocoa Touch Framework

Instruments

iPhone Simulator

Interface Builder

XCode

1. Desenvolver

2. Testar

3. Distribuir

Grátis1. Desenvolver

2. Testar

3. Distribuir

iOS Developer Program

iOS Developer Program

US$ 99 / ano

2. Testar

3. Distribuir na App Store

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

App Store

App Store

A Apple tem que autorizar sua app

App Store

A Apple tem que autorizar sua app

App Store Review Guidelines

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

iOS Enterprise Program

iOS Enterprise Program

US$ 299 / ano3. Distribuição interna

@fmcyprianoFelipe Cypriano

felipe@wdev.com.brme@felipecypriano.com

Perguntas?

Obrigado

top related