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 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)

    View Slide

  8. UX
    Internationalization (i18n)
    String resources

    View Slide

  9. UX
    Internationalization (i18n)
    Date formats
    String resources

    View Slide

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

    View Slide

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

    View Slide

  12. UX
    Internationalization (i18n)


    %d song found.
    %d songs found.


    View Slide

  13. UX
    Internationalization (i18n)


    %d song found.
    %d songs found.


    View Slide

  14. UX
    Internationalization (i18n)

    View Slide

  15. UX
    Dark theme

    View Slide

  16. UX
    Dark theme

    View Slide

  17. UX
    Animation

    View Slide

  18. UX
    Animation

    View Slide

  19. UX
    Animation

    View Slide

  20. UX
    Animation

    View Slide

  21. UX
    Animation

    View Slide

  22. UX
    Jetpack Compose?

    View Slide

  23. Platform

    View Slide

  24. Platform
    Restoration
    Configuration changes

    View Slide

  25. Platform
    Restoration
    Configuration changes
    Orientation

    View Slide

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

    View Slide

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

    View Slide

  28. Platform
    Screens

    View Slide

  29. Platform
    Screens

    View Slide

  30. Platform
    Screens

    View Slide

  31. Platform
    Screens

    View Slide

  32. Platform
    Screen settings

    View Slide

  33. Platform
    Screen settings – font size

    View Slide

  34. Platform
    Screen settings – display size

    View Slide

  35. Platform
    App shortcuts

    View Slide

  36. Platform
    App shortcuts

    View Slide

  37. Platform
    Notifications

    View Slide

  38. Platform
    Notifications

    View Slide

  39. Platform
    Notifications

    View Slide

  40. Platform
    Background work

    View Slide

  41. Platform
    Non-phones

    View Slide

  42. Platform
    Non-phones

    View Slide

  43. Platform
    Inputs

    View Slide

  44. Platform
    Inputs

    View Slide

  45. Platform
    Inputs

    View Slide

  46. QA

    View Slide

  47. QA
    Static analysis

    View Slide

  48. QA
    Unit tests

    View Slide

  49. 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

  50. QA
    Performance profiling

    View Slide

  51. QA
    APK size

    View Slide

  52. Tooling

    View Slide

  53. Tooling
    Language

    View Slide

  54. Tooling
    Language

    View Slide

  55. Tooling
    Language

    View Slide

  56. Tooling
    Version control

    View Slide

  57. Tooling
    CI/CD

    View Slide

  58. Tooling
    Alternative stores
    Amazon Appstore
    Galaxy Store
    Huawei AppGallery

    View Slide

  59. Tooling
    Crash reporting

    View Slide

  60. Tooling
    Analytics

    View Slide

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

    View Slide

  62. You don’t have to
    know everything

    View Slide

  63. zsmb13
    zsmb.co/talks

    View Slide

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

    View Slide