Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GDG Münster 2nd Meetup: Vorstellung GDG Münster...
Search
André Roß
October 12, 2017
Programming
0
22
GDG Münster 2nd Meetup: Vorstellung GDG Münster + Android Databinding
André Roß
October 12, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
2.8k
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
120
Laravel Boost 超入門
fire_arlo
3
220
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
250
🔨 小さなビルドシステムを作る
momeemt
4
690
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
0
480
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
130
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.9k
Rancher と Terraform
fufuhu
2
550
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
It's Worth the Effort
3n
187
28k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Context Engineering - Making Every Token Count
addyosmani
3
60
GitHub's CSS Performance
jonrohan
1032
460k
Bash Introduction
62gerente
615
210k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Being A Developer After 40
akosma
90
590k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
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