In the context of introducing Flutter to the audience, this presentation compares the major players in the cross-platform or multi-platform mobile frameworks.
Mobile UINative, we need to talk…
View Slide
Code sharingNative knowledgeNative-friendlyEasy TeamMVPProductionSpeedQuality
• Humans: more devs, more projects, more overhead, lesscohesion• Native views are rigid and there are cases where this iscreatively a deal breaker• Fragmentation still an issue for Android. Just considerCamera.
JSHTML + CSSJS / C#Native ViewOwn Renderer
JSDOMOpenGLOpenGLOpenGLOpenGLOpenGLBridgeDIVCSSDIVIMAGEDIVWebView
• Native devs / Native View account for a lot of the lookand feel• Performance still an issue• "Native for free" - But you get what you pay for
Code sharingNative knowledgeNative-friendlyEasy TeamMVPProductionSpeedQuality*For a simple app*
OpenGLOpenGLOpenGLOpenGLOpenGLJS VDOMNativeView 1NativeView 2NativeView 3NativeView 4NativeView 5Bridge
JS VDOMNativeView 1NativeView 2NativeView 3NativeView 4NativeView 5BridgeMy View1MyView2My View3My View4My View5
Code sharingNative knowledgeNative-friendlyEasy TeamMVPProductionSpeedQuality*For complex UI*
OpenGLOpenGLOpenGLOpenGLOpenGLDART VDOMNativeOpenGLCameraWidgetWidgetStateWidgetWidgetC++
Flutter is fun.And better than Android or iOS development in a 1-1comparison. The multi-platform bit is a bonus.
Which is moredifficult?Business logic vs UI
Where do you spendyour time?Business logic vs UI
What devs do I have?
“Google kills projects.No thanks.”Elephant in the room
Can I isolate nativespecific code?Chances are there's a library out there
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 thatfor most• Great speed. Amazing opportunity for a web team• Quality is usually the trade-off• Humans: Native devs account for some of the native lookand feel• Platform: Native rigidity accounts for a lot of look and feel• Web-first mentality skews certain design and behaviordecisions• Performance still an issue on some devices• "Native for free" - You get what you pay for
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 haveto deal with platform BS)• React Native has a superb community withtons of ready-made stuff• UI work is still (pretty much) platformspecific• Requires deep native knowledge• Limits of the native views apply (andplatforms now share these limits)• Trading some issues for others• Limits of the base framework apply (jsbridge still a bottleneck for animations)• I consider learning iOS and Android harderand worse to learn than a new language
Own renderer (Flutter)• Special power: OpenGL power.• Code reuse is very good. Not as good ashtml+css, yet• Good for MVP and many milestones beyond • Quality is native-like with freedom forcomplex UI• More powerful than native, Faster than RN• Closest to designers. Can actually codewith a designer (peer programming)• Worst in terms of existing knowledge inyour company, • But easiest to learn in my opinion• Native knowledge is not needed• Building a team is fast and cheap (canconvert mostly anyone, although front-end people are the way to go)