21
"Como você faz?" Cocoaheads RJ - Douglas Fischer

Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Embed Size (px)

Citation preview

Page 1: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

"Como você faz?"Cocoaheads RJ - Douglas Fischer

Page 2: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Objetivo do Cocoaheads

• Multiplicar conhecimento.

• Dividir experiências.

• Networking.

Page 3: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

“Como você faz isso?"• Mediador apresenta alguns tópicos relacionados ao

desenvolvimento Apple.

• Mediador fala como costuma realizar o trabalho e apresenta algumas vantagens e desvantagens básicas.

• Participantes dizem como realizam o trabalho em seus projetos.

• Todos discutem outras vantagens e desvantagens de cada abordagem.

Page 4: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Criação de User Interface

Alternativas:- Por código

- Por .xibs e .nibs

- Storyboard

Page 5: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: Código!

• Toda UI em um local.

• Manutenção mais rápida.

• Maior controle / custom views.

• Reduz problemas de Merge para equipes.

Page 6: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: Código!

• Mais demorado para ter algo apresentável.

• Exige trabalho de um desenvolvedor.

• Não oferece um feedback imediato da situação atual.

• Com diferentes tamanhos de tela, perde vantagem.

Page 7: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Persistência de Dados

Alternativas principais:- CoreData

- SQLite

- Realm

Page 8: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: CoreData

• Rápido para ter algo funcional.

• Definição de classes de forma visual.

• Faulting automático (fetch por demanda).

• Alto nível.

Page 9: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: CoreData

• Muitos problemas com concorrência.

• Performance questionável com muitos dados.

• Verboso para configuração dos fetches.

• Realm parece ser a melhor opção.

Page 10: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

WebServices

Alternativas principais:- REST vs SOAP

- Serviços separados para cada necessidade.

- Serviço único com todos os dados.

Page 11: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: Serviço unificado• Login / Sync de recebimento / Upload

• Dados disponíveis para modo offline.

• Lento em rede móvel.

• Tráfego desnecessário.

• REST

Page 12: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Estrutura dos ProjetosAlternativas principais:- Grupos por MVC.

- Grupos por Tela.

- Grupos por especialidades.

- Grupos ou Folders?

Page 13: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: Depende do app

• Grupos ao invés de Folders.

• Grupo para frameworks de terceiros.

• CocoaPods é o ideal.

• xcworkspace / xcodeproj

Page 14: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Testes de qualidade do appAlternativas principais:- Teste manual

- Teste automatizado

- Casos de uso

- Checklist

Page 15: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: Teste manual

• Interno.

• Repetitivo / Custoso.

• Imprevisível.

• Sujeito a falhas.

Page 16: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: Teste manual

• Testes automatizados liberam a equipe para outras atividades.

• Teste de UI com ferramentas como KIF.

• Teste automatizado nunca é esquecido.

• Pode gerar material de marketing para o app.

Page 17: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Geração de BuildsAlternativas principais:- Manual pelo Xcode

- Automatizado pelo Xcode Bots

- Automatizado pelo Jenkins / Hudson

- Cloud hosted (Travis CI, Circle CI, Bamboo, Ship.io, etc)

Page 18: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

O que eu uso: Ship.io• Setup local é muito trabalhoso.

• Manutenção é complexa.

• Atualizado a cada 30 minutos.

• Enviado por email para todas pessoas do projeto.

• Xcode Bots possui maior integração com dev.

Page 19: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

• Analytics de uso do app (Flurry, Google Analytics)

• Ferramenta para análise de crashes (Crittercism, Crashlytics)

• Input de dados em células (setter do model, category, etc)

• Disponibilidade offline.

Page 20: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Outros assuntos?

Page 21: Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)

Contato

• Douglas Fischer

• Abacomm (www.abacomm.com.br)

• Twitter (@DougDiskin)

• GitHub (@DougFischer)