SlideShare uma empresa Scribd logo
1 de 40
#IO16Extended #IO16Recife
+LeviSaturnino
@levisaturnino
levisaturnino@gmail.com
DATA BINDING
Android - Levi Saturnino
A API de DataBinding foi lançada no Google I/O de 2015 e tem o intuito de
facilitar a vida dos desenvolvedores removendo da Activity/Fragment muita da
lógica de UI feitas por esses componentes.
Apesar de ter sido lançado juntamente com o Android 6, a API de Data Binding é
uma biblioteca separada do sistema operacional e pode ser utilizada a partir do
Android 2.1 (API Level 7).
CONFIGURAÇÃO NO GRADLE
Para configurar seu aplicativo para usar a ligação de dados,
adicione o elemento dataBinding ao seu arquivo build.gradle no
módulo de aplicação. Use o seguinte trecho de código para
configurar a ligação de dados:
android {
....
dataBinding {
enabled = true
}
}
Três coisas que por si só já valem a utilização do Data Binding são:
(1) não utilizar findViewById;
(2) associação de eventos a componentes ;
(3) sincronização de valores do model para a view.
COM DATA BINDING
Exemplo de parametros strings.xml
No xml
<string name="resource1">Hello string: %1$s, and hello float: %2$.2f.</string>
No Java
String svalue = "test";
float sfloat= 3.1415926;
String sresult = getString(R.string.resource1, svalue, sfloat);
Recursos
Podemos acessar os recursos da aplicação normalmente.
Se tivéssemos este texto no strings.xml
<string name="nomeComSobrenome">%1$s %2$s</string>
Poderiamos utilizar o recurso com o Data Binding da seguinte forma:
android:text=”@{@string/nomeComSobrenome(usuario.nome,usuario.sobrenome)}”
Todos os recursos podem ser acessados, mas alguns tem uma notação especial:
@stringArray, @intArray, @animator, @color, @colorStateLis e @typedArray.
<string name="priceFormat">%1$.2f</string>
Passo a Passo para
implementação do Data Binding
POJO USUARIO
public class Usuario {
public String nome;
public String sobrenome;
public Usuario(String nome, String sobrenome) {
This.nome = nome;
This.sobrenome = sobrenome;
}
}
Outro exemplo com BaseObservable
import android.databinding.BaseObservable;
import android.databinding.ObservableField;
public class Usuario extends BaseObservable {
public ObservableField<String> nome = new ObservableField<>();
public ObservableField<String> sobrenome = new ObservableField<>();
public Usuario(String nome, String sobrenome) {
this.nome.set(nome);
this.sobrenome.set(sobrenome); }
}
Classe do Evento
public class TratadorMagico {
public boolean longClick(View v){
Log.d("Script", "longClick!");
return true;
}
public void click(View v){
Log.d("Script", "click!");
}
}
Layout XML - ROOT
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="usuario"
type="dominando.android.databinding.Usuario" />
<variable
name="tratador"
type="dominando.android.databinding.TratadorMagico"/>
</data>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" android:orientation="vertical">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{usuario.nome +' '+ usuario.sobrenome}"
android:onClick="@{tratador.click}"
android:onLongClick="@{tratador.longClick}"/>
<EditText android:id="@+id/edtNome"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText android:id="@+id/edtSobrenome"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</layout>
Classe do MAIN
public class MainActivity extends AppCompatActivity {
Usuario usuario;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding =
DataBindingUtil.setContentView(this, R.layout.activity_main);
usuario = new Usuario("Levi", "Saturnino");
binding.setUsuario(usuario);
binding.setTratador(new TratadorMagico());
}
Tela final
Referências
Palestra sobre Data Binding no Android Dev Summit (em inglês)
https://www.youtube.com/watch?v=NBbeQMOcnZ0
Hangout com o Neto Marin (Google Developer Advocate)
https://www.youtube.com/watch?v=JWpn4yyIJxc
Blog de Nelson Glauber
http://www.nglauber.com.br/2016/05/android-data-binding.html
Data Binding Guide (Documentação oficial)
http://developer.android.com/intl/pt-br/tools/data-binding/guide.html

Mais conteúdo relacionado

Destaque

Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsCesar Augusto Nogueira
 
Xamarin e Azure - Mobile e Cloud First
Xamarin e Azure - Mobile e Cloud FirstXamarin e Azure - Mobile e Cloud First
Xamarin e Azure - Mobile e Cloud FirstStudyxnet
 
Manga Port 20110829
Manga Port 20110829Manga Port 20110829
Manga Port 20110829carolfurness
 
Ideias Todo Mundo Tem
Ideias Todo Mundo TemIdeias Todo Mundo Tem
Ideias Todo Mundo Tempublirp
 
Desafios da tecnologia para escritórios contábeis
Desafios da tecnologia para escritórios contábeisDesafios da tecnologia para escritórios contábeis
Desafios da tecnologia para escritórios contábeisMarcelo dos Santos
 
Conta Azul: de Joinville a Silicon Valley
Conta Azul: de Joinville a Silicon ValleyConta Azul: de Joinville a Silicon Valley
Conta Azul: de Joinville a Silicon ValleyStartupi
 
Além do mundo acadêmico - O que fazer após a graduação?
Além do mundo acadêmico - O que fazer após a graduação? Além do mundo acadêmico - O que fazer após a graduação?
Além do mundo acadêmico - O que fazer após a graduação? Suellyn Specie
 
APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4
APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4
APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4Larissa Candido
 
Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...
Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...
Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...Felipe Perlino
 
Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!
Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!
Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!Modulo Security
 
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...Vinicius Jarina
 
Dicas de como pesquisar no Google
Dicas de como pesquisar no GoogleDicas de como pesquisar no Google
Dicas de como pesquisar no GoogleDaiana de Ávila
 

Destaque (17)

Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcps
 
Xamarin e Azure - Mobile e Cloud First
Xamarin e Azure - Mobile e Cloud FirstXamarin e Azure - Mobile e Cloud First
Xamarin e Azure - Mobile e Cloud First
 
Manga Port 20110829
Manga Port 20110829Manga Port 20110829
Manga Port 20110829
 
MIMO + Spotify
MIMO + SpotifyMIMO + Spotify
MIMO + Spotify
 
Portfólio D'Zuca Comunicação e Design
Portfólio D'Zuca Comunicação e DesignPortfólio D'Zuca Comunicação e Design
Portfólio D'Zuca Comunicação e Design
 
Trabalhos Variados F | Estúdio 196 Branding & Design
Trabalhos Variados F | Estúdio 196 Branding & DesignTrabalhos Variados F | Estúdio 196 Branding & Design
Trabalhos Variados F | Estúdio 196 Branding & Design
 
Websites
WebsitesWebsites
Websites
 
Ideias Todo Mundo Tem
Ideias Todo Mundo TemIdeias Todo Mundo Tem
Ideias Todo Mundo Tem
 
Desafios da tecnologia para escritórios contábeis
Desafios da tecnologia para escritórios contábeisDesafios da tecnologia para escritórios contábeis
Desafios da tecnologia para escritórios contábeis
 
Apresentação D1000 Institucional
Apresentação D1000 InstitucionalApresentação D1000 Institucional
Apresentação D1000 Institucional
 
Conta Azul: de Joinville a Silicon Valley
Conta Azul: de Joinville a Silicon ValleyConta Azul: de Joinville a Silicon Valley
Conta Azul: de Joinville a Silicon Valley
 
Além do mundo acadêmico - O que fazer após a graduação?
Além do mundo acadêmico - O que fazer após a graduação? Além do mundo acadêmico - O que fazer após a graduação?
Além do mundo acadêmico - O que fazer após a graduação?
 
APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4
APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4
APRESENTACAO - ITAÚ – FEITO PARA VOCÊ - LARISSA CANDIDO_v4
 
Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...
Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...
Não aguenta mais investir no Google? A solução pode estar no seu Suporte ao C...
 
Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!
Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!
Webinar: Centro de Gestão Integrada: Sua empresa ainda vai ter um!
 
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
 
Dicas de como pesquisar no Google
Dicas de como pesquisar no GoogleDicas de como pesquisar no Google
Dicas de como pesquisar no Google
 

Semelhante a Data Binding Android - Levi Saturnino

Data Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI AndroidData Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI AndroidVinícius Thiengo
 
Android DevConference - Data Binding: Código limpo, manutenção garantida
Android DevConference - Data Binding: Código limpo, manutenção garantidaAndroid DevConference - Data Binding: Código limpo, manutenção garantida
Android DevConference - Data Binding: Código limpo, manutenção garantidaiMasters
 
Android About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreAndroid About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreVinícius Thiengo
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com androidRicardo Ogliari
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Como Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State APIComo Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State APIVinícius Thiengo
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptxRicardo Ogliari
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcJeison Barros
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 

Semelhante a Data Binding Android - Levi Saturnino (20)

Acessando banco de dados remoto com android
Acessando banco de dados remoto com android Acessando banco de dados remoto com android
Acessando banco de dados remoto com android
 
Data Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI AndroidData Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI Android
 
Usando a data grid wpf
Usando a data grid wpfUsando a data grid wpf
Usando a data grid wpf
 
Android DevConference - Data Binding: Código limpo, manutenção garantida
Android DevConference - Data Binding: Código limpo, manutenção garantidaAndroid DevConference - Data Binding: Código limpo, manutenção garantida
Android DevConference - Data Binding: Código limpo, manutenção garantida
 
Android About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreAndroid About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela Sobre
 
Apostila Android
Apostila AndroidApostila Android
Apostila Android
 
Android Para Iniciantes
Android Para IniciantesAndroid Para Iniciantes
Android Para Iniciantes
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
 
Android + firebase
Android + firebaseAndroid + firebase
Android + firebase
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Como Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State APIComo Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State API
 
Hello World Android
Hello World AndroidHello World Android
Hello World Android
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptx
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Banco de Dados - Android
Banco de Dados - AndroidBanco de Dados - Android
Banco de Dados - Android
 

Data Binding Android - Levi Saturnino

  • 3. DATA BINDING Android - Levi Saturnino
  • 4. A API de DataBinding foi lançada no Google I/O de 2015 e tem o intuito de facilitar a vida dos desenvolvedores removendo da Activity/Fragment muita da lógica de UI feitas por esses componentes. Apesar de ter sido lançado juntamente com o Android 6, a API de Data Binding é uma biblioteca separada do sistema operacional e pode ser utilizada a partir do Android 2.1 (API Level 7).
  • 5.
  • 6. CONFIGURAÇÃO NO GRADLE Para configurar seu aplicativo para usar a ligação de dados, adicione o elemento dataBinding ao seu arquivo build.gradle no módulo de aplicação. Use o seguinte trecho de código para configurar a ligação de dados: android { .... dataBinding { enabled = true } }
  • 7. Três coisas que por si só já valem a utilização do Data Binding são: (1) não utilizar findViewById; (2) associação de eventos a componentes ; (3) sincronização de valores do model para a view.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Exemplo de parametros strings.xml No xml <string name="resource1">Hello string: %1$s, and hello float: %2$.2f.</string> No Java String svalue = "test"; float sfloat= 3.1415926; String sresult = getString(R.string.resource1, svalue, sfloat);
  • 22. Recursos Podemos acessar os recursos da aplicação normalmente. Se tivéssemos este texto no strings.xml <string name="nomeComSobrenome">%1$s %2$s</string> Poderiamos utilizar o recurso com o Data Binding da seguinte forma: android:text=”@{@string/nomeComSobrenome(usuario.nome,usuario.sobrenome)}” Todos os recursos podem ser acessados, mas alguns tem uma notação especial: @stringArray, @intArray, @animator, @color, @colorStateLis e @typedArray.
  • 23.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. Passo a Passo para implementação do Data Binding
  • 33. POJO USUARIO public class Usuario { public String nome; public String sobrenome; public Usuario(String nome, String sobrenome) { This.nome = nome; This.sobrenome = sobrenome; } }
  • 34. Outro exemplo com BaseObservable import android.databinding.BaseObservable; import android.databinding.ObservableField; public class Usuario extends BaseObservable { public ObservableField<String> nome = new ObservableField<>(); public ObservableField<String> sobrenome = new ObservableField<>(); public Usuario(String nome, String sobrenome) { this.nome.set(nome); this.sobrenome.set(sobrenome); } }
  • 35. Classe do Evento public class TratadorMagico { public boolean longClick(View v){ Log.d("Script", "longClick!"); return true; } public void click(View v){ Log.d("Script", "click!"); } }
  • 36. Layout XML - ROOT <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="usuario" type="dominando.android.databinding.Usuario" /> <variable name="tratador" type="dominando.android.databinding.TratadorMagico"/> </data>
  • 37. <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{usuario.nome +' '+ usuario.sobrenome}" android:onClick="@{tratador.click}" android:onLongClick="@{tratador.longClick}"/> <EditText android:id="@+id/edtNome" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/edtSobrenome" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> </layout>
  • 38. Classe do MAIN public class MainActivity extends AppCompatActivity { Usuario usuario; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); usuario = new Usuario("Levi", "Saturnino"); binding.setUsuario(usuario); binding.setTratador(new TratadorMagico()); }
  • 40. Referências Palestra sobre Data Binding no Android Dev Summit (em inglês) https://www.youtube.com/watch?v=NBbeQMOcnZ0 Hangout com o Neto Marin (Google Developer Advocate) https://www.youtube.com/watch?v=JWpn4yyIJxc Blog de Nelson Glauber http://www.nglauber.com.br/2016/05/android-data-binding.html Data Binding Guide (Documentação oficial) http://developer.android.com/intl/pt-br/tools/data-binding/guide.html