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
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
89
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
34
Parse platform
evgeneoskin
0
100
Hubot
evgeneoskin
0
51
An introduction to iOS development
evgeneoskin
0
43
Other Decks in Programming
See All in Programming
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
400
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
260
Catch Up: Go Style Guide Update
andpad
0
230
チームの境界をブチ抜いていけ
tokai235
0
180
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
130
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
830
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
950
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
570
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3.4k
Introduce Hono CLI
yusukebe
5
2.1k
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
200
Featured
See All Featured
Side Projects
sachag
455
43k
Writing Fast Ruby
sferik
629
62k
Statistics for Hackers
jakevdp
799
220k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
870
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
GitHub's CSS Performance
jonrohan
1032
470k
Done Done
chrislema
185
16k
Building Applications with DynamoDB
mza
96
6.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Visualization
eitanlees
149
16k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
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