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

Android Complexity (Android Budapest Meetup - March* 2021)

Android Complexity (Android Budapest Meetup - March* 2021)

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

https://zsmb.co/talks/android-complexity/

Marton Braun

April 01, 2021
Tweet

More Decks by Marton Braun

Other Decks in Programming

Transcript

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

    View full-size slide

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

    View full-size slide

  3. UX
    Accessibility (a11y)

    View full-size slide

  4. UX
    Accessibility (a11y)

    View full-size slide

  5. UX
    Internationalization (i18n)

    View full-size slide

  6. UX
    Internationalization (i18n)
    String resources

    View full-size slide

  7. UX
    Internationalization (i18n)
    Date formats
    String resources

    View full-size slide

  8. UX
    Internationalization (i18n)
    Start of week
    Date formats
    String resources

    View full-size slide

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

    View full-size slide

  10. UX
    Internationalization (i18n)


    %d song found.
    %d songs found.


    View full-size slide

  11. UX
    Internationalization (i18n)


    %d song found.
    %d songs found.


    View full-size slide

  12. UX
    Internationalization (i18n)

    View full-size slide

  13. UX
    Dark theme

    View full-size slide

  14. UX
    Dark theme

    View full-size slide

  15. UX
    Jetpack Compose?

    View full-size slide

  16. Platform
    Restoration
    Configuration changes

    View full-size slide

  17. Platform
    Restoration
    Configuration changes
    Orientation

    View full-size slide

  18. Platform
    Restoration
    Configuration changes
    Orientation
    Dark mode
    Language
    Font size

    View full-size slide

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

    View full-size slide

  20. Platform
    Screens

    View full-size slide

  21. Platform
    Screens

    View full-size slide

  22. Platform
    Screens

    View full-size slide

  23. Platform
    Screens

    View full-size slide

  24. Platform
    Screen settings

    View full-size slide

  25. Platform
    Screen settings – font size

    View full-size slide

  26. Platform
    Screen settings – display size

    View full-size slide

  27. Platform
    App shortcuts

    View full-size slide

  28. Platform
    App shortcuts

    View full-size slide

  29. Platform
    Notifications

    View full-size slide

  30. Platform
    Notifications

    View full-size slide

  31. Platform
    Notifications

    View full-size slide

  32. Platform
    Background work

    View full-size slide

  33. Platform
    Non-phones

    View full-size slide

  34. Platform
    Non-phones

    View full-size slide

  35. Platform
    Inputs

    View full-size slide

  36. Platform
    Inputs

    View full-size slide

  37. Platform
    Inputs

    View full-size slide

  38. QA
    Static analysis

    View full-size slide

  39. QA
    Unit tests

    View full-size slide

  40. 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 full-size slide

  41. QA
    Performance profiling

    View full-size slide

  42. Tooling
    Language

    View full-size slide

  43. Tooling
    Language

    View full-size slide

  44. Tooling
    Language

    View full-size slide

  45. Tooling
    Version control

    View full-size slide

  46. Tooling
    CI/CD

    View full-size slide

  47. Tooling
    Alternative stores
    Amazon Appstore
    Galaxy Store
    Huawei AppGallery

    View full-size slide

  48. Tooling
    Crash reporting

    View full-size slide

  49. Tooling
    Analytics

    View full-size slide

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

    View full-size slide

  51. You don’t have to
    know everything

    View full-size slide

  52. zsmb13
    zsmb.co/talks

    View full-size slide

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

    View full-size slide