Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
What to expect when you're expecting to write a...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Daniel Lew
August 02, 2016
Programming
510
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Daniel Lew
See All by Daniel Lew
What the fuck are passkeys and why are they everywhere now?
dlew
1
84
How to Use Computers (Privately!)
dlew
0
130
Finding Meaningful, Mission-Driven Work
dlew
0
230
Things Maybe You Don't Know as a Newer Developer
dlew
1
170
Maintaining Software Correctness
dlew
4
1.1k
Grokking Coroutines (MinneBar)
dlew
5
740
ClimateChangeTech.pdf
dlew
0
190
What Tech Can Do About Climate Change
dlew
0
720
Grokking Coroutines
dlew
5
1.4k
Other Decks in Programming
See All in Programming
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
730
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
LLM 101
dalinaum
0
470
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
3.5k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
290
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
410
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
260
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.7k
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
WENDY [Excerpt]
tessaabrams
14
40k
Test your architecture with Archunit
thirion
2
2.5k
Odyssey Design
rkendrick25
PRO
2
930
How to build a perfect <img>
jonoalderson
1
6.2k
New Earth Scene 8
popppiees
4
2.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
350
RailsConf 2023
tenderlove
30
1.6k
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