37
Persistência de dados em aplicações Android @netomarin @Globalcode sábado, 26 de novembro de 2011

Persistencia de dados em aplicações Android

Embed Size (px)

DESCRIPTION

A persistência de dados em qualquer tipo de aplicação sempre é um assunto muito importante, principalmente em aplicações móveis onde diversos fatores como desempenho e espaço disponível.Na plataforma Android temos várias formas de persistir essas informações, e cada uma dessas formas se encaixa melhor em cada tipo de dado que você deseja persistir.

Citation preview

Page 1: Persistencia de dados em aplicações Android

Persistência de dados em aplicações Android

@netomarin@Globalcode

sábado, 26 de novembro de 2011

Page 2: Persistencia de dados em aplicações Android

Shared Preferences

Content Providers

SQLite

Vamos falar de...

BackupManagersábado, 26 de novembro de 2011

Page 3: Persistencia de dados em aplicações Android

SharedPreferences

Framework para persistir pares de

chave-valor de dados primitivos.

sábado, 26 de novembro de 2011

Page 4: Persistencia de dados em aplicações Android

Onde e para o que usar?

Preferências Valores padrãosábado, 26 de novembro de 2011

Page 5: Persistencia de dados em aplicações Android

Lendo preferências...

//default da aplicaçãoContext c = getApplicationContext();SharedPreferences defaultPrefs = PreferenceManager.

getDefaultSharedPreferences(c);

//Obtendo um SharedPreferences específicoSharedPreferences prefs = getSharedPreferences(“SETTINGS”,

MODE_PRIVATE);

//Lendo valores primitivosString email = prefs.getString(“email”, “[email protected]”);boolean logado = prefs.getBoolean(“logado”, false);float volume = prefs.getFloat(“volume”, 1.0f);int idUsuario = prefs.getInt(“idUsuario”, -1);long timestamp = prefs.getLong(“timestamp”, 0);

http://developer.android.com/reference/android/content/SharedPreferences.html

sábado, 26 de novembro de 2011

Page 6: Persistencia de dados em aplicações Android

Gravando preferências...

//Obtendo o SharedPreferences.EditorSharedPreferences prefs = getSharedPreferences(“SETTINGS”,MODE_PRIVATE);SharedPreferences.Editor editor = prefs.edit();

//atribuindo valoreseditor.putString(“email”, “[email protected]”);editor.putBoolean(“logado”, true);editor.putFloat(“volume”, 4.0f);editor.putInt(“idUsuario”, 779988);editor.putLong(“timestamp”, System.currentTimeMillis());

//COMMITANDO !! ** OBRIGATÓRIO **editor.commit();

http://developer.android.com/reference/android/content/SharedPreferences.Editor.html

sábado, 26 de novembro de 2011

Page 7: Persistencia de dados em aplicações Android

Tem banco de dados ?

sábado, 26 de novembro de 2011

Page 8: Persistencia de dados em aplicações Android

SQLite

Persistência com

banco de dados relacional para

Android !

sábado, 26 de novembro de 2011

Page 9: Persistencia de dados em aplicações Android

Saudades do SQL ?

Criar tabelasInserir dados

ConsultarApagar

e tudo mais que você sempre sentiu falta...

sábado, 26 de novembro de 2011

Page 10: Persistencia de dados em aplicações Android

Criando e definindo abase de dados...

//criar classe que extende SQLiteOpenHelperpublic class MeuBancoDeDados extends SQLiteOpenHelper { /** * implementar métodos: * onCreate * onUpgrade * * E opcionalmente onOpen */}

sábado, 26 de novembro de 2011

Page 11: Persistencia de dados em aplicações Android

Inserindo dados...

//Obtendo instância do banco de dadosDatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getWritableDatabase();

//Criando objeto para inserir no SQLiteContentValues v = new ContentValues(); v.put(“categoria”, categoria); v.put(“resumo”, resumo); v.put(“descricao”, descricao);litedb.insert(“todo”, null, v);

sábado, 26 de novembro de 2011

Page 12: Persistencia de dados em aplicações Android

Obtendo dados....

//Obtendo instância do banco de dadosDatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getReadableDatabase();

//Efetuando select :-)String sql = “SELECT * FROM todo”; Cursor c = litedb.rawQuery(sql, null); c.moveToFirst();while(c.moveToNext()) { c.getString(0); //categoria c.getString(1); //resumo c.getString(2); //descricao}

sábado, 26 de novembro de 2011

Page 13: Persistencia de dados em aplicações Android

Criar tabela?

Na mão ?

INSERT ?!

sábado, 26 de novembro de 2011

Page 14: Persistencia de dados em aplicações Android

SQLite Database Browser

sábado, 26 de novembro de 2011

Page 15: Persistencia de dados em aplicações Android

Dados embarcados...

Prós:Possível pré-carregar a aplicação com dados.Melhoria no desempenho de criação.Edição gráfica do banco de dados.

Contra:Aumenta o tamanho da aplicação.Dados podem ser extraídos do seu APK.

sábado, 26 de novembro de 2011

Page 16: Persistencia de dados em aplicações Android

ContentProvider

Única forma de

compartilhar

dados entre diferentes

aplicações.

sábado, 26 de novembro de 2011

Page 17: Persistencia de dados em aplicações Android

Como funciona ?

sábado, 26 de novembro de 2011

Page 18: Persistencia de dados em aplicações Android

Providers do sistema

Contatos

Fotos

Calendário (disponível a partir do ICS)

sábado, 26 de novembro de 2011

Page 19: Persistencia de dados em aplicações Android

Lendo os contatos

//Obtendo os contatosCursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

//Navegando pelos contatoswhile (contacts.moveToNext()) { // Id do contato String contactID = contacts.getString(contacts. getColumnIndex(ContactsContract.Contacts._ID));

// Nome do contato (FirstName + LastName) String contactName = contacts.getString(contacts. getColumnIndex(ContactsContract.Data.DISPLAY_NAME));}

http://developer.android.com/guide/topics/providers/content-providers.html

sábado, 26 de novembro de 2011

Page 20: Persistencia de dados em aplicações Android

Crie o seu ContentProvider

sábado, 26 de novembro de 2011

Page 21: Persistencia de dados em aplicações Android

E como eu acesso o meu

banco pra sincronizar?

sábado, 26 de novembro de 2011

Page 22: Persistencia de dados em aplicações Android

BackupManager

Backup na cloud de dados

salvos em preferências ou

configurações.

Também de arquivos pequenos.

sábado, 26 de novembro de 2011

Page 23: Persistencia de dados em aplicações Android

Obter uma API Key:http://code.google.com/android/backup/signup.html

sábado, 26 de novembro de 2011

Page 24: Persistencia de dados em aplicações Android

Extender BackupAgentHelper

Deve ter pelo menos um backup helpers:

1. SharedPreferencesBackupHelperBackup de SharedPreferences!

2. FileBackupHelperBackup de arquivos do internal storage.

sábado, 26 de novembro de 2011

Page 25: Persistencia de dados em aplicações Android

Fazer o backup...

Notificar o BackupManager com a chamada do método dataChanged()

sábado, 26 de novembro de 2011

Page 26: Persistencia de dados em aplicações Android

AndroidManifest.xml

<application android:label="MyApplication"             android:backupAgent="MyBackupAgent" android:allowBackup="true" >    ...    <meta-data android:name="com.google.android.backup.api_key"        android:value="SUA_API_KEY" /></application>

sábado, 26 de novembro de 2011

Page 27: Persistencia de dados em aplicações Android

WTF...

Já acabou?

sábado, 26 de novembro de 2011

Page 28: Persistencia de dados em aplicações Android

Minicurso GratuitoPersistência de dados em

aplicações Android

15 / dezembro -19h às 22hPresencial e Online

bit.ly/tI8bbN sábado, 26 de novembro de 2011

Page 29: Persistencia de dados em aplicações Android

sábado, 26 de novembro de 2011

Page 30: Persistencia de dados em aplicações Android

Espere mais um pouco...

Temos mais 3 novidades para vocês!

sábado, 26 de novembro de 2011

Page 31: Persistencia de dados em aplicações Android

TRÊS novos TREINAMENTOS

ANDROID no portifólio da

GLOBALCODE !

sábado, 26 de novembro de 2011

Page 32: Persistencia de dados em aplicações Android

Introdução à plataforma Android.http://bit.ly/vP5pjO

sábado, 26 de novembro de 2011

Page 33: Persistencia de dados em aplicações Android

Programando para Android.

http://bit.ly/gc-android

sábado, 26 de novembro de 2011

Page 34: Persistencia de dados em aplicações Android

Criando Widgets e Notificações C2DMhttp://bit.ly/vxKhXz

sábado, 26 de novembro de 2011

Page 35: Persistencia de dados em aplicações Android

Criando aplicações Android com GPS, mapas e sensores.http://bit.ly/ssexRv

sábado, 26 de novembro de 2011

Page 37: Persistencia de dados em aplicações Android

@netomarinslideshare.net/netomarin

sábado, 26 de novembro de 2011