$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
An introduction to Android development
Search
Eugene Oskin
January 20, 2018
Programming
0
81
An introduction to Android development
Eugene Oskin
January 20, 2018
Tweet
Share
More Decks by Eugene Oskin
See All by Eugene Oskin
REST API. Django, Ruby on Rails, Play! Framework
evgeneoskin
0
90
Introduction to gRPC
evgeneoskin
0
98
GrailInventory – Advanced Backend Development
evgeneoskin
0
37
Bracing Calculator
evgeneoskin
1
68
emotional intelligence, part 2
evgeneoskin
0
39
Office temperature
evgeneoskin
0
35
Parse platform
evgeneoskin
0
100
Hubot
evgeneoskin
0
52
An introduction to iOS development
evgeneoskin
0
43
Other Decks in Programming
See All in Programming
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.4k
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.3k
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
340
AWS CDKの推しポイントN選
akihisaikeda
1
240
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
350
Your Architecture as a Crime Scene?Forensic Analysis
manfredsteyer
PRO
0
100
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
420
chocoZAPサービス予約システムをNuxtで内製化した話
rizap_tech
0
140
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
790
Developing static sites with Ruby
okuramasafumi
0
300
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
11
11k
認証・認可の基本を学ぼう前編
kouyuume
0
250
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Building Adaptive Systems
keathley
44
2.9k
We Have a Design System, Now What?
morganepeng
54
7.9k
Why Our Code Smells
bkeepers
PRO
340
57k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Visualization
eitanlees
150
16k
KATA
mclloyd
PRO
33
15k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
A Modern Web Designer's Workflow
chriscoyier
698
190k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
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