Persistencia utilizando sharedPreferences
Nesse capitulo nos iremos conhecer um pouco do sharedPreferences. O SharedPreferences é uma forma de persistencia de dados onde nos utilizamos em situações que não há necessidade de utilizar o banco de dados local e ate mesmo quando não grande numeros de dados a ser salvo, um exemplo de utilização do sharedPreferences seria se a nossa aplicação tivesse uma tela de configurações com algumas ações basicas como por exemplo habilitar para o usuario receber ou não notificações, essa informação se o usuario habilitou ou não esse serviço nos iriamos inserir no sharedPreferences.
Uma recomendação de boas praticas de desenvolvimento mobile é nunca salvar informações pessoais no usuario no sharedPreferences
Para utilizar o sharedPreferences nos utilizamos uma interface chamada SharedPreferences que permite acessar e modificar as preferencias do usuario, para armazenar dados é utilizando um formato de chave-valor, ou seja, cada preferencia armazenada possui uma identificação associada a essa identificação esta o valor dela, nos podemos armazenar diversos dados como por exemplo: int, float, strings, booleans, sets de strings e etc.
Vamos agora criar um novo projeto e vamos criar uma classe chamada PreferenciasUsuario.
Agora vamos criar dois metodos nessa classe, o primeiro vai ser setString que iremos utilizar para inserir a preferencia que queremos cadastrar e essa preferencia nos iremos cadastrar como String, nos iremos passar como parametro para esse metodo os seguintes valores(o contexto da nossa aplicação, a chave que vai ser cadastrada e o valor dessa chave), e o segundo metodo vai ser chamado de getString que vai retornar o valor no formato de String de uma determinada chave que iremos passar por parametro, os parametros para esse metodo vai ser(o contexto da nossa aplicação e a chave que queremos buscar).
Agora vamos aplicar o nosso sharedPreferences, vamos começar com o metodo setString, nos iremos realizar as seguintes alterações.
Primeiro vamos criar uma constante na nossa classe, essa constante vai ser responsavel por identificar o nosso sharedPreference, por questões de boas praticas é sempre bom colocar o nome da nossa aplicação.
No nosso metodo setString na primeira linha nos estamos realizando o seguinte procedimento, estamos criando um objeto do tipo SharedPreferences e iremos chamar o metodo getSharedPreferences passando como primeiro parametro o nome do nosso shared e como segundo parametro o modo de operação, é recomendado sempre utilizar o valor 0 ou MODE_PRIVATE para o android aplicar as configurações default, caso esse shared não exista o metodo getSharedPreferences trata de criar ele automaticamente.
Na segunda linha nos vamos criar um objeto do tipo SharedPreferences.Editor, que vai servir para liberar o nosso shared para editar, e o nosso caso nos iremos adicionar um item ao sharedPreference atraves do metodo putString na terceira linha e na ultima linha nos realizamos o commit, ou seja, enviar as alterações que fizemos para o nosso shared.
Agora vamos modificar o metodo getString, vamos realizar as seguintes alterações. Primeiro nos vamos acessar o nosso shared, apos acessar ele, nos iremos buscar o valor de uma determinada chave que seja do tipo String atraves do metodo preferences.getString, esse metodo recebe como primeiro parametro a chave que estamos tentando buscar o valor, e o segundo parametro é o valor como default caso a chave não exista.