Slide 1

Slide 1 text

What to expect when you're expecting to write an Android app Dan Lew @danlew42

Slide 2

Slide 2 text

• 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

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Tools

Slide 6

Slide 6 text

Google Nexus

Slide 7

Slide 7 text

Android Studio

Slide 8

Slide 8 text

USB Cable

Slide 9

Slide 9 text

Becoming a Developer

Slide 10

Slide 10 text

Concepts

Slide 11

Slide 11 text

Concepts • Context • Lifecycles • Intents • Permissions • Configuration

Slide 12

Slide 12 text

Components • Activities • Services • Broadcast Receivers • Content Providers

Slide 13

Slide 13 text

Activity • Views • ViewGroups • findViewById()

Slide 14

Slide 14 text

Structure

Slide 15

Slide 15 text

Manifest Your app’s API

Slide 16

Slide 16 text

Java All your code

Slide 17

Slide 17 text

Resources Layouts, images, values, configuration, etc…

Slide 18

Slide 18 text

Gradle Build configuration

Slide 19

Slide 19 text

Important Libraries

Slide 20

Slide 20 text

Google Support Libraries • Backwards-compatible implementations • AppCompat • New features

Slide 21

Slide 21 text

Google Play Services / Firebase • (Mostly) free Google services • Ties you to Google-approved devices

Slide 22

Slide 22 text

Networking • Most apps require internet • HTTP: OkHttp • REST: Retrofit

Slide 23

Slide 23 text

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%

Slide 24

Slide 24 text

Catching Mistakes • Android Lint • StrictMode

Slide 25

Slide 25 text

First Release Checklist • Some things can (or should) never change… • Package name • Signing certificate • Manifest API • Crash logger • Publishing Google account

Slide 26

Slide 26 text

Education

Slide 27

Slide 27 text

Java • The Internet • Head First Design Patterns • Effective Java

Slide 28

Slide 28 text

Android • The Internet • Android documentation • The Busy Coder's Guide to Android Development

Slide 29

Slide 29 text

Training • Android @ Udacity • Google Study Jams • Paid training

Slide 30

Slide 30 text

Open Source • AOSP: https://source.android.com/ • u2020: https://github.com/JakeWharton/u2020 • iosched: https://github.com/google/iosched • …And much, much more!

Slide 31

Slide 31 text

Questions? @danlew42 Slides: https://goo.gl/UWDwjv