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

Effective and efficient mobile engineering

Pratul Kalia
September 12, 2017

Effective and efficient mobile engineering

Pratul Kalia

September 12, 2017
Tweet

More Decks by Pratul Kalia

Other Decks in Programming

Transcript

  1. Effective and efficient
    mobile engineering
    pratul kalia
    @prxtl
    uncommon.is

    View Slide

  2. Over the last 4 years…

    View Slide

  3. !
    1. Contrasting with the Web
    2. Product Design
    3. The Platforms
    4. Culture

    View Slide

  4. Contrasting
    with the Web

    View Slide

  5. Significant
    reduction in speed.
    ➔ Tightly coupled UI
    ➔ Changes to the backend can
    cause significant impact

    View Slide

  6. No dynamic
    updates!
    ➔ Closed “store” model
    ➔ React Native maintenance overhead

    View Slide

  7. Wait… how many
    versions?
    ➔ Multiple versions will be “live”
    ◆ Versioned APIs
    ◆ Remote kill-switch

    View Slide

  8. Product design

    View Slide

  9. Consistency is an
    expectation.
    ➔ Even from inexperienced users!
    ➔ Push from Google/Apple
    ◆ Back button exit confirmation
    ◆ Slide to go back

    View Slide

  10. Low tolerance
    towards jank.
    ➔ Performance is important
    ➔ Perceived speed is important too

    View Slide

  11. Mobile devices have
    personal information.
    ➔ User privacy is critical
    ➔ Engineers are as responsible
    as the Product Designers

    View Slide

  12. The platforms

    View Slide

  13. Badly behaved
    apps have no place.
    ➔ Memory/CPU constraints
    ➔ Disk thrashing is real

    View Slide

  14. Constant learning
    is imperative.
    ➔ Play Services division
    ➔ RecyclerView prefetch
    ➔ Read SMS-OTP API

    View Slide

  15. Don’t fake
    optimise.
    ➔ Splash screen delays
    ➔ Protobuf and JSON

    View Slide

  16. Security theater
    is a concern.
    ➔ Certificate pinning
    ➔ Protecting API endpoints
    ➔ Client-side encryption

    View Slide

  17. Culture

    View Slide

  18. You cannot fix with technology
    what is broken by culture.
    me.

    View Slide

  19. git is not
    Dropbox.
    ➔ Rollbacks
    ➔ Bisecting
    ➔ Hooks

    View Slide

  20. What is your bus
    factor?
    ➔ Documentation
    ➔ … Documentation
    ➔ … … Documentation

    View Slide

  21. Are you measuring
    the metrics?
    ➔ Data driven design much?
    ➔ Performance impact

    View Slide

  22. Effort does not
    mean progress.
    ➔ bugfix : feature ratio?
    ➔ The Mythical Man Month

    Fred Brooks
    ➔ Peopleware — Productive Projects and Teams

    Tom DeMarco & Tim Lister

    View Slide

  23. eof

    View Slide