$30 off During Our Annual Pro Sale. View Details »

What to expect when you're expecting to write an Android app

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

More Decks by Daniel Lew

Other Decks in Programming

Transcript

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

    View Slide

  2. • 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

    View Slide

  3. View Slide

  4. View Slide

  5. Tools

    View Slide

  6. Google Nexus

    View Slide

  7. Android Studio

    View Slide

  8. USB Cable

    View Slide

  9. Becoming a Developer

    View Slide

  10. Concepts

    View Slide

  11. Concepts
    • Context
    • Lifecycles
    • Intents
    • Permissions
    • Configuration

    View Slide

  12. Components
    • Activities
    • Services
    • Broadcast Receivers
    • Content Providers

    View Slide

  13. Activity
    • Views
    • ViewGroups
    • findViewById()

    View Slide

  14. Structure

    View Slide

  15. Manifest
    Your app’s API

    View Slide

  16. Java
    All your code

    View Slide

  17. Resources
    Layouts, images, values,
    configuration, etc…

    View Slide

  18. Gradle
    Build configuration

    View Slide

  19. Important Libraries

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. 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%

    View Slide

  24. Catching Mistakes
    • Android Lint
    • StrictMode

    View Slide

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

    View Slide

  26. Education

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide