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
What to expect when you're expecting to write a...
Search
Daniel Lew
August 02, 2016
Programming
2
430
What to expect when you're expecting to write an Android app
An introduction to writing Android apps, given at a local GDG meetup.
Daniel Lew
August 02, 2016
Tweet
Share
More Decks by Daniel Lew
See All by Daniel Lew
How to Use Computers (Privately!)
dlew
0
36
Finding Meaningful, Mission-Driven Work
dlew
0
140
Things Maybe You Don't Know as a Newer Developer
dlew
1
110
Maintaining Software Correctness
dlew
4
990
Grokking Coroutines (MinneBar)
dlew
5
620
ClimateChangeTech.pdf
dlew
0
130
What Tech Can Do About Climate Change
dlew
0
610
Grokking Coroutines
dlew
5
1.2k
Automated Tests Aren't Enough
dlew
0
500
Other Decks in Programming
See All in Programming
🔨 小さなビルドシステムを作る
momeemt
3
630
testingを眺める
matumoto
1
130
AIレビュアーをスケールさせるには / Scaling AI Reviewers
technuma
2
240
rage against annotate_predecessor
junk0612
0
150
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
180
tool ディレクティブを導入してみた感想
sgash708
1
160
Updates on MLS on Ruby (and maybe more)
sylph01
1
170
奥深くて厄介な「改行」と仲良くなる20分
oguemon
0
170
複雑なドメインに挑む.pdf
yukisakai1225
4
890
AHC051解法紹介
eijirou
0
640
CSC305 Summer Lecture 12
javiergs
PRO
0
130
オープンセミナー2025@広島「君はどこで動かすか?」アンケート結果
satoshi256kbyte
0
230
Featured
See All Featured
A Tale of Four Properties
chriscoyier
160
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Designing Experiences People Love
moore
142
24k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Practical Orchestrator
shlominoach
190
11k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Rails Girls Zürich Keynote
gr2m
95
14k
How GitHub (no longer) Works
holman
315
140k
Transcript
What to expect when you're expecting to write an Android
app Dan Lew @danlew42
• Android Studio • apt • adb • Calligraphy •
ButterKnife • dex • dexmaker • Retrolambda • OkHttp • Phrase • Picasso • Genymotion • Dagger • RxJava • RxAndroid • RxBinding • RxLifecycle • RxRelay • RxLint • Support library • Design support library • Palette • CardView • RecyclerVie w • Test support library • App compat • LeakCanary • Otto • EventBus • Gson • Stethp • SqlBrite • SqlDelight • Retrofit • Tape • Timber • Navi • OrmLite • Process Phoenix • Google Play Services • Firebase • RoundedIma geView • Subsamplin g Scaling ImageView • Victor • joda-time • joda-time- android • auto-value • auto-value- gson • auto-value- parcelable • android-apt • Apache commons • BetterPicker s • Crashlytics • gradle- versions- plugin • Hugo • Quantcast • Mockito • Sticky List Headers • Error Prone • Hierarchy Viewer • systrace • Gradle • Logcat • Pro guard
None
None
Tools
Google Nexus
Android Studio
USB Cable
Becoming a Developer
Concepts
Concepts • Context • Lifecycles • Intents • Permissions •
Configuration
Components • Activities • Services • Broadcast Receivers • Content
Providers
Activity • Views • ViewGroups • findViewById()
Structure
Manifest Your app’s API
Java All your code
Resources Layouts, images, values, configuration, etc…
Gradle Build configuration
Important Libraries
Google Support Libraries • Backwards-compatible implementations • AppCompat • New
features
Google Play Services / Firebase • (Mostly) free Google services
• Ties you to Google-approved devices
Networking • Most apps require internet • HTTP: OkHttp •
REST: Retrofit
Rookie Mistakes • Developing for a single screen size •
Mishandling configuration changes • Using implicit intents • Blocking the main thread • Overstuffing Activity • Forgetting internet permission • Following Google 100%
Catching Mistakes • Android Lint • StrictMode
First Release Checklist • Some things can (or should) never
change… • Package name • Signing certificate • Manifest API • Crash logger • Publishing Google account
Education
Java • The Internet • Head First Design Patterns •
Effective Java
Android • The Internet • Android documentation • The Busy
Coder's Guide to Android Development
Training • Android @ Udacity • Google Study Jams •
Paid training
Open Source • AOSP: https://source.android.com/ • u2020: https://github.com/JakeWharton/u2020 • iosched:
https://github.com/google/iosched • …And much, much more!
Questions? @danlew42 Slides: https://goo.gl/UWDwjv