Introdução
Motivação Mobile
O mercado iOS cresce cada vez mais no Brasil e, se a decisão de uma empresa ou indivíduo é a de criar aplicações nativas, a escolha prática para o mundo iOS acaba sendo entre Objective C ou Swift.
Como uma linguagem nova e beta, Swift 3.0 ainda possui espaço para pequenas mudanças que podem alterar a maneira de um programador desenvolver uma aplicação. Entretanto, nesse instante, a Apple já a considera madura o suficiente para que novos aplicativos possam ser criados com ela.
Por ser nova, foram trazidos conceitos que estão em voga na comunidade de desenvolvimento em geral, como podemos ver a influência da linguagem Scala em Swift 3.0.
Como trata-se de uma linguagem compilada e com uma IDE rica, recebemos muitas notificações de possíveis erros ainda em tempo de desenvolvimento, o que evita diversos erros tradicionais, como o acesso a ponteiros inválidos na memória, algo muito fácil de se proteger em Swift 3.0.
Para desenvolvedores novos no mundo iOS, este livro busca ser um guia que ensina diversas partes da linguagem e da API disponível, durante a criação e manutenção de uma aplicação mobile completa.
Todos os níveis de desenvolvedores podem se beneficiar dos conceitos de boas práticas, code smells, refatorações e design patterns apresentados no livro.
Boas práticas e code smells
O objetivo deste livro não é somente guiá-lo através de sua primeira aplicação iOS, mas sim de ser capaz de julgar por si só o que é uma boa estratégia de programação, por meio da introdução de uma dezena de boas práticas e code smells que facilitam ou dificultam a manutenção do código com o passar do tempo.
Um code smell é um sinal forte de que existe algo de estranho no código, não uma garantia de que existe um problema. Da mesma forma, boas práticas e design patterns possuem situações específicas que podem trazer mais mal do que benefícios. Como faremos no livro, toda situação encontrada deve ser analisada friamente: qual o custo de manter o código como está, e qual o custo de refatorá-lo?
Saber pesar e tomar decisões como esta diferenciam um programador iniciante de um profissional, e é isso que buscamos aqui: não somente ensinar a programar, mas sim criar profissionais em nossa área.
São dezenas de boas práticas, design patterns e code smells catalogados no decorrer do livro que podem ser acessados diretamente pelo índice remissivo.
Sumário
- 1 Projeto: nossa primeira App
- 1.1 Instalando o Xcode
- 1.2 Nossa primeira App
- 1.3 ViewController de cadastro de refeição
- 1.4 Boa prática: placeholder e keyboard type
- 1.5 Conectando a interface ao código
- 1.6 Conectando variáveis membro à sua parte visual: @IBOutlet
- 1.7 Resumo
- 2 Swift: a linguagem
- 2.1 Brincando no playground
- 2.2 Arrays
- 2.3 Boa prática: cuidado com inferência de tipos
- 2.4 Resumo
- 3 Swift: mapeando nossos modelos e introdução à Orientação a Objetos
- 3.1 Boa prática: organizando os dados
- 3.2 Boa prática: good citizen (evite nulos) e o init
- 3.3 Nosso Good Citizen
- 3.4 Code smell (mal cheiro de código): opcional!
- 3.5 Resumo
- 4 Projeto: organizando modelos com OO e arquivos em grupos
- 4.1 Boa prática: crie um diretório por grupo
- 4.2 Movendo arquivos no sistema operacional
- 4.3 Aplicando o básico de Orientação a Objetos
- 4.4 Resumo
- 5 Listando as refeições com TableViewController
- 5.1 Tabelas dinâmicas usando Dynamic Prototypes
- 5.2 Resumo
- 6 Projeto: lista de refeições
- 6.1 Resumo
- 7 Navegando entre telas
- 7.1 Navegando com uma pilha de telas
- 7.2 Resumo
- 8 Design pattern: delegate
- 8.1 Configurando um delegate via segue
- 8.2 Code smell: nomes genéricos demais e como extrair um protocolo
- 8.3 Entendendo parâmetros e underline
- 8.4 Resumo
- 9 Relacionamento um para muitos: lista de alimentos
- 9.1 Protocolos da API
- 9.2 Seleção múltipla e Cell Accessory
- 9.3 Desselecionando elementos
- 9.4 Armazenando a seleção
- 9.5 Removendo os desselecionados
- 9.6 Resumo
- 10 Criando novos itens
- 10.1 Pushando views para a pilha programaticamente
- 10.2 Voltando de um push programático
- 10.3 Invocando um delegate de forma programática
- 10.4 Resumo
- 11 Mostrando os detalhes de uma refeição com Long Press
- 11.1 Recuperando onde ocorreu um evento de Long Press
- 11.2 Mostrando os detalhes em um alerta
- 11.3 Mostrando os detalhes dos itens
- 11.4 Resumo
- 12 Alerta: optionals e erros
- 12.1 Boa prática: evite optional, garanta tudo com if let
- 12.2 Tratando o erro com uma mensagem novamente
- 12.3 Boa prática: mensagens de erro descritivas
- 12.4 Refatoração: tratando diversos erros
- 12.5 Parâmetros default
- 12.6 Boa prática: Single Responsibility Principle, Princípio de Responsabilidade Única
- 12.7 Casos mais complexos de tratamento de erro
- 12.8 Code smell: nested ifs
- 12.9 Resumo
- 13 Removendo uma refeição
- 13.1 Ações destrutivas e estilos
- 13.2 Passando uma função como callback
- 13.3 Identificando a linha a ser removida
- 13.4 Removendo e atualizando a tela
- 13.5 Closures
- 13.6 Code smell: closures a rodo
- 13.7 Resumo
- 14 Armazenando as refeições dentro do file system
- 14.1 Salvando as refeições no sistema de arquivos
- 14.2 Salvando e lendo itens no sistema de arquivos
- 14.3 Resumo
- 15 Boa prática: dividindo responsabilidades e o Data Access Object
- 15.1 Resumo
- 16 Aonde chegamos e próximos passos
Dados do produto
- Número de páginas:
- Data publicação: