Slide 1

Slide 1 text

Mobile UI Native, we need to talk…

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed Quality

Slide 4

Slide 4 text

Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed Quality

Slide 5

Slide 5 text

• Humans: more devs, more projects, more overhead, less cohesion • Native views are rigid and there are cases where this is creatively a deal breaker • Fragmentation still an issue for Android. Just consider Camera.

Slide 6

Slide 6 text

JS HTML + CSS JS / C# Native View Own Renderer

Slide 7

Slide 7 text

Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed Quality

Slide 8

Slide 8 text

JS DOM OpenGL OpenGL OpenGL OpenGL OpenGL Bridge DIV CSS DIV IMAGE DIV WebView

Slide 9

Slide 9 text

• Native devs / Native View account for a lot of the look and feel • Performance still an issue • "Native for free" - But you get what you pay for

Slide 10

Slide 10 text

Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed Quality *For a simple app *

Slide 11

Slide 11 text

OpenGL OpenGL OpenGL OpenGL OpenGL JS VDOM Native View 1 Native View 2 Native View 3 Native View 4 Native View 5 Bridge

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

JS VDOM Native View 1 Native View 2 Native View 3 Native View 4 Native View 5 Bridge My View 1 MyView 2 My View 3 My View 4 My View 5

Slide 14

Slide 14 text

Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed Quality *For complex UI *

Slide 15

Slide 15 text

Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed Quality

Slide 16

Slide 16 text

OpenGL OpenGL OpenGL OpenGL OpenGL DART VDOM Native OpenGL Camera Widget Widget State Widget Widget C++

Slide 17

Slide 17 text

Flutter is fun. And better than Android or iOS development in a 1-1 comparison. The multi-platform bit is a bonus.

Slide 18

Slide 18 text

Which is more difficult? Business logic vs UI

Slide 19

Slide 19 text

Where do you spend your time? Business logic vs UI

Slide 20

Slide 20 text

What devs do I have?

Slide 21

Slide 21 text

“Google kills projects. No thanks.” Elephant in the room

Slide 22

Slide 22 text

Can I isolate native specific code? Chances are there's a library out there

Slide 23

Slide 23 text

HTML + CSS • Special power: “Native for free” • Code reuse is the best here (web is also sharing code) • No more native views type of problems • Can better leverage a web team • Good for MVP in many cases. Not so good after that for most • Great speed. Amazing opportunity for a web team • Quality is usually the trade-off • Humans: Native devs account for some of the native look and feel • Platform: Native rigidity accounts for a lot of look and feel • Web-first mentality skews certain design and behavior decisions • Performance still an issue on some devices • "Native for free" - You get what you pay for

Slide 24

Slide 24 text

Native views • Special power: Great native for simple apps • Business logic is mostly the only thing shared • Opportunities • Build around C# or Js as a company • Great for MVP and even better: MLP • High quality and Speed is decent (still have to deal with platform BS) • React Native has a superb community with tons of ready-made stuff • UI work is still (pretty much) platform specific • Requires deep native knowledge • Limits of the native views apply (and platforms now share these limits) • Trading some issues for others • Limits of the base framework apply (js bridge still a bottleneck for animations) • I consider learning iOS and Android harder and worse to learn than a new language

Slide 25

Slide 25 text

Own renderer (Flutter) • Special power: OpenGL power. • Code reuse is very good. Not as good as html+css, yet • Good for MVP and many milestones beyond • Quality is native-like with freedom for complex UI • More powerful than native, Faster than RN • Closest to designers. Can actually code with a designer (peer programming) • Worst in terms of existing knowledge in your company, • But easiest to learn in my opinion • Native knowledge is not needed • Building a team is fast and cheap (can convert mostly anyone, although front- end people are the way to go)