Submit Search
Upload
Android Databinding Library
•
3 likes
•
1,114 views
Takuji Nishibayashi
Follow
Android Databinding Library in Kan-moba #5
Read less
Read more
Technology
Report
Share
Report
Share
1 of 36
Download now
Download to read offline
Recommended
Deep dive into Android Data Binding
Deep dive into Android Data Binding
Radek Piekarz
Android data binding
Android data binding
Sergi Martínez
Android Data Binding in action using MVVM pattern - droidconUK
Android Data Binding in action using MVVM pattern - droidconUK
Fabio Collini
Data binding
Data binding
Yonatan Levin
Dominando o Data Binding no Android
Dominando o Data Binding no Android
Nelson Glauber Leal
Testable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVM
Fabio Collini
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
Ahmed Emad
MVVM & Data Binding Library
MVVM & Data Binding Library
10Clouds
Recommended
Deep dive into Android Data Binding
Deep dive into Android Data Binding
Radek Piekarz
Android data binding
Android data binding
Sergi Martínez
Android Data Binding in action using MVVM pattern - droidconUK
Android Data Binding in action using MVVM pattern - droidconUK
Fabio Collini
Data binding
Data binding
Yonatan Levin
Dominando o Data Binding no Android
Dominando o Data Binding no Android
Nelson Glauber Leal
Testable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVM
Fabio Collini
MVVM ( Model View ViewModel )
MVVM ( Model View ViewModel )
Ahmed Emad
MVVM & Data Binding Library
MVVM & Data Binding Library
10Clouds
Android Data Binding
Android Data Binding
Ezequiel Zanetta
Hockey Kit for Android
Hockey Kit for Android
旭辰 羅
Android MVVM
Android MVVM
David Estivariz Pierola
Memory Leaks in Android Applications
Memory Leaks in Android Applications
Lokesh Ponnada
FFmpeg presentation
FFmpeg presentation
Lauren Sorensen
Android 介面設計
Android 介面設計
PingLun Liao
FFMPEG on android
FFMPEG on android
Yoss Cohen
World-Class Testing Development Pipeline for Android
World-Class Testing Development Pipeline for Android
Pedro Vicente Gómez Sánchez
OpenGL ES Presentation
OpenGL ES Presentation
Eric Cheng
A Separation of Concerns: Clean Architecture on Android
A Separation of Concerns: Clean Architecture on Android
Outware Mobile
Android Layout模組化介紹
Android Layout模組化介紹
Chris Jeng
Data Binding in Action using MVVM pattern
Data Binding in Action using MVVM pattern
Fabio Collini
OpenGLES - Graphics Programming in Android
OpenGLES - Graphics Programming in Android
Arvind Devaraj
Is Activity God? ~ The MVP Architecture ~
Is Activity God? ~ The MVP Architecture ~
Ken William
Android Thread
Android Thread
Charile Tsai
Google Map Android API V2 setup guide
Google Map Android API V2 setup guide
CAVEDU Education
大鱼架构演进
大鱼架构演进
Jun Liu
"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин
Fwdays
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
力中 柯
Android Clean Architecture for Dummies
Android Clean Architecture for Dummies
Kengo Suzuki
Rags to Open Source - AllThingsOpen, Raleigh, NC 2014
Rags to Open Source - AllThingsOpen, Raleigh, NC 2014
Mike McNeil
Sails.js: Rags to...Open Source
Sails.js: Rags to...Open Source
All Things Open
More Related Content
Viewers also liked
Android Data Binding
Android Data Binding
Ezequiel Zanetta
Hockey Kit for Android
Hockey Kit for Android
旭辰 羅
Android MVVM
Android MVVM
David Estivariz Pierola
Memory Leaks in Android Applications
Memory Leaks in Android Applications
Lokesh Ponnada
FFmpeg presentation
FFmpeg presentation
Lauren Sorensen
Android 介面設計
Android 介面設計
PingLun Liao
FFMPEG on android
FFMPEG on android
Yoss Cohen
World-Class Testing Development Pipeline for Android
World-Class Testing Development Pipeline for Android
Pedro Vicente Gómez Sánchez
OpenGL ES Presentation
OpenGL ES Presentation
Eric Cheng
A Separation of Concerns: Clean Architecture on Android
A Separation of Concerns: Clean Architecture on Android
Outware Mobile
Android Layout模組化介紹
Android Layout模組化介紹
Chris Jeng
Data Binding in Action using MVVM pattern
Data Binding in Action using MVVM pattern
Fabio Collini
OpenGLES - Graphics Programming in Android
OpenGLES - Graphics Programming in Android
Arvind Devaraj
Is Activity God? ~ The MVP Architecture ~
Is Activity God? ~ The MVP Architecture ~
Ken William
Android Thread
Android Thread
Charile Tsai
Google Map Android API V2 setup guide
Google Map Android API V2 setup guide
CAVEDU Education
大鱼架构演进
大鱼架构演进
Jun Liu
"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин
Fwdays
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
力中 柯
Android Clean Architecture for Dummies
Android Clean Architecture for Dummies
Kengo Suzuki
Viewers also liked
(20)
Android Data Binding
Android Data Binding
Hockey Kit for Android
Hockey Kit for Android
Android MVVM
Android MVVM
Memory Leaks in Android Applications
Memory Leaks in Android Applications
FFmpeg presentation
FFmpeg presentation
Android 介面設計
Android 介面設計
FFMPEG on android
FFMPEG on android
World-Class Testing Development Pipeline for Android
World-Class Testing Development Pipeline for Android
OpenGL ES Presentation
OpenGL ES Presentation
A Separation of Concerns: Clean Architecture on Android
A Separation of Concerns: Clean Architecture on Android
Android Layout模組化介紹
Android Layout模組化介紹
Data Binding in Action using MVVM pattern
Data Binding in Action using MVVM pattern
OpenGLES - Graphics Programming in Android
OpenGLES - Graphics Programming in Android
Is Activity God? ~ The MVP Architecture ~
Is Activity God? ~ The MVP Architecture ~
Android Thread
Android Thread
Google Map Android API V2 setup guide
Google Map Android API V2 setup guide
大鱼架构演进
大鱼架构演进
"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
Android Clean Architecture for Dummies
Android Clean Architecture for Dummies
Similar to Android Databinding Library
Rags to Open Source - AllThingsOpen, Raleigh, NC 2014
Rags to Open Source - AllThingsOpen, Raleigh, NC 2014
Mike McNeil
Sails.js: Rags to...Open Source
Sails.js: Rags to...Open Source
All Things Open
Phonegap for Engineers
Phonegap for Engineers
Brian LeRoux
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic Framework
Bramus Van Damme
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
Enough Software
Economies of Scaling Software
Economies of Scaling Software
Joshua Long
Mobile native-hacks
Mobile native-hacks
DevelopmentArc LLC
MongoDB In Production At Sailthru
MongoDB In Production At Sailthru
ibwhite
GOTO Paris | @see Gopher
GOTO Paris | @see Gopher
Jan Klat
Cross Game Dev with Corona
Cross Game Dev with Corona
Shawn Grimes
Perfecting Your Streaming Skills with Spark and Real World IoT Data
Perfecting Your Streaming Skills with Spark and Real World IoT Data
Adaryl "Bob" Wakefield, MBA
Couchdb Nosql
Couchdb Nosql
elliando dias
Design for scale
Design for scale
Doug Lampe
Android Bazaar and Conference 2011 Winter
Android Bazaar and Conference 2011 Winter
gree_tech
Kendo UI - Mikita Manko at Mobile Optimized
Kendo UI - Mikita Manko at Mobile Optimized
Mikita Manko
Data Tactics Analytics Brown Bag (November 2013)
Data Tactics Analytics Brown Bag (November 2013)
Rich Heimann
Saas rad with django, django rest framework
Saas rad with django, django rest framework
Marco Montanari
PykQuery.js
PykQuery.js
Ritvvij Parrikh
Components vs Frameworks
Components vs Frameworks
Timothy Oxley
Ruby Kaigi 2008 LT
Ruby Kaigi 2008 LT
Motohiro Takayama
Similar to Android Databinding Library
(20)
Rags to Open Source - AllThingsOpen, Raleigh, NC 2014
Rags to Open Source - AllThingsOpen, Raleigh, NC 2014
Sails.js: Rags to...Open Source
Sails.js: Rags to...Open Source
Phonegap for Engineers
Phonegap for Engineers
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic Framework
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
Economies of Scaling Software
Economies of Scaling Software
Mobile native-hacks
Mobile native-hacks
MongoDB In Production At Sailthru
MongoDB In Production At Sailthru
GOTO Paris | @see Gopher
GOTO Paris | @see Gopher
Cross Game Dev with Corona
Cross Game Dev with Corona
Perfecting Your Streaming Skills with Spark and Real World IoT Data
Perfecting Your Streaming Skills with Spark and Real World IoT Data
Couchdb Nosql
Couchdb Nosql
Design for scale
Design for scale
Android Bazaar and Conference 2011 Winter
Android Bazaar and Conference 2011 Winter
Kendo UI - Mikita Manko at Mobile Optimized
Kendo UI - Mikita Manko at Mobile Optimized
Data Tactics Analytics Brown Bag (November 2013)
Data Tactics Analytics Brown Bag (November 2013)
Saas rad with django, django rest framework
Saas rad with django, django rest framework
PykQuery.js
PykQuery.js
Components vs Frameworks
Components vs Frameworks
Ruby Kaigi 2008 LT
Ruby Kaigi 2008 LT
Recently uploaded
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
MarianaLemus7
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
jimielynbastida
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Safe Software
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
BookNet Canada
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
costume and set research powerpoint presentation
costume and set research powerpoint presentation
phoebematthew05
Recently uploaded
(20)
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
costume and set research powerpoint presentation
costume and set research powerpoint presentation
Android Databinding Library
1.
Android'Data'Binding'Library Takuji'Nishibayashi
2.
About&me • Takuji(Nishibayashi • @takuji31 •
Fenrir(Inc. • Nintendo(Network(ID(available!!! • Udemae:(BD(/(Rank:(20
3.
About&me • Android(engineer((2010/02~) • Loves(Kotlin •
Interest(RoboVM
4.
Data$Binding
5.
android'binding
6.
Not$ac've$!
7.
RoboBinding
8.
Not$work$with$AppCompat$!
9.
RxBinding
10.
Not$tested...
11.
One$way(only
12.
Code%only
13.
Xamarin'+'MvvmCross'/'Forms'etc.
14.
Cool
15.
Cross%pla)orm%!!!
16.
but$..
17.
Too#expensive#for#private# development
18.
DIY!
19.
Next%day
20.
Google&I/O&2015
21.
Android'Data'Binding'Library
22.
!
23.
Usage
24.
build.gradle buildscript { repositories { jcenter() } dependencies
{ classpath "com.android.tools.build:gradle:1.3.0-beta1" classpath "com.android.databinding:dataBinder:1.0-rc1" } }
25.
build.gradle apply plugin: 'com.android.application' apply
plugin: 'com.android.databinding'
26.
View%model public class ViewModel
extends BaseObservable { @Bindable public String getFirstName() {} @Bindable public String getLastName() {} @Bindable public OffsetDateTime getLastUpdated() {} public void setFirstName(String firstName) { this.firstName = firstName; notifyPropertyChanged(BR.firstName); } public void setLastName(String lastName) { this.lastName = lastName; notifyPropertyChanged(BR.lastName); } public void setLastUpdated(OffsetDateTime lastUpdated) { this.lastUpdated = lastUpdated; notifyPropertyChanged(BR.lastUpdated); } }
27.
Converter public class Converters
{ @BindingConversion public static String convertOffsetDateTime(OffsetDateTime dateTime) { return dateTime != null ? dateTime.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME) : ""; } private Converters() {} }
28.
Layout'XML <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <data> <variable name="viewModel"
type="jp.takuji31.databindingexample.ViewModel" /> </data> <!-- ... --> <TextView android:text="@{viewModel.firstName + ' ' + viewModel.lastName}" /> <TextView android:text="@{viewModel.lastUpdated}" /> <!-- ... --> </layout>
29.
Ac#vity //onCreate ActivityMainBinding binding =
DataBindingUtil.setContentView(this, R.layout.activity_main); binding.setViewModel(viewModel); binding.firstNameEditText.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { viewModel.setFirstName(s.toString()); } }); binding.lastNameEditText.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { viewModel.setLastName(s.toString()); } }); binding.submitButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { viewModel.setLastUpdated(OffsetDateTime.now()); } });
30.
Run
31.
Good • Auto&data&binding&more&less&codes • Support&most&Android&version&(2.1~) •
Binding&adapter • Converter
32.
Good • Expression+support • No+more+findViewById! •
No+more+ViewHolder!
33.
Bad • One%way%binding%only! • Supported%future? •
Unstable%support%(Android%Studio) • development%in%progress • Cannot%use%Kotlin%(Kotlin%M11%used%internally)
34.
Example
35.
github.com/takuji31/databinding3 example
36.
Thank&you!
Download now