Comparing multi-platform mobile frameworks

Comparing multi-platform mobile frameworks

In the context of introducing Flutter to the audience, this presentation compares the major players in the cross-platform or multi-platform mobile frameworks.

3d14b1dcd13755bcbafc5ac9c9ab1426?s=128

Andrei Diaconu

May 10, 2019
Tweet

Transcript

  1. Mobile UI Native, we need to talk…

  2. None
  3. Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed

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

    Quality
  5. • 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.
  6. JS HTML + CSS JS / C# Native View Own

    Renderer
  7. Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed

    Quality
  8. JS DOM OpenGL OpenGL OpenGL OpenGL OpenGL Bridge DIV CSS

    DIV IMAGE DIV WebView
  9. • 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
  10. Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed

    Quality *For a simple app *
  11. OpenGL OpenGL OpenGL OpenGL OpenGL JS VDOM Native View 1

    Native View 2 Native View 3 Native View 4 Native View 5 Bridge
  12. None
  13. 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
  14. Code sharing Native knowledge Native-friendly Easy Team MVP Production Speed

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

    Quality
  16. OpenGL OpenGL OpenGL OpenGL OpenGL DART VDOM Native OpenGL Camera

    Widget Widget State Widget Widget C++
  17. Flutter is fun. And better than Android or iOS development

    in a 1-1 comparison. The multi-platform bit is a bonus.
  18. Which is more difficult? Business logic vs UI

  19. Where do you spend your time? Business logic vs UI

  20. What devs do I have?

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

  22. Can I isolate native specific code? Chances are there's a

    library out there
  23. 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
  24. 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
  25. 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)