Slide 1

Slide 1 text

Cross-Platform Collaboration Patterns Miriam Busch @miphoni UIKonf 2020

Slide 2

Slide 2 text

Imagine a cross-functional team of specialists…

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

About me • Freelance developer & consultant for Embedded Linux, iOS and Android • For > 5 years, CTO at Karlmax Berlin - an agency doing Android, iOS and Flutter projects • Sketchnoting at meetups and conferences • Just joined SoundCloud as Engineering Manager

Slide 6

Slide 6 text

Cross-Platform Collaboration Patterns #1 Recap: How did we get to cross functional teams? #2 Collaboration among individual developers: • Planning • Coding #3 Sharing of Artefacts

Slide 7

Slide 7 text

How did we get here?

Slide 8

Slide 8 text

The catch up game

Slide 9

Slide 9 text

The holy grail of feature parity

Slide 10

Slide 10 text

Independent piles of technical debt

Slide 11

Slide 11 text

Collaboration patterns among developers: Planning & Design

Slide 12

Slide 12 text

Unified terms - Naming is hard!

Slide 13

Slide 13 text

Unified user flow != Unified UI

Slide 14

Slide 14 text

Unified handling of corner cases and thresholds

Slide 15

Slide 15 text

Unified high-level design & data flow

Slide 16

Slide 16 text

Collaboration patterns among developers: Coding & Review

Slide 17

Slide 17 text

Can you actually build for the other platform?

Slide 18

Slide 18 text

Code Literacy - Reading Code Snippet File Module Codebase

Slide 19

Slide 19 text

Code Literacy - Writing

Slide 20

Slide 20 text

The Mobile Developer != Dual Specialist

Slide 21

Slide 21 text

Cross-platform code review

Slide 22

Slide 22 text

Cross-platform pairing

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Sharing

Slide 25

Slide 25 text

Shared frameworks

Slide 26

Slide 26 text

Shared artefacts

Slide 27

Slide 27 text

Defining the API

Slide 28

Slide 28 text

Server-driven UI

Slide 29

Slide 29 text

Code generation

Slide 30

Slide 30 text

Code sharing

Slide 31

Slide 31 text

Why collaborate?

Slide 32

Slide 32 text

Thank you! Links & Attribution • Thomas Sammons: A co-platform pairing experience (Sketchnote only) • Laura Kelly (Airbnb): Using Server-driven UI to rapidly integrate on Android and across platforms (Video) • Andrea Cipriani (SoundCloud): Backend-driven Upon mobile applications, a hybrid approach (Video) • Nicola Corti (Yelp): Let me write your networking code (Video) • Jeremia Lee: Failed #Squad Goals (Article) • Niamh Power (Monzo): Better together (Video) • Elin Nilsson & Raul Herbster (Spotify): Breaking the (developer) silos (Video) • Images: • Rowing: Photo by Matteo Vistocco, Unsplash • Koala: Photo by David Clode on Unsplash • Other drawings: Miriam Busch with support from the wonderful Procreate app • Developers at Karlmax Berlin and SoundCloud for their support & collaboration!