SlideShare uma empresa Scribd logo
Persistência de dados em
     aplicações Android
                                 @netomarin
                                 @Globalcode




sábado, 26 de novembro de 2011
Vamos falar de...

                                 Shared Preferences

                                      SQLite

                                 Content Providers

sábado, 26 de novembro de 2011
                                  BackupManager
SharedPreferences


         Framework para persistir pares de
                    chave-valor de dados
                        primitivos.

sábado, 26 de novembro de 2011
Onde e para o que usar?




                                 Preferências   Valores padrão
sábado, 26 de novembro de 2011
Lendo preferências...

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

      //Obtendo um SharedPreferences específico
      SharedPreferences prefs = getSharedPreferences(“SETTINGS”,
           MODE_PRIVATE);

      //Lendo valores primitivos
      String email = prefs.getString(“email”, “netomarin@gmail.com”);
      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
Gravando preferências...

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

      //atribuindo valores
      editor.putString(“email”, “netomarin@globalcode.com.br”);
      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
Tem banco de
    dados ?


sábado, 26 de novembro de 2011
SQLite

Persistência com
banco de dados
 relacional para
                          Android !

sábado, 26 de novembro de 2011
Saudades do SQL ?


                                     Criar tabelas
                                     Inserir dados
                                       Consultar
                                        Apagar
                       e tudo mais que você sempre sentiu falta...




sábado, 26 de novembro de 2011
Criando e definindo a
                                    base de dados...

      //criar classe que extende SQLiteOpenHelper
      public class MeuBancoDeDados extends SQLiteOpenHelper {

               /**
                * implementar métodos:
                * onCreate
                * onUpgrade
                *
                * E opcionalmente onOpen
                */
      }




sábado, 26 de novembro de 2011
Inserindo dados...

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

      //Criando objeto para inserir no SQLite
      ContentValues 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
Obtendo dados....

      //Obtendo instância do banco de dados
      DatabaseHelper 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
Criar tabela?

             Na mão ?

             INSERT ?!

sábado, 26 de novembro de 2011
SQLite Database Browser




sábado, 26 de novembro de 2011
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
ContentProvider

                                       Única forma de
                                     compartilhar
                                   dados entre diferentes
                                      aplicações.

sábado, 26 de novembro de 2011
Como funciona ?




sábado, 26 de novembro de 2011
Providers do sistema


   Contatos

   Fotos

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




sábado, 26 de novembro de 2011
Lendo os contatos

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

      //Navegando pelos contatos
      while (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
Crie o seu ContentProvider




sábado, 26 de novembro de 2011
E como eu
    acesso o meu
      banco pra
     sincronizar?

sábado, 26 de novembro de 2011
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
Obter uma API Key:
           http://code.google.com/android/backup/signup.html




sábado, 26 de novembro de 2011
Extender BackupAgentHelper

   Deve ter pelo menos um backup helpers:

   1. SharedPreferencesBackupHelper
   Backup de SharedPreferences!

   2. FileBackupHelper
   Backup de arquivos do internal storage.




sábado, 26 de novembro de 2011
Fazer o backup...



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




sábado, 26 de novembro de 2011
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
WTF...

       Já acabou?

sábado, 26 de novembro de 2011
Minicurso Gratuito
                      Persistência de dados em
                         aplicações Android



                  15 / dezembro -19h às 22h
                      Presencial e Online
                         bit.ly/tI8bbN
sábado, 26 de novembro de 2011
sábado, 26 de novembro de 2011
Espere mais um pouco...



                                       Temos mais
                                       3 novidades
                                       para vocês!


sábado, 26 de novembro de 2011
TRÊS novos
                                 TREINAMENTOS
                                  ANDROID no
                                   portifólio da
                                 GLOBALCODE !

sábado, 26 de novembro de 2011
Introdução à
                                 plataforma Android.
                                 http://bit.ly/vP5pjO



sábado, 26 de novembro de 2011
Programando para
                                        Android.
                                 http://bit.ly/gc-android



sábado, 26 de novembro de 2011
Criando Widgets e
                                 Notificações C2DM
                                 http://bit.ly/vxKhXz



sábado, 26 de novembro de 2011
Criando aplicações
                                 Android com GPS,
                                 mapas e sensores.
                                 http://bit.ly/ssexRv


sábado, 26 de novembro de 2011
Pra saber mais:
                                 http://blog.globalcode.com.br/
                                 2011/11/novidades-android-na-
                                         globalcode.html




sábado, 26 de novembro de 2011
@netomarin
                                  slideshare.net/netomarin
sábado, 26 de novembro de 2011

Mais conteúdo relacionado

Destaque (20)

ODP
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
Carlos Gustavo Ruiz
 
PPTX
2 Informix Introduction
Alexandre Marini
 
PPT
Sqlite - Introdução
Joao Johanes
 
PPT
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
Adriel Café
 
PDF
Desenvolvimento móvel com Google Android
Caelum
 
PPTX
Aula05 - Android - Persistência
Arthur Emanuel
 
PDF
Google Android - WTJatai
Caelum
 
PDF
Gestão de Projetos com MS-Project 2010
Fabio Spanhol
 
PPTX
Um exemplo do uso do SQLite: uma base de dados para alumni
Luis Borges Gouveia
 
PDF
Acessando Banco de Dados com o Android
Fernando Anselmo
 
PDF
Project 2013 basico e conceitos 2015 oficial
Alana Ramalho
 
PDF
Curso de Google Android - Aula 1
Jose Berardo
 
PDF
Desenvolvimento Android: Aula 01
Gustavo Zimmermann
 
PDF
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Marcio Palheta
 
PDF
Android Aula 4
Erisvaldo Junior
 
PDF
Android Aula 5
Erisvaldo Junior
 
ODP
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Bruno Vasconcellos
 
PDF
Iniciando no mundo mobile - Programando para android
Diemesleno Carvalho
 
PDF
Capítulo 11 - Melhorando a usabilidade com qualifiers
Marcio Palheta
 
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
Carlos Gustavo Ruiz
 
2 Informix Introduction
Alexandre Marini
 
Sqlite - Introdução
Joao Johanes
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
Adriel Café
 
Desenvolvimento móvel com Google Android
Caelum
 
Aula05 - Android - Persistência
Arthur Emanuel
 
Google Android - WTJatai
Caelum
 
Gestão de Projetos com MS-Project 2010
Fabio Spanhol
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Luis Borges Gouveia
 
Acessando Banco de Dados com o Android
Fernando Anselmo
 
Project 2013 basico e conceitos 2015 oficial
Alana Ramalho
 
Curso de Google Android - Aula 1
Jose Berardo
 
Desenvolvimento Android: Aula 01
Gustavo Zimmermann
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Marcio Palheta
 
Android Aula 4
Erisvaldo Junior
 
Android Aula 5
Erisvaldo Junior
 
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Bruno Vasconcellos
 
Iniciando no mundo mobile - Programando para android
Diemesleno Carvalho
 
Capítulo 11 - Melhorando a usabilidade com qualifiers
Marcio Palheta
 

Semelhante a Persistencia de dados em aplicações Android (20)

PDF
Doctrine2 Seminário PHP
Guilherme Blanco
 
PDF
REST: Faça o Serviço Direito - TDC Goiânia
Alexandre Gaigalas
 
PPTX
Aula05 android persistencia
Roberson Alves
 
PDF
Acessando o MySql com o Python
antonio sérgio nogueira
 
PDF
Livropythonmysql 091022073751-phpapp01
julianabdpaiva
 
PDF
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Carlos Duarte do Nascimento
 
PDF
Desenvolvimento de aplicações para o Google App Engine
Campus Party Brasil
 
PPT
Aula1
mentrixmax
 
PPTX
Introdução à plataforma Android
Natanael Fonseca
 
PDF
Oficina PostgreSQL Básico Latinoware 2012
Fabrízio Mello
 
PDF
Interoperabilidade com .NET em ambiente Mainframe
Alessandro Binhara
 
PPTX
Construindo sua primeira aplicação android
666Insanity
 
PDF
Desenvolvimento de Apps e Games para Android - Parte 5
Erisvaldo Junior
 
PDF
Banco de dados
Verônica Veiga
 
PDF
Mini curso de c#.net
Diemesleno Carvalho
 
PDF
Android Libs - AndroidDevConf
Nelson Glauber Leal
 
PDF
Desenvolvimento de Apps e Games para Android - Parte 6
Erisvaldo Junior
 
PDF
programacao-c-banco-de-dados
Raul Dias
 
PDF
Analise frameworks php
Igor Moura
 
PDF
hibernate annotation
eduardo dias
 
Doctrine2 Seminário PHP
Guilherme Blanco
 
REST: Faça o Serviço Direito - TDC Goiânia
Alexandre Gaigalas
 
Aula05 android persistencia
Roberson Alves
 
Acessando o MySql com o Python
antonio sérgio nogueira
 
Livropythonmysql 091022073751-phpapp01
julianabdpaiva
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Campus Party Brasil
 
Aula1
mentrixmax
 
Introdução à plataforma Android
Natanael Fonseca
 
Oficina PostgreSQL Básico Latinoware 2012
Fabrízio Mello
 
Interoperabilidade com .NET em ambiente Mainframe
Alessandro Binhara
 
Construindo sua primeira aplicação android
666Insanity
 
Desenvolvimento de Apps e Games para Android - Parte 5
Erisvaldo Junior
 
Banco de dados
Verônica Veiga
 
Mini curso de c#.net
Diemesleno Carvalho
 
Android Libs - AndroidDevConf
Nelson Glauber Leal
 
Desenvolvimento de Apps e Games para Android - Parte 6
Erisvaldo Junior
 
programacao-c-banco-de-dados
Raul Dias
 
Analise frameworks php
Igor Moura
 
hibernate annotation
eduardo dias
 
Anúncio

Mais de Antonio Marin Neto (19)

PDF
Explorando novas telas com o Google TV
Antonio Marin Neto
 
PDF
Cloud 2 Device Message Framework - AndroidRec
Antonio Marin Neto
 
PDF
Android ICS Highlights - AndroidRec
Antonio Marin Neto
 
PDF
Criando jogos com Java ME: Diversão e retorno financeiro!
Antonio Marin Neto
 
PDF
Plataformas Móveis: Qual e como escolher?
Antonio Marin Neto
 
PDF
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
Antonio Marin Neto
 
PDF
Desenvolvimento de Software para dispositivos moveis - USC
Antonio Marin Neto
 
PDF
Educação e certificação na plataforma Java
Antonio Marin Neto
 
PDF
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Antonio Marin Neto
 
PDF
A nova era dos games: Redes Sociais e Celulares
Antonio Marin Neto
 
PDF
Conhecendo e comparando as plataformas de desenvolvimento móvel.
Antonio Marin Neto
 
PDF
Conhecendo android
Antonio Marin Neto
 
KEY
Mc71 Desenvolvimento Movel
Antonio Marin Neto
 
PPTX
Cosmo - Quick Devoxx09
Antonio Marin Neto
 
PPTX
Redes Sociais Dispositivos Moveis Lecotec2009
Antonio Marin Neto
 
PPTX
Java Me Touchscreen Just Java2009
Antonio Marin Neto
 
ODP
Jme Games
Antonio Marin Neto
 
PPTX
WRT Widgets - M3DD LA
Antonio Marin Neto
 
PPTX
LWUIT - Just Java2008
Antonio Marin Neto
 
Explorando novas telas com o Google TV
Antonio Marin Neto
 
Cloud 2 Device Message Framework - AndroidRec
Antonio Marin Neto
 
Android ICS Highlights - AndroidRec
Antonio Marin Neto
 
Criando jogos com Java ME: Diversão e retorno financeiro!
Antonio Marin Neto
 
Plataformas Móveis: Qual e como escolher?
Antonio Marin Neto
 
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
Antonio Marin Neto
 
Desenvolvimento de Software para dispositivos moveis - USC
Antonio Marin Neto
 
Educação e certificação na plataforma Java
Antonio Marin Neto
 
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Antonio Marin Neto
 
A nova era dos games: Redes Sociais e Celulares
Antonio Marin Neto
 
Conhecendo e comparando as plataformas de desenvolvimento móvel.
Antonio Marin Neto
 
Conhecendo android
Antonio Marin Neto
 
Mc71 Desenvolvimento Movel
Antonio Marin Neto
 
Cosmo - Quick Devoxx09
Antonio Marin Neto
 
Redes Sociais Dispositivos Moveis Lecotec2009
Antonio Marin Neto
 
Java Me Touchscreen Just Java2009
Antonio Marin Neto
 
WRT Widgets - M3DD LA
Antonio Marin Neto
 
LWUIT - Just Java2008
Antonio Marin Neto
 
Anúncio

Último (8)

PDF
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
PPTX
Gestão de Mudanças - O que é e como é implementada
Gateware Group
 
PPTX
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
PDF
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
PPTX
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
PPTX
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
PDF
Apresentação sobre Funções Matemáticas e o módulo.pdf
Gabriel Vitor
 
PDF
Apresentação de Manipulação de strings em Python .pdf
Gabriel Vitor
 
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
Gestão de Mudanças - O que é e como é implementada
Gateware Group
 
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
Apresentação sobre Funções Matemáticas e o módulo.pdf
Gabriel Vitor
 
Apresentação de Manipulação de strings em Python .pdf
Gabriel Vitor
 

Persistencia de dados em aplicações Android

  • 1. Persistência de dados em aplicações Android @netomarin @Globalcode sábado, 26 de novembro de 2011
  • 2. Vamos falar de... Shared Preferences SQLite Content Providers sábado, 26 de novembro de 2011 BackupManager
  • 3. SharedPreferences Framework para persistir pares de chave-valor de dados primitivos. sábado, 26 de novembro de 2011
  • 4. Onde e para o que usar? Preferências Valores padrão sábado, 26 de novembro de 2011
  • 5. Lendo preferências... //default da aplicação Context c = getApplicationContext(); SharedPreferences defaultPrefs = PreferenceManager. getDefaultSharedPreferences(c); //Obtendo um SharedPreferences específico SharedPreferences prefs = getSharedPreferences(“SETTINGS”, MODE_PRIVATE); //Lendo valores primitivos String email = prefs.getString(“email”, “netomarin@gmail.com”); 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
  • 6. Gravando preferências... //Obtendo o SharedPreferences.Editor SharedPreferences prefs = getSharedPreferences(“SETTINGS”, MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); //atribuindo valores editor.putString(“email”, “netomarin@globalcode.com.br”); 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
  • 7. Tem banco de dados ? sábado, 26 de novembro de 2011
  • 8. SQLite Persistência com banco de dados relacional para Android ! sábado, 26 de novembro de 2011
  • 9. Saudades do SQL ? Criar tabelas Inserir dados Consultar Apagar e tudo mais que você sempre sentiu falta... sábado, 26 de novembro de 2011
  • 10. Criando e definindo a base de dados... //criar classe que extende SQLiteOpenHelper public class MeuBancoDeDados extends SQLiteOpenHelper { /** * implementar métodos: * onCreate * onUpgrade * * E opcionalmente onOpen */ } sábado, 26 de novembro de 2011
  • 11. Inserindo dados... //Obtendo instância do banco de dados DatabaseHelper db = new DatabaseHelper(context); SQLiteDatabase litedb = db.getWritableDatabase(); //Criando objeto para inserir no SQLite ContentValues 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
  • 12. Obtendo dados.... //Obtendo instância do banco de dados DatabaseHelper 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
  • 13. Criar tabela? Na mão ? INSERT ?! sábado, 26 de novembro de 2011
  • 14. SQLite Database Browser sábado, 26 de novembro de 2011
  • 15. 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
  • 16. ContentProvider Única forma de compartilhar dados entre diferentes aplicações. sábado, 26 de novembro de 2011
  • 17. Como funciona ? sábado, 26 de novembro de 2011
  • 18. Providers do sistema Contatos Fotos Calendário (disponível a partir do ICS) sábado, 26 de novembro de 2011
  • 19. Lendo os contatos //Obtendo os contatos Cursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); //Navegando pelos contatos while (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
  • 20. Crie o seu ContentProvider sábado, 26 de novembro de 2011
  • 21. E como eu acesso o meu banco pra sincronizar? sábado, 26 de novembro de 2011
  • 22. 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
  • 23. Obter uma API Key: http://code.google.com/android/backup/signup.html sábado, 26 de novembro de 2011
  • 24. Extender BackupAgentHelper Deve ter pelo menos um backup helpers: 1. SharedPreferencesBackupHelper Backup de SharedPreferences! 2. FileBackupHelper Backup de arquivos do internal storage. sábado, 26 de novembro de 2011
  • 25. Fazer o backup... Notificar o BackupManager com a chamada do método dataChanged() sábado, 26 de novembro de 2011
  • 26. 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
  • 27. WTF... Já acabou? sábado, 26 de novembro de 2011
  • 28. Minicurso Gratuito Persistência de dados em aplicações Android 15 / dezembro -19h às 22h Presencial e Online bit.ly/tI8bbN sábado, 26 de novembro de 2011
  • 29. sábado, 26 de novembro de 2011
  • 30. Espere mais um pouco... Temos mais 3 novidades para vocês! sábado, 26 de novembro de 2011
  • 31. TRÊS novos TREINAMENTOS ANDROID no portifólio da GLOBALCODE ! sábado, 26 de novembro de 2011
  • 32. Introdução à plataforma Android. http://bit.ly/vP5pjO sábado, 26 de novembro de 2011
  • 33. Programando para Android. http://bit.ly/gc-android sábado, 26 de novembro de 2011
  • 34. Criando Widgets e Notificações C2DM http://bit.ly/vxKhXz sábado, 26 de novembro de 2011
  • 35. Criando aplicações Android com GPS, mapas e sensores. http://bit.ly/ssexRv sábado, 26 de novembro de 2011
  • 36. Pra saber mais: http://blog.globalcode.com.br/ 2011/11/novidades-android-na- globalcode.html sábado, 26 de novembro de 2011
  • 37. @netomarin slideshare.net/netomarin sábado, 26 de novembro de 2011