16. 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
17. Sem Amnésia
• A última tela que o usuário estava usando
deve ser lembrada e reaberta
29. 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];
36. Property List
• Pequenas quantidades de dados
• XML ou binário
• Somente tipos básicos
• NSUserDefaults e Settings
37. 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)
38. SQLite
• Banco de dados SQL completo em um arquivo
• Vem por padrão no iOS
• Simples, rápido e fácil
39. Quando Não usar SQLite
• Aplicações cliente/servidor
• Com muita concorrência
• Muitos gigabytes de dados
40. Quando Não usar SQLite
• Aplicações cliente/servidor
• Com muita concorrência
• Muitos gigabytes de dados
Não se aplica ao iPad
41. Quando Não usar SQLite no iOS
• Se você não gostar de usar API em C
42. 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);
45. 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
47. 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
59. 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