Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Complexity (360 AnDev 2020)

Android Complexity (360 AnDev 2020)

Android development can often feel overwhelming – there’s so, so many things to take care of around a single app. Here’s a brief look at all the things* that an Android developer would have to consider, do, and test for in order to create the theoretically perfect application, to serve as a practical checklist for starting your next Android project.

*definitely still not all the things

Marton Braun

July 24, 2020
Tweet

More Decks by Marton Braun

Other Decks in Technology

Transcript

  1. Android Complexity
    Márton Braun zsmb.co zsmb13

    View Slide

  2. View Slide

  3. Existing product
    Improve and polish
    New project
    Plan and estimate

    View Slide

  4. UX

    View Slide

  5. UX
    Accessibility (a11y)

    View Slide

  6. UX
    Accessibility (a11y)

    View Slide

  7. UX
    Internationalization (i18n)
    Start of week
    Date formats
    String resources
    Right to left

    View Slide

  8. UX
    Internationalization (i18n)


    %d song found.
    %d songs found.


    View Slide

  9. UX
    Internationalization (i18n)


    %d song found.
    %d songs found.


    View Slide

  10. UX
    Internationalization (i18n)

    View Slide

  11. UX
    Animation

    View Slide

  12. UX
    Animation

    View Slide

  13. UX
    Animation

    View Slide

  14. UX
    Animation

    View Slide

  15. UX
    Animation

    View Slide

  16. UX
    Dark theme

    View Slide

  17. UX
    Dark theme

    View Slide

  18. Platform

    View Slide

  19. Platform
    Restoration
    Configuration changes Process death
    Orientation
    Dark mode
    Language
    Font size

    View Slide

  20. Platform
    Screens

    View Slide

  21. Platform
    Screens

    View Slide

  22. Platform
    Screens

    View Slide

  23. Platform
    Screen settings

    View Slide

  24. Platform
    Screen settings

    View Slide

  25. Platform
    Screen settings

    View Slide

  26. Platform
    App shortcuts

    View Slide

  27. Platform
    Notifications

    View Slide

  28. Platform
    Notifications

    View Slide

  29. Platform
    Notifications

    View Slide

  30. Platform
    Non-phones

    View Slide

  31. Platform
    Non-phones

    View Slide

  32. Platform
    Inputs

    View Slide

  33. QA

    View Slide

  34. QA
    Static analysis

    View Slide

  35. QA
    Unit tests

    View Slide

  36. QA
    UI tests
    @Test
    fun greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"))
    onView(withId(R.id.greet_button)).perform(click())
    onView(withText("Hello Steve!")).check(matches(isDisplayed()))
    }

    View Slide

  37. QA
    Performance profiling

    View Slide

  38. QA
    APK size

    View Slide

  39. Tooling

    View Slide

  40. Tooling
    Version control

    View Slide

  41. Tooling
    CI/CD

    View Slide

  42. Tooling
    Crash reporting

    View Slide

  43. Tooling
    Analytics

    View Slide

  44. Tooling
    Alternative stores
    Amazon Appstore
    Galaxy Store
    Huawei AppGallery

    View Slide

  45. Existing product
    Improve and polish
    New project
    Plan and estimate

    View Slide

  46. You don’t have to
    know everything

    View Slide

  47. zsmb13
    zsmb.co/talks

    View Slide

  48. Android Complexity
    Márton Braun zsmb.co zsmb13

    View Slide