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
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
99
GrailInventory – Advanced Backend Development
evgeneoskin
0
40
Bracing Calculator
evgeneoskin
1
70
emotional intelligence, part 2
evgeneoskin
0
42
Office temperature
evgeneoskin
0
38
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
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
2
150
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
530
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
220
へんな働き方
yusukebe
6
2.9k
ファインチューニングせずメインコンペを解く方法
pokutuna
0
270
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.7k
How Swift's Type System Guides AI Agents
koher
0
140
PDI: Como Alavancar Sua Carreira e Seu Negócio
marcelgsantos
0
100
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
340
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
210
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
440
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
What's in a price? How to price your products and services
michaelherold
247
13k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
96
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Six Lessons from altMBA
skipperchong
29
4.2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
480
Side Projects
sachag
455
43k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
150
Navigating Weather and Climate Data
rabernat
0
160
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
300
A Modern Web Designer's Workflow
chriscoyier
698
190k
Optimizing for Happiness
mojombo
378
71k
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