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
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
440
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
290
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4.9k
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
180
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
180
AtCoder Conference 2025
shindannin
0
900
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
310
SQL Server 2025 LT
odashinsuke
0
120
GoLab2025 Recap
kuro_kurorrr
0
810
Python札幌 LT資料
t3tra
7
1.1k
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
460
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
527
40k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
730
Product Roadmaps are Hard
iamctodd
PRO
55
12k
WENDY [Excerpt]
tessaabrams
9
35k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Cult of Friendly URLs
andyhume
79
6.7k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
180
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
WCS-LA-2024
lcolladotor
0
400
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
140
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
27
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
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