Xamarin Android -   Login com SQLite - I


 Neste tutorial vou mostrar como implementar o login usando um banco de dados SQLite no Xamarin Android com VS 2015 Community e a linguagem C#.

O SQLite é uma biblioteca de software escrito em C desenvolvido por D. Richard Hipp em 2000 originalmente como parte de um contrato com a Marinha dos EUA.

Hoje, ele consiste de mais ou menos 184.000 linhas de código e é de domínio público, por isso pode ser usado por qualquer pessoa.

Embora você possa encontrar referências ao SQLite como sendo um SGBD, ele é, estritamente falando, apenas esta biblioteca.

O recipiente no qual a biblioteca é compilada (uma classe, um framework, ou um SGBD de pleno direito) fornece as funcionalidades de DBMS maiores.

Como o SQLite não requer administração, ele funciona bem em dispositivos que devem operar sem o suporte de um especialista. Por isso ele é muito usado em celulares, televisores, consoles de jogos, câmeras, relógios, utensílios de cozinha, termostatos, automóveis, máquinas-ferramentas, aviões, sensores remotos, zangões, dispositivos médicos, e robôs: a "internet das coisas".

Assim, um banco de dados SQL completo com várias tabelas, índices, triggers e views, está contido em um único arquivo de disco.

O formato de arquivo de banco de dados é multiplataforma - você pode copiar livremente um banco de dados entre os sistemas de 32 bits e de 64 bits ou entre arquiteturas de big-endian e little-endian.

A versão atual do SQLite é o SQLite 3.

Neste tutorial eu vou criar uma aplicação Xamarin Android que usar o banco de dados SQLite  para realizar a autenticação e registro de usuário em uma operação de login.

Vamos criar 3 arquivos de layout que serão as views da interface com o usuário:

Vamos criar 3 Activity que irão gerenciar a respectiva view:

Recursos usados:

Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.

Criando o projeto no Visual Studio 2015 Community

Abra o VS 2015 Community e clique em New Project;

Selecione a linguagem Visual C# e o template Android -> Blank App(Android)

Informe o nome App.Login_SQLite e clique no botão OK;

Referenciando o SQLite no projeto via Nuget

No menu Tools clique em Nuget Package Manager e a seguir em Manage Nuget Packages for Solution;

Digite sqlite-net-pcl e selecione o pacote, o projeto e clique no botão Install:

Ao final você deverá ver os pacotes instalados indicados em References:

Assim estamos prontos para usar os recursos do SQLite no projeto.

Definindo o modelo de domínio : a classe Login

Clique com o botão direito sobre a pasta Resources e a seguir em Add Folder e informe o nome Model.

Selecione a pasta Model e no menu Project clique em Add Class e informe o nome Login.cs.

A seguir defina o código da classe Login conforme o código abaixo:

using SQLite;

namespace App.Login_SQLite.Resources.Model
{

    public class Login
    {
       [PrimaryKey, AutoIncrement]
        public int id { get; set; }

        [MaxLength(25)]
        public string usuario { get; set; }
        [MaxLength(15)]
        public string senha { get; set; }

    }
}

O atributo o [Primary-Key, AutoIncrement] torna o campo id uma chave primária autoincremental.

Definindo a interface com o usuário no arquivo Main.axml

Abra o arquivo Main.axml na pasta Resources/layout e no modo Designer inclua os seguintes controles

Abaixo vemos o leiaute no emulador do Xamarin exibindo a tela e ao lado o respectivo código XML gerado :

.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="#2579BF"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:text="Login"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtviewLogin" />
    <EditText
        android:hint="Usuário"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtUsuario" />
    <EditText
        android:hint="Senha"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:id="@+id/txtSenha" />
    <Button
        android:text="Login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnLogin" />
    <Button
        android:text="Registrar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnRegistrar" />
</LinearLayout>

Definindo a interface do usuário para Registrar um novo usuário : NovoUsuario.axml

Clique com o botão direito do mouse sobre a pasta Resources/layout e no menu Project clique em Add New Item;

Selecione o template Android Layout e informe o nome NovoUsuario.axml e clique em Add;

A seguir vamos incluir a partir da ToolBox os seguintes controles :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="#ba815a"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:text="REGISTRAR"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtviewRegistrar" />
    <EditText
        android:hint="Usuário"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtNovoUsuario" />
    <EditText
        android:hint="Senha"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:id="@+id/txtSenhaNovoUsuario" />
    <Button
        android:text="CRIAR NOVO USUÁRIO"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnRegistrar" />
</LinearLayout>

Definindo a interface do usuário para o login com sucesso : Login.axml

Clique com o botão direito do mouse sobre a pasta Resources/layout e no menu Project clique em Add New Item;

Selecione o template Android Layout e informe o nome Login.axml e clique em Add;

A seguir vamos incluir a partir da ToolBox os seguintes controles :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:minWidth="25px"
    android:minHeight="25px">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="20dp"
        android:src="@drawable/maco1b" />
    <TextView
        android:gravity="center"
        android:text="Bem-Vindo"
        android:textColor="#0e0e58"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtTextoLogin" />
</LinearLayout>

Criando as activities para gerenciar as views NovoUsuario.axml e Login.axml

Vamos agora criar duas novas Activities em nossa aplicação que irão gerenciar as respectivas views : NovoUsuario.axml e Login.axml.

No menu Project clique em Add New Item;

A seguir selecione o template Android e Activity informando o nome RegistrarActivity.cs e clique no botão Add;

Repita o procedimento acima e crie a Activity LoginActivity.cs.

Neste momento nosso projeto apresenta 3 arquivos de layout e 3 Activities.

Na segunda parte do artigo veremos a implementação do código em cada Activity.

Jesus Cristo é o mesmo, ontem, e hoje, e eternamente.
Hebreus 13:8

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti