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 Original
Efeitos
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...
Sem Amnésia
• A última tela que o usuário estava usando
deve ser lembrada e reaberta
Sem Amnésia
• Salve cedo, salve constantemente
Commit 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 par...
Orientações
• Manter foco no conteúdo principal
• Não fazer mudanças radicais no layout
• Evitar entrada de dados textuais...
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
P...
Objective-C
Pessoa.m
@implementation Pessoa
+ (Pessoa *) initWithNome:(NSString *)oNome {
if (self = [super init]) {
nome ...
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 obj...
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 pl...
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...
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);
i...
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áp...
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 ...
Links
• json-framework: http://code.google.com/p/
json-framework/
• wsdl2objc: http://code.google.com/p/
wsdl2objc/
• Even...
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...
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
Mais informações
http://developer.apple.com/
http://www.delicious.com/fmcypriano/objective-c/
http://cocoadevcentral.com/d...
@fmcypriano
Felipe Cypriano
felipe@wdev.com.br
me@felipecypriano.com
Perguntas?
Obrigado
Desenvolvendos Apps para iPad - TDC 2010
Desenvolvendos Apps para iPad - TDC 2010
Desenvolvendos Apps para iPad - TDC 2010
Desenvolvendos Apps para iPad - TDC 2010
Próximos SlideShares
Carregando em…5
×

Desenvolvendos Apps para iPad - TDC 2010

3.226 visualizações

Publicada em

Slides da minha apresentação sobre iPad no The Developers Conference 2010 em Floripa.

Com alguns extras: mais links e exemplo de implementação. :)

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.226
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
63
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendos Apps para iPad - TDC 2010

  1. 1. Desenvolvendo para iPad Apps Corporativas com Elegância Felipe Cypriano
  2. 2. iPad • 9,7” LED Display com IPS • 1024 x 768 px de resolução • 1Ghz Apple A4 • 256mb de RAM
  3. 3. Mercado 2% 2% 95% iPad Global Market Share Strategic Analytics 3ºT 2010
  4. 4. Qual tablet pretende comprar Pesquisado por ChangeWave nos EUA
  5. 5. Faça Apps lindas
  6. 6. Interfaces mais realistas no iPad A percepção de valor da informação digital é maior
  7. 7. Cuidado para não exagerar
  8. 8. iPhone vs iPad • Mail no iPhone • Hierarquia de vários níveis
  9. 9. iPhone vs iPad • Mail no iPad • Tela única com o mínimo de mudanças no contexto • Poucos níveis de hierarquia
  10. 10. O Ícone
  11. 11. O Ícone
  12. 12. O Ícone
  13. 13. O Ícone
  14. 14. O Ícone PNG Original
  15. 15. O Ícone PNG Original Efeitos Automáticos
  16. 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. 17. Sem Amnésia • A última tela que o usuário estava usando deve ser lembrada e reaberta
  18. 18. Sem Amnésia • Salve cedo, salve constantemente Commit early, commit often
  19. 19. Sem Amnésia • A qualquer momento um aplicativo pode ser informado que vai ser fechado
  20. 20. 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
  21. 21. Orientações • Manter foco no conteúdo principal • Não fazer mudanças radicais no layout • Evitar entrada de dados textuais (nos dois sentidos)
  22. 22. Launch Image
  23. 23. Launch Image
  24. 24. Objective-C • 1984 • Dynamic method dispatch • Runtime decision making • Runtime class extensions
  25. 25. Objective-C @interface Pessoa: NSObject { NSString *nome; int idade; } + (Pessoa *) initWithNome:(NSString *)oNome; @end Pessoa.h
  26. 26. Objective-C Pessoa.m @implementation Pessoa + (Pessoa *) initWithNome:(NSString *)oNome { if (self = [super init]) { nome = oNome; [nome retain]; } return self; } @end
  27. 27. Objective-C Pessoa *alguem = [Pessoa alloc]; [alguem initWithNome:@“NSString literal”];
  28. 28. Nada de Garbage Collector no iOS
  29. 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];
  30. 30. OutraClasse
  31. 31. OutraClasse
  32. 32. OutraClasse
  33. 33. Persistindo Dados no iOS
  34. 34. Property List • Pequenas quantidades de dados • XML ou binário • Somente tipos básicos • NSUserDefaults e Settings
  35. 35. 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)
  36. 36. SQLite • Banco de dados SQL completo em um arquivo • Vem por padrão no iOS • Simples, rápido e fácil
  37. 37. Quando Não usar SQLite • Aplicações cliente/servidor • Com muita concorrência • Muitos gigabytes de dados
  38. 38. Quando Não usar SQLite • Aplicações cliente/servidor • Com muita concorrência • Muitos gigabytes de dados Não se aplica ao iPad
  39. 39. Quando Não usar SQLite no iOS • Se você não gostar de usar API em C
  40. 40. 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);
  41. 41. Core Data • Framework de persistência • Persiste os dados no SQLite ou binário
  42. 42. Comunicação pela internet Como obter dados do sistema legado
  43. 43. 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
  44. 44. JavaScript Object Notation • Mais leve que XML • json-framework, um wrapper open source para Objective-C
  45. 45. 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
  46. 46. Links • json-framework: http://code.google.com/p/ json-framework/ • wsdl2objc: http://code.google.com/p/ wsdl2objc/ • Event-Driven XML Guide: http://bit.ly/ios- event-drive-xml
  47. 47. Mac OS X
  48. 48. iOS SDK Cocoa Touch Framework
  49. 49. iOS SDK Cocoa Touch Framework XCode
  50. 50. iOS SDK Cocoa Touch Framework Interface Builder XCode
  51. 51. iOS SDK Cocoa Touch Framework Instruments Interface Builder XCode
  52. 52. iOS SDK Cocoa Touch Framework Instruments iPhone Simulator Interface Builder XCode
  53. 53. 1. Desenvolver 2.Testar 3. Distribuir
  54. 54. Grátis1. Desenvolver 2.Testar 3. Distribuir
  55. 55. iOS Developer Program
  56. 56. iOS Developer Program US$ 99 / ano 2.Testar 3. Distribuir na App Store
  57. 57. 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
  58. 58. App Store
  59. 59. App Store A Apple tem que autorizar sua app
  60. 60. App Store A Apple tem que autorizar sua app App Store Review Guidelines http://developer.apple.com/appstore/guidelines.html
  61. 61. iOS Enterprise Program
  62. 62. iOS Enterprise Program US$ 299 / ano3. Distribuição interna
  63. 63. Mais informações http://developer.apple.com/ http://www.delicious.com/fmcypriano/objective-c/ http://cocoadevcentral.com/d/learn_objectivec/
  64. 64. @fmcypriano Felipe Cypriano felipe@wdev.com.br me@felipecypriano.com Perguntas? Obrigado

×