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
23
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
CSC307 Lecture 04
javiergs
PRO
0
660
並行開発のためのコードレビュー
miyukiw
0
1.1k
AI時代の認知負荷との向き合い方
optfit
0
160
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
650
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
660
Apache Iceberg V3 and migration to V3
tomtanaka
0
170
MUSUBIXとは
nahisaho
0
140
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
CSC307 Lecture 01
javiergs
PRO
0
690
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
140
Fluid Templating in TYPO3 14
s2b
0
130
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Exploring anti-patterns in Rails
aemeredith
2
250
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
BBQ
matthewcrist
89
10k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
150
WCS-LA-2024
lcolladotor
0
450
Code Review Best Practice
trishagee
74
20k
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