Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GDG Münster 2nd Meetup: Vorstellung GDG Münster...
Search
André Roß
October 12, 2017
Programming
28
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GDG Münster 2nd Meetup: Vorstellung GDG Münster + Android Databinding
André Roß
October 12, 2017
Other Decks in Programming
See All in Programming
Railsバージョンを4倍にした話
optim
0
350
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
150
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
410
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
180
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
450
The Rails Doctrine Decade
koic
2
590
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
sbt 2.0: takeoff
eed3si9n
0
160
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
How to build a perfect <img>
jonoalderson
1
6.1k
Making the Leap to Tech Lead
cromwellryan
135
10k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Side Projects
sachag
456
43k
GitHub's CSS Performance
jonrohan
1033
470k
Un-Boring Meetings
codingconduct
0
460
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
How to Talk to Developers About Accessibility
jct
2
580
Ruling the World: When Life Gets Gamed
codingconduct
0
400
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
GDG Münster 2nd Meetup, 12. Oktober 2017
Was ist die GDG? • Google Developer Group • Unabhängig
• Offen • Community-driven (Themen: Google, Web, Android / iOS, Cloud,…) • Unterstützung von Google • Regelmäßige Meetups
GDG Münster • Seit 2017 • Organizer: Steffen Wellner, André
Roß • Google: google.com/+GDGMünster • Meetup: meetup.com/GDG-Munster
Talks heute 1. Databinding in Android (André Roß) 2. Android
Things (Wolfram Rittmeyer)
Databinding in Android
Was ist Databinding? Verknüpfung zwischen Model und View Model One-Way
Binding Two-Way Binding View Model View
Exkurs Android • Activity: eine Bildschirmseite in der App •
Fragment: Teil einer Activity ShoppingFragment : Fragment FrontpageFragment: (Child-) Fragment MainActivity: Activity
Exkurs Android • Layout: In XML deklariert: ◦ ViewGroups (Container),
z.B. LinearLayout, FrameLayout, RelativeLayout ◦Spezifische Views: TextView, EditText, ImageView
Motivation Member pro View Element findViewById() Unschöner Cast
Motivation Daten setzen z.T. sehr unschön und nicht unit-testbar
Databinding – Getting started • Mit Android Marshmallow released •
Als Support Library ab SDK Level 7 verfügbar (Android 2.1) android { .... dataBinding { enabled = true } }
Databinding - Schritt 1 <layout> tag im xml als root
=> Autogeneriertes Binding Objekt (Views als Member)
Autogeneriertes Binding Object - Ein statt mehrerer View Member -
Kein lästiges findViewById() mehr Spezifische Views in Binding autogeneriert - Kein Cast mehr Daten setzen noch sehr unschön
Databinding - Schritt 2 •<data> tag im Layout setzen •Daten
setzen auf Binding Objekt
Databinding - Schritt 2 Zugriff auf das Model im Layout
mit Binding Expression @{…} Zu viel Logik im Layout! • schwierig zu debuggen • Nicht testbar mit Unit-Test
Databinding in Android - Schritt 3 Einführung von ViewModels
Zugriff auf ViewModel in xml Display Logik in ViewModel
None
Databinding - Schritt 3 •Custom Binding Adapter
Weitere Features •Null Safety •Null Coalascing Operator •Custom Binding Conversions
•Observable Objects •Observable Fields •Two-Way-Binding
Fazit •Weniger Boilerplate Code (View member, findViewById) •‘Bequemere’ Verknüpfung zwischen
Model und View •Vorsicht, nicht zuviel Logik ins Layout (nicht testbar, nicht debuggable) •Display Logik ins ViewModel
Beispiel aus der Praxis • Custom Binding Adapter für ImageView
mit ProgressBar
Layout Binding Adapter
ImageLoadedCallback
Links Github Sample Project https://github.com/AndreRoss/databinding_sample Android Developer Documentation https://developer.android.com/topic/libraries/data-binding/index.html Fragmented
Podcast Episode 057: Data Binding with GDE Lisa Wray http://fragmentedpodcast.com/2016/09/
Vielen Dank für die Aufmerksamkeit! André Roß
[email protected]
https://www.xing.com/profile/Andre_Ross5