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

Preview:

Citation preview

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

Objetivo do Cocoaheads

• Multiplicar conhecimento.

• Dividir experiências.

• Networking.

“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.

Criação de User Interface

Alternativas:- Por código

- Por .xibs e .nibs

- Storyboard

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.

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.

Persistência de Dados

Alternativas principais:- CoreData

- SQLite

- Realm

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.

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.

WebServices

Alternativas principais:- REST vs SOAP

- Serviços separados para cada necessidade.

- Serviço único com todos os dados.

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

Estrutura dos ProjetosAlternativas principais:- Grupos por MVC.

- Grupos por Tela.

- Grupos por especialidades.

- Grupos ou Folders?

O que eu uso: Depende do app

• Grupos ao invés de Folders.

• Grupo para frameworks de terceiros.

• CocoaPods é o ideal.

• xcworkspace / xcodeproj

Testes de qualidade do appAlternativas principais:- Teste manual

- Teste automatizado

- Casos de uso

- Checklist

O que eu uso: Teste manual

• Interno.

• Repetitivo / Custoso.

• Imprevisível.

• Sujeito a falhas.

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.

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)

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.

• 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.

Outros assuntos?

Contato

• Douglas Fischer

• Abacomm (www.abacomm.com.br)

• Twitter (@DougDiskin)

• GitHub (@DougFischer)