Effective and efficientmobile engineeringpratul kalia@prxtluncommon.is
View Slide
Over the last 4 years…
!1. Contrasting with the Web2. Product Design3. The Platforms4. Culture
Contrastingwith the Web
Significantreduction in speed.➔ Tightly coupled UI➔ Changes to the backend cancause significant impact
No dynamicupdates!➔ Closed “store” model➔ React Native maintenance overhead
Wait… how manyversions?➔ Multiple versions will be “live”◆ Versioned APIs◆ Remote kill-switch
Product design
Consistency is anexpectation.➔ Even from inexperienced users!➔ Push from Google/Apple◆ Back button exit confirmation◆ Slide to go back
Low tolerancetowards jank.➔ Performance is important➔ Perceived speed is important too
Mobile devices havepersonal information.➔ User privacy is critical➔ Engineers are as responsibleas the Product Designers
The platforms
Badly behavedapps have no place.➔ Memory/CPU constraints➔ Disk thrashing is real
Constant learningis imperative.➔ Play Services division➔ RecyclerView prefetch➔ Read SMS-OTP API
Don’t fakeoptimise.➔ Splash screen delays➔ Protobuf and JSON
Security theateris a concern.➔ Certificate pinning➔ Protecting API endpoints➔ Client-side encryption
Culture
You cannot fix with technologywhat is broken by culture.me.
git is notDropbox.➔ Rollbacks➔ Bisecting➔ Hooks
What is your busfactor?➔ Documentation➔ … Documentation➔ … … Documentation
Are you measuringthe metrics?➔ Data driven design much?➔ Performance impact
Effort does notmean progress.➔ bugfix : feature ratio?➔ The Mythical Man Month Fred Brooks➔ Peopleware — Productive Projects and Teams Tom DeMarco & Tim Lister
eof