Arquitetura em camadas do app com Firestore

Crie aplicativos para iOS utilizando SwiftUI 2.0 e serviços do Firebase, como Authentication, Firestore, Remote Config e Storage.

O público alvo desse livro são desenvolvedores com conhecimento em programação orientada a objetos, que desejam conhecer e desenvolver aplicativos para iOS utilizando serviços do Google Firebase.

Todos os aplicativos desenvolvidos aqui serão criados utilizando a linguagem Swift, criada pela Apple. Ter conhecimento nessa linguagem é desejável, mas a estrutura didática do livro considera que o leitor não tem nenhuma experiência prévia. Por isso, alguns conceitos importantes sobre Swift serão apresentados ao longo do livro, principalmente aqueles mais utilizados para o desenvolvimento de aplicativos para iOS.

Apesar desse livro ser voltado a conceitos e arquiteturas não triviais no âmbito do desenvolvimento de aplicativos para iOS, ele não considera como requisito um conhecimento prévio do leitor nesse assunto. O mesmo se aplica ao Google Firebase. Por isso, seu conteúdo passará por assuntos básicos até chegar ao seu propósito final.

O capítulo 2 oferece uma visão geral de como o processo de desenvolvimento de um app iOS acontece.

No capítulo 3, o leitor terá uma explicação inicial sobre os serviços do Firebase que serão utilizados nesse livro, para integrar nas aplicações a serem desenvolvidas para iOS.

O capítulo 4 é uma introdução a alguns conceitos da linguagem Swift, principalmente aqueles que serão mais utilizados nos exemplos que serão desenvolvidos nesse livro.

No capítulo 5 é criado o primeiro aplicativo, já utilizando SwiftUI e as facilidades do Xcode Preview. Também são introduzidos conceitos como State e Binding, que facilitam a atualização da interface gráfica através de eventos.

O capítulo 6 inicia um novo projeto onde são apresentadas técnicas modernas para a criação de um aplicativo para consumir serviços REST autenticação OAuth utilizando o Alamofire. Tudo construído com SwiftUI, mostrando o que ele tem de melhor, com a utilização de viewModels para a representação dos dados a serem atualizados na interface gráfica. Esse mesmo projeto será continuado no capítulo 7, onde será introduzida a navegação entre view dentro do app, assim como o consumo de outras operações do serviço REST.

O capítulo 8 apresenta como construir um app para se registrar e receber mensagens do Firebase Cloud Messaging, um serviço capaz de enviar notificações a dispositivos móveis do Google.

No capítulo 9 será mostrado como autenticar usuários com o Firebase Authentication de forma fácil e descomplicada.

Arquitetura em camadas do app com Firebase Authentication

A informação do usuário autenticado será utilizada para definir as regras de segurança de acesso aos dados que ele criar no Firestore, um banco de dados não-relacional com sincronismo realtime, como será visto no capítulo 10.

No capítulo 11 será visto outro serviço do Firebase, o Analytics, capaz de coletar eventos das ações do usuário dentro app, para obtenção de dados sobre seu comportamento e utilização de funcionalidades.

O capítulo 12 introduz o Firebase Remote Config, que possibilita a alteração de partes do aplicativo mediante variáveis de configuração que podem ser alteradas no console do Firebase.

Finalmente, no capítulo 13 é apresentado o Firebase Storage, que permite o armazenamento de objetos e arquivos no Firebase, utilizando as mesmas regras de segurança de acesso adotadas no Firestore. Com isso o usuário pode guardar seus arquivos de forma segura.

A implementação utilizando o SDK do Firebase faz com que o trabalho de upload e download das fotos seja bem simples e totalmente aderente à arquitetura adotada no restante das implementações realizadas nesse livro.