1 - Introdução
Bem vindo ao livro Desenvolvimento Android com Firebase! Com ele, o leitor construirá aplicativos para Android utilizando as mais modernas técnicas, tecnologias e arquiteturas existentes. Além disso, utilizará o Google Firebase, uma poderosa plataforma de cloud computing que oferece, dentre outras coisas, mecanismos de autenticação, banco de dados, registos de eventos e muito mais!
O leitor que decidiu por esse livro já deve saber da importância que aplicativos para dispositivos móveis representam na vida das pessoas, bem como da demanda pelas empresas por desenvolvedores com habilidades nessa área.
Seja por hobby ou para alcançar uma vaga de emprego tão sonhada, aprender a desenvolver aplicativos para Android pode ser desafiador e divertido!
1.1 - A quem se destina esse livro
O público alvo desse livro são desenvolvedores com conhecimento em programação orientada a objetos, que desejam conhecer e desenvolver aplicativos Android utilizando serviços do Google Firebase.
Todos os aplicativos desenvolvidos aqui serão criados utilizando a linguagem Kotlin, criada pela JetBrains. 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 Kotlin serão apresentados ao longo do livro, principalmente aqueles mais utilizados para o desenvolvimento de aplicativos para Android.
Apesar desse livro ser voltado a conceitos e arquiteturas não triviais no âmbito do desenvolvimento de aplicativos para Android, 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, como pode ser visto em detalhes na seção 1.4 desse capítulo.
1.2 - O que é necessário para desenvolver aplicativos para Android
Para aproveitar esse livro em sua totalidade, acompanhar os exercícios práticos e desenvolver os exercícios propostos, será necessário utilizar a IDE Android Studio. Nesse link é possível visualizar os requisitos mínimos necessários da máquina de desenvolvimento.
Também será necessário um dispositivo Android com versão 5.0 - Lollipop ou superior. Caso não possua um aparelho com Android, é possível criar um dispositivo emulado, porém, os requisitos da máquina de desenvolvimento deverão ser maiores, principalmente em termos de memória RAM.
Também será necessário criar uma conta no Firebase, para criação dos recursos que serão utilizados nele.
Todas as ferramentas e contas necessárias para o acompanhamento desse livro podem ser obtidas ou criadas de forma gratuita.
1.3 - Estrutura didática do livro
A estrutura didática desse livro permeia um conceito conhecido como aprendizado baseado em problemas, onde o leitor é apresentado e conduzido aos conceitos chaves através de problemas que devem ser resolvidos utilizando tais conhecimentos.
Obviamente, nem todos os conceitos podem ser apresentados dessa forma, mas para aqueles que permitem, será utilizado uma abordagem mais prática de aprendizado, fazendo com que o leitor sempre tenha em mente um problema a ser resolvido utilizando a tecnologia que é detalhadamente apresentada. Dessa forma, tendo-se sempre em mente o problema alvo a ser resolvido, o leitor pode absorver os conceitos que são apresentados de forma mais eficiente.
1.4 - Capítulos do livro
Os capítulos serão apresentados da seguinte forma:
O capítulo 2 apresenta um pouco sobre o sistema operacional Android e o capítulo 3 mostra conceitos por trás da plataforma Firebase que será utilizada pelos aplicativos desenvolvidos nesse livro.
Apesar desse ser um livro totalmente voltado à prática, é importante apresentar alguns conceitos iniciais sobre as plataformas que serão utilizadas, para que o leitor tome conhecimento sobre tudo o que será utilizado, antes de mergulhar no código.
O capítulo 4 instrui o leitor a preparar seu ambiente de desenvolvimento, no processo de instalação das ferramentas e bibliotecas necessárias, bem como suas configurações.
No capítulo 5 são apresentados alguns conceitos da linguagem Kotlin, focado no que será utilizado para o desenvolvimentos dos aplicativos nesse livro.
var dogs = listOf("Matilde", "Doralice", "Hannah", "Clotilde")
for (dog in dogs) {
println("New dog is: ${dog}")
}
No capítulo 6 começa o desenvolvimento de um aplicativo bem simples, somente com o intuito de demonstrar a ferramenta Android Studio, a linguagem Kotlin e a estrutura de um projeto inicial, utilizando ConstraintLayout para a construção da interface gráfica:
Ainda com o mesmo aplicativo desenvolvido, o capítulo 7 apresenta alguns desafios do mundo de dispositivos móveis e como resolvê-los com técnicas simples. Aqui, serão apresentados conceitos como Activity, seu ciclo de vida e como lidar com seus estados.
O capítulo 8 inicia um novo aplicativo para consumir serviços REST com OAuth utilizando o framework Retrofit.
Nele também serão utilizados conceitos como ViewModel e Kotlin coroutines.
O capítulo 9 continua o segundo aplicativo, introduzindo conceitos de listas criadas com o componente RecyclerView, assim como a navegação entre telas utilizando o NavigationController, que permite a utilização de safe args entre fragmentos.
No capítulo 10 um novo aplicativo será criado para receber mensagens através do Firebase Cloud Messaging, dando início a parte do livro que trata sobre a interação de aplicações Android com a plataforma Firebase.
Com o Firebase Cloud Messaging é possível enviar notificações aos dispositivos, utilizando essa plataforma do Google.
O capítulo 11 inicia um novo aplicativo para utilizar o Firebase Authentication, para autenticação de usuários utilizando a conta do Google, sem a necessidade da criação de infraestruturas complexas.
Nessa aplicação também será utilizado o Firestore, que é um banco de dados não-relacional na nuvem, que permite o armazenamento de coleções de documentos, com sincronismo em tempo real entre dispositivos.
O capítulo 12 utiliza uma ferramenta extremamente poderosa para o entendimento do comportamento do usuário com um aplicativo: Google Analytics for Firebase. Com ele é possível gerar eventos da utilização de cada parte da aplicação, concentrando em um dashboard analítico.
Com o Googe Analytics for Firebase também é possível obter informações do engajamento dos usuários, bem como informações sobre localização, modelos de dispositivos e versões de sistema operacional.
Finalmente o capítulo 13 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. Isso faz com que uma série de possibilidades possam ser criadas, desde a liberação de funcionalidades a um pequeno grupo de usuários, testes A/B, gratificações para usuários VIPs ou até mesmo a mudança do comportamento da aplicação. Tudo isso sem que haja a necessidade da publicação de uma nova versão do aplicativo.
Está pronto para embarcar nessa jornada pelo mundo do Android? Então vamos lá que o livro está repleto de novidades a serem descobertas por você!