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
An introduction to Android development
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Eugene Oskin
January 20, 2018
Programming
82
0
Share
An introduction to Android development
Eugene Oskin
January 20, 2018
More Decks by Eugene Oskin
See All by Eugene Oskin
REST API. Django, Ruby on Rails, Play! Framework
evgeneoskin
0
94
Introduction to gRPC
evgeneoskin
0
100
GrailInventory – Advanced Backend Development
evgeneoskin
0
41
Bracing Calculator
evgeneoskin
1
70
emotional intelligence, part 2
evgeneoskin
0
43
Office temperature
evgeneoskin
0
39
Parse platform
evgeneoskin
0
100
Hubot
evgeneoskin
0
55
An introduction to iOS development
evgeneoskin
0
44
Other Decks in Programming
See All in Programming
PHPer、Cloudflare に引っ越す
suguruooki
1
110
How Swift's Type System Guides AI Agents
koher
0
310
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
320
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
130
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
690
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.5k
ハーネスエンジニアリングとは?
kinopeee
13
6.3k
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
Back to the roots of date
jinroq
0
520
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
820
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
190
NakouPAY説明用
annouim0
0
270
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
Code Review Best Practice
trishagee
74
20k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
730
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
The Cult of Friendly URLs
andyhume
79
6.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
210
HDC tutorial
michielstock
2
640
Transcript
An introduction to Android development
Why I do this?
Deep dive into Android
• Activity • Fragments • Views • *Listener Vocabulary •
Adapters • DAO • Providers • Service
ToolKit
None
App Architecture • MVC: ◦ Activity, Fragments ◦ DAO, Providers
◦ Adapters, Views
App Architecture • MVC: ◦ Activity, Fragments ◦ DAO, Providers
◦ Adapters, Views • Cursor • Service
Pitfalls
Pitfalls • Emulator • findViewById hell • Huge Activity •
Android specific SDK
• Use Real device • Speed up your emulator (Intel
HAXM) • Use an alternative Emulator
findViewById hell • Use Kotlin Android Extensions • Use Dependency
Injection like butterknife or dagger
Huge Activity • Decompose it! • Use RxJava/RxAndroid • Use
Kotlin
RxJava/RxKotlin/RxAndroid getObservable() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe { s -> data.add(s) adapter.notifyDataSetChanged()
}
RxJava/RxAndroid • Why? ◦ Use high level API to run
asynchronous code. • How? ◦ Add custom observers and use Rx operators • When? ◦ Until it's too late. But not too soon.
Android specific SDK • Keep Calm and work with it
• Use Guava • Use Kotlin
Advices • Make it simple – Android is not a
Java EE! • Use linters and tests – Automate! • Later use Platform Architecture Components
Platform Architecture Components • LifeCycle – Handling Lifecycles with Lifecycle-Aware
Components • Room – ORM • LiveData – like Rx • Paging – to build paged lists with Room
Summary
None
References • Butterknife • Dagger • Guava • Platform Architecture
Components • RxAndroid