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
80
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
88
Introduction to gRPC
evgeneoskin
0
97
GrailInventory – Advanced Backend Development
evgeneoskin
0
36
Bracing Calculator
evgeneoskin
1
67
emotional intelligence, part 2
evgeneoskin
0
38
Office temperature
evgeneoskin
0
33
Parse platform
evgeneoskin
0
100
Hubot
evgeneoskin
0
50
An introduction to iOS development
evgeneoskin
0
42
Other Decks in Programming
See All in Programming
ProxyによるWindow間RPC機構の構築
syumai
3
1k
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
230
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
380
Ruby Parser progress report 2025
yui_knk
1
300
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.9k
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
250
Testing Trophyは叫ばない
toms74209200
0
720
速いWebフレームワークを作る
yusukebe
5
1.7k
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
110
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
280
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.3k
More Approvers for Greater OSS and Japan Community
tkikuc
1
110
Featured
See All Featured
Faster Mobile Websites
deanohume
309
31k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
A better future with KSS
kneath
239
17k
Designing for humans not robots
tammielis
253
25k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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