Xamarin Forms e MVVM Persistência local com Entity Framework Core
Everton Coimbra de Araújo
Sobre o livro
Este livro traz, na prática, o desenvolvimento de aplicações cross-platform com o Xamarin e Xamarin Forms, frameworks para desenvolvimento de aplicativos para dispositivos móveis. O desenvolvimento de um aplicativo para ser publicado em dispositivos com plataformas diferentes (iOS e Android), de forma nativa, é uma tarefa muito tranquila com o Xamarin. É possível criar uma aplicação, utilizando a linguagem C#, e ela ser publicada para as duas plataformas.
O livro é desenvolvido em onze capítulos, além de conclusão e apêndice. O primeiro é apenas teórico, mas não menos importante, pois trago nele contextualizações sobre dispositivos móveis e as ferramentas usadas no livro. Já no segundo capítulo, apresento o processo de instalação e teste da plataforma e dos IDEs, fazendo uso de emuladores. Veremos também algumas ferramentas do Xamarin para pré-visualização das visões.
A aplicação a ser implementada durante o livro refere-se a uma oficina mecânica, com cadastro de Clientes, Serviços, Peças e Atendimentos. Persistiremos os dados em uma base de dados local e ao final em uma base web, centralizada. Ofereceremos ao usuário a possibilidade de capturar fotos no momento da entrada do veículo na oficina.
A prática começa bem legal no capítulo 3, com apresentações dos tipos de páginas com que uma aplicação Xamarin Forms pode trabalhar. São apresentados também alguns tipos de layout, gerenciadores de conteúdo, oferecidos pela ferramenta. Durante estas implementações, são apresentados controles visuais que podem ser utilizados em suas aplicações.
No quarto capítulo, teremos o tema MVVM, que é o modelo mais utilizado no desenvolvimento de aplicações mobile, no qual temos nosso modelo de negócio ligado a um modelo de visão, que por sua vez se liga, atualizando e sendo atualizado pela visão.
No capítulo 5, trabalharemos a execução de suas aplicações em dispositivos reais. Ficam muito mais fáceis os testes, principalmente para as aplicações Android, pois seus emuladores trazem consigo a sina de serem pesados. Também implementaremos neste capítulo o acesso à base de dados, fazendo uso do Entity Framework Core, API da Microsoft para persistência de objetos em um paradigma relacional. É uma ferramenta poderosa, já utilizada amplamente, e consolidada, em aplicações .NET. Desenvolveremos neste capítulo toda uma estrutura para persistência.
No capítulo 6, começaremos a trabalhar associações entre objetos e sua persistência em uma base de dados SQLite, por meio do EF Core. Para as implementações das visões, continuaremos vendo novos controles e sempre evoluindo no MVVM. Veremos também técnicas para recuperação de objetos associados.
Dando sequência ao tema de associações, no capítulo 7, começaremos com multiplicidade um-para-muitos. Veremos neste capítulo controles nativos para seleção de data e hora.
Os capítulos 8 e 9 são, como todos, muito importantes e interessantes. Continuaremos com associações um-para-muitos, mas trabalhando com imagens e gestos. Capturaremos imagens diretamente da câmera e do álbum de fotos dos dispositivos. Teremos introduzidos aqui alguns dos novos recursos trazidos pelo Xamarin 3. Veremos também técnicas para remoção de objetos associados e trabalharemos com a captura de gestos do usuário sobre imagens.
O décimo capítulo e o décimo primeiro fecham o livro com chave de ouro. Implementaremos serviços REST em um servidor Web, um plus do livro. Consumiremos estes serviços em nossa aplicação Xamarin. Veremos técnicas para envio e recebimento de fotos do, e para o, dispositivo. Veremos nele também o acesso à aplicação por meio de um login e trabalharemos a sincronização de dados com uma base Web. São dois capítulos muito bons. No capítulo 12 concluímos nosso trabalho, e ainda há a disponibilização de um documento complementar no capítulo 13, um apêndice que o auxiliará nos estudos dos capítulos finais.
Certamente, este livro pode ser usado como ferramenta em disciplinas que trabalham o desenvolvimento de dispositivos móveis, quer seja por acadêmicos ou professores. Isso porque ele é o resultado da experiência que tenho em ministrar aulas dessa disciplina, então trago para cá anseios e dúvidas dos alunos que estudam comigo. Eu já utilizo este conteúdo com meus alunos e eles gostam muito.
É importante que o leitor tenha conhecimento de Orientação a Objetos e da linguagem C#, mas não é um fator impeditivo. Conhecimentos básicos sobre banco de dados também são interessantes.
Que a leitura deste livro seja para você, tão prazerosa, como para mim foi escrevê-lo. Desfrute, sem moderação. Sucesso.
Prefácio
Mal sabia, há 13 anos, quando iniciava minha graduação e o professor Everton era um dos meus primeiros professores (desculpe, Everton, pelo spoiler da idade!), que teria a oportunidade, agora como colega professor na universidade, de escrever um prefácio para uma de suas obras. Livros estes, aliás, que não apenas usei durante minha graduação, mas que também indico aos meus alunos de nível universitário até hoje devido à linguagem clara, exemplos objetivos e simplicidade em passar conteúdos nada simples.
Esta simplicidade e riqueza de escrita, sabendo exatamente onde estarão as dúvidas e atacando-as antes mesmo que o leitor perceba, vêm de sua vasta experiência na área de treinamento. Seus livros são resultados de suas experiências dentro e fora das aulas, catalogadas e filtradas de maneira a validar a metodologia a ser utilizada na exposição do conteúdo antes mesmo da escrita do primeiro parágrafo da introdução. Isso será percebido por você, estimado leitor, ao notar em alguns trechos do livro que o autor adianta erros, falhas na documentação e bugs encontrados, e os traz para você, de maneira que você não sofra com problemas conhecidos e documentados, mas também com problemas vivenciados e ainda não tão documentados assim. Nesse sentido, esta nova obra segue exatamente as características das 16 anteriores, prezando a qualidade de conteúdo e a qualidade de apresentação.
Nesta nova obra você terá a oportunidade de se aventurar no mundo do desenvolvimento de aplicativos móveis “cross-plataform”. A maciça presença dos aplicativos móveis é inegável e a necessidade de conhecimento no desenvolvimento desses aplicativos é simplesmente primordial para qualquer desenvolvedor da atualidade. Infelizmente, a falta de padronização de sistemas operacionais e hardware torna esta tarefa extremamente desafiadora.
Com o objetivo de facilitar este processo, o framework Xamarin e Xamarin Forms vem ao nosso auxílio. Este livro os apresentará de maneira incremental e linear, presando em introduzir os conteúdos com apenas a teoria necessária ao seu entendimento, indo direto para o “mão na massa”. Desse modo, os detalhes técnicos e teoria necessária são apresentados durante a construção dos elementos. Muitas vezes você se pegará aprendendo as técnicas, componentes e métodos sem se dar conta disso, devido à leve e objetiva leitura dos itens.
A jornada deste livro consiste na construção de um aplicativo para controle de oficinas mecânicas. Ela inicia com definições básicas sobre desenvolvimento para dispositivos móveis, apresentando as vantagens da utilização do Xamarin. Na sequência, serão apresentados, de maneira detalhada, os procedimentos para instalação e validação do funcionamento da plataforma. De maneira prática, serão explanados os conteúdos básicos necessários, como layouts e controles de interação do usuário, o modelo MVVM e como o utilizar com o Xamarin e diversos outros conteúdos intermediários como componentes do framework tais como DatePiker, ActionSheet e como os utilizar. A menina dos olhos dos dispositivos móveis, acesso e controle de câmeras e álbuns, não foram esquecidos e são utilizados dentro do contexto da aplicação de exemplo.
A integração com bases de dados é garantida com conceitos de SQLite e Entity Framework. Tudo isso será ainda trabalhado em contexto globalizado, isto é, internet, considerando o consumo de serviços REST com deploy em servidores reais.
A sequência da dificuldade dos itens apresentados garante que você aprenda os conteúdos conforme já domina os anteriores. Você verá que em pouco tempo saberá o processo completo do desenvolvimento móvel “cross-plataform”. E o mais importante: de maneira leve e divertida, então divirta-se.
Jorge Aikes Júnior - Universidade Tecnológica Federal do Paraná - Campus Medianeira
Sumário
- 1 Dispositivos móveis, desenvolvimento cross-platform e o Xamarin
- 1.1 Os dispositivos móveis na atualidade
- 1.2 O desenvolvimento móvel cross-platform
- 1.3 O Xamarin
- 1.4 O foco prático deste livro com o MVVM e o Entity Framework Core
- 1.5 Conclusão
- 2 Xamarin — Instalação e testes
- 2.1 Download e instalação
- 2.2 Teste da instalação realizada
- 2.3 Visualização das páginas diretamente no Visual Studio
- 2.4 Conclusão
- 3 Tipos de páginas, layouts e alguns controles para interação com o usuário
- 3.1 ContentPage e o Stacklayout
- 3.2 TabbedPage e o Grid como layout
- 3.3 Navegação entre páginas, ListView e ContentView
- 3.4 Master Detail Pages e Hamburger Menu
- 3.5 Conclusão
- 4 O padrão Model-View-ViewModel e o Messaging Center do Xamarin
- 4.1 A página de serviços oferecidos
- 4.2 Alteração de um serviço
- 4.3 Inserção de um novo serviço
- 4.4 Remoção de um serviço da coleção
- 4.5 Conclusão
- 5 Execução no dispositivo físico, SQLite e Entity Framework Core
- 5.1 Publicação da aplicação para um dispositivo iOS
- 5.2 Publicação da aplicação para um dispositivo Android
- 5.3 Persistência de dados de maneira física com SQLite
- 5.4 Dependency Service para utilizar a base de dados
- 5.5 A classe de modelo
- 5.6 A classe de contexto
- 5.7 A classe de manipulação de dados
- 5.8 A visão que lista todos os clientes
- 5.9 Implementação do Hamburger Menu
- 5.10 A página responsável pela inserção e alteração de um cliente
- 5.11 Remoção de cliente já cadastrado
- 5.12 Interação e manutenção dos dados de Serviço
- 5.13 Atualização da base de dados EF Core com Migrations
- 5.14 Manipulação da base de dados do SQLite
- 5.15 Conclusão
- 6 Associações, Pesquisa, DatePicker, TimePicker e ActionSheet
- 6.1 Classe de modelo e de acesso a dados
- 6.2 A listagem de atendimentos
- 6.3 Pesquisa por clientes para atendimento
- 6.4 Veículo, datas e horas de entrada, previsão e entrega
- 6.5 Botão e Command para realizar a gravação do atendimento
- 6.6 Operações com atendimentos registrados
- 6.7 Implementações para a consulta e alteração de um atendimento
- 6.8 Destaque de um atendimento finalizado pelo uso de Converters
- 6.9 O método para recuperar um único objeto
- 6.10 Conclusão
- 7 Associações com coleções
- 7.1 Classe de modelo e de acesso a dados
- 7.2 Acesso às visões para itens de serviço e fotos do veículo
- 7.3 A listagem e remoção de serviços registrados para o atendimento
- 7.4 A pesquisa de serviços para o atendimento
- 7.5 Registro dos serviços a serem realizados
- 7.6 Conclusão
- 8 Uso de câmera e álbum
- 8.1 Registro das fotos do veículo
- 8.2 Visão para registro das fotos
- 8.3 O acesso à câmera
- 8.4 Tirando foto com o Android
- 8.5 Problemas no caminho para a imagem gravada
- 8.6 O acesso ao álbum de fotos
- 8.7 Gravação do caminho da foto na base de dados
- 8.8 Remoção de objetos de associações
- 8.9 Conclusão
- 9 Listagem de fotos e manipulação de gestos
- 9.1 Listagem das fotos inseridas
- 9.2 O uso de gestos para definir funcionalidades
- 9.3 Operação de zoom na imagem selecionada
- 9.4 Remoção de uma foto da listagem
- 9.5 Remoção de objetos de associações
- 9.6 Conclusão
- 10 Custom renderers, login de acesso e consumo de serviços REST
- 10.1 A visão de Login
- 10.2 Renderizadores personalizados (Custom Renderers)
- 10.3 O login com o serviço REST
- 10.4 Xamarin Essentials
- 10.5 Conclusão
- 11 O CRUD de peças com o consumo de serviços REST
- 11.1 A classe Peca, com arquivo de imagem, suas visões e DAL para o REST
- 11.2 Envio de um objeto com uma imagem para o serviço REST
- 11.3 Recebendo as peças registradas no servidor
- 11.4 Remoção de uma peça no servidor
- 11.5 Recuperação de uma peça específica no servidor
- 11.6 Envio de uma peça sem imagem para o servidor
- 11.7 Um serviço REST que retorna uma imagem
- 11.8 Inserção e alteração para a nova estratégia
- 11.9 Peças que não forem sincronizadas automaticamente
- 11.10 Conclusão
- 12 Os estudos não param por aqui
- 13 Apêndice - Criação de serviços REST
- 13.1 Preparação do ambiente para o desenvolvimento REST
- 13.2 Criação do projeto Web no STS
- 13.3 Teste e deploy da aplicação para o Heroku
- 13.4 O serviço REST que receberá o objeto e imagem para persistência
- 13.5 Envio de um objeto com uma imagem para o serviço REST
- 13.6 Obtenção de dados remotos por meio de um serviço REST
- 13.7 Remoção de uma peça no servidor
- 13.8 Recuperação de uma peça específica no servidor
- 13.9 Envio de uma peça sem imagem para o servidor
- 13.10 Um serviço REST que retorna uma imagem
- 13.11 Conclusão
Dados do produto
- Número de páginas:
- 470
- ISBN:
- 978-65-86110-81-4
- Data publicação:
- 01/2019. Atualizado em 08/2021.