Presentation: Build Cross Platform Apps With Flutter

Track: Developing/Optimizing Clients for Developers

Location: Majestic Complex, 6th fl.

Duration: 1:40pm - 2:30pm

Day of week:

Slides: Download Slides

This presentation is now available to view on InfoQ.com

Watch video with transcript

What You’ll Learn

  1. Listen how Flutter can help with cross-platform mobile or web development.
  2. Find out what are the main differences between Flutter and other solutions like React Native or Xamarin.

Abstract

Historically users building cross platform apps would be able to see and feel a difference between "native" apps and cross platform solutions, but what happens when the clients built by cross platform technologies start to achieve the same look and feel?

Flutter built apps compared alongside their Android/iOS counterparts are nearly identical and the difference is becoming imperceptible with every release. What does this mean for the future of client development when technology is democratized in such a way where you can write once and truly run everywhere, any client, on any platform?

We'll take a deep dive into Flutter, how it achieves an almost identical look and feel to its' Android/iOS counterparts and whats on the roadmap for Flutter (Web & IoT).

Question: 

What is the focus of your work today?

Answer: 

I am the Co-Founder of dydx.dev, a Machine learning powered API monitoring service, where we analyze your API requests and responses using machine learning, notifying you when your API breaks before your users do.

Question: 

What is the motivation for this talk?

Answer: 

I started my career as a mobile developer doing Android and iOS development. I've done Cordova, Ionic, React Native, I've done any sort of mobile development possible.

Over the years I've understood what the best practices are and all the issues mobile developers run into, and I've found that Flutter is this perfect mix, this perfect amalgamation of these learnings ever since the iPhone came out to build a really good platform.

I want to share that with everyone and look forward towards the future, with Flutter for web that promises to live up to the holy grail of write once and deploy everywhere.

Question: 

Would you like to elaborate a bit on how Flutter compares with other frameworks like Xamarin or React Native?

Answer: 

Let's first compare with React Native which a lot of people ask me about.

React Native takes JavaScript and emits native components that exist on the platform. For example, if I create a React Native button it will say, hey, I'm running on Android so I should create an Android button. Or, Hey, I'm running in iOS. I should create an iOS button.

Now what happens is that's great for iOS where all the phones are standardized, but for Android there's so many different devices that the rendering sometimes starts to screw up, you don't get the right button, you don't get the right padding.

So you run into a lot of issues mainly around compatibility, and how your app looks and feels on different devices, a lot of variability.  

Flutter differs in that Flutter draws its own rendering views. Think of Flutter like Unity for Apps, and Flutter says, you know what we're not going to rely on OS, we don't care where we're running, we're going to draw the widgets ourselves.

What that does, it guarantees consistent performance because Flutter makes sure that their rendering engine renders all widgets and components and animations at 120 frames/s. It's deterministic that if you build your app in a certain way it's going to look like that on all the platforms. Now, Xamarin is very similar to React Native where you're writing some components and it's basically translating that to the OS widget set.

React Native and Xamarin are a lot closer together than Flutter.

Question: 

How would you describe the target persona of the audience?

Answer: 

It's people who've done mobile development or have done web development. They want to start writing applications for different platforms and not have to maintain different projects.

I find a lot of people when they build hobby apps it's great for one platform. When you have a business you want to be on all the platforms and you want to get the highest ROI. The people that are looking to get the highest ROI from their software should attend my talk and learn what Flutter can do for them.

Question: 

Flutter development requires Dart. What is your experience using Dart? What is your advice for developers now considering using Dart?

Answer: 

If they know JavaScript they already know Dart. Basically they know 90-95% of Dart. Dart is a language that everyone knows if they've done any web development. You already know it. It's such a simple and elegant language where the learning curve is very small.

If you know JavaScript you can write a Dart app guaranteed within 20 minutes. That's all you really need to know to write your first Dart and Flutter app.

After what you can do is learn best practices for Dart, which then takes some time to learn but that's the case with any modern language!  

Speaker: Faisal Abid

Co-Founder at dydx.dev & Google Developer Expert

Faisal is a Google Developer Expert, Entrepreneur, and Engineer. He is a programming language enthusiast and loves solving software engineering challenges across the stack.

Currently, Faisal is the Co-Founder at dydx.dev. You can also find Faisal working on mobile applications in Flutter, writing Smart Contracts for DApps, and writing backends in Dart or Node.js.

Find Faisal Abid at

Similar Talks

Let's talk locks!

Qcon

Software Engineer @Samsara

Kavya Joshi

Are We Really Cloud-Native?

Qcon

Director of Technology @Luminis_eu

Bert Ertman

The Trouble With Learning in Complex Systems

Qcon

Senior Cloud Advocate @Microsoft

Jason Hand

Graceful Degradation as a Feature

Qcon

Director of Product @GremlinInc

Lorne Kligerman

What Breaks Our Systems: A Taxonomy of Black Swans

Qcon

Site Reliability Engineer @Slack, Contributor to Seeking SRE, & SRECon Steering Committee

Laura Nolan