Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Over the last 4 years…

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Contrasting with the Web

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Product design

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

The platforms

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Culture

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

git is not Dropbox. ➔ Rollbacks ➔ Bisecting ➔ Hooks

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Effort does not mean progress. ➔ bugfix : feature ratio? ➔ The Mythical Man Month
 Fred Brooks ➔ Peopleware — Productive Projects and Teams
 Tom DeMarco & Tim Lister

Slide 23

Slide 23 text

eof