Skip to main content
← Blog
Android

Cross-Platform Development with Flutter

3 min read
Cross-Platform Development with Flutter

After a long time — too long — I’m back to writing. This time we’re switching things up and diving into Flutter as the framework for our cross-platform apps. Read on to find out more.

What is Flutter?

Flutter is Google’s toolkit for building cross-platform applications, designed from the ground up to be visually polished.

“Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.”

With Flutter, you’re not just building mobile apps. The same codebase targets Mac, Linux, and the web. Google is also in conversations with Microsoft about Windows support.

Wait, isn’t Flutter a language?

No. Flutter is the framework. The language is Dart.

Why Flutter, why now?

Honestly? I stumbled into Flutter — I won’t pretend otherwise. At my current company (wata.es), we needed to build a mobile app and had to pick a technology. As I wrote in a previous post, in corporate settings I think hybrid is the sensible choice.

We evaluated the main options — Xamarin, React Native, and Flutter — each with real trade-offs (there’s no perfect choice). After a thorough review, Flutter won us over: the community enthusiasm was infectious, the framework was growing fast, and being early adopters of an emerging technology felt like the right bet.

Is Flutter worth it?

Absolutely, yes.

  • The learning curve is low
  • The community is large, documentation and examples are abundant
  • You can develop on Windows, Mac, or Linux without friction
  • Google is betting hard on it internally
  • The architecture is modular — a core platform plus plugins for what you need

Dart is borrowing good ideas from modern languages like Kotlin — extension methods, for example — though it still has a few gaps to close.

Are there risks?

There are always risks when you step away from native development.

  • Most community plugins are community-maintained — what happens if they’re abandoned?
    • This was my biggest concern, but the answer I got at #FlutterDay put me at ease: they’re open source, you can fork and maintain them yourself
  • Could Google abandon Flutter the way it has abandoned other projects?
    • Possible, but unlikely in practice. Google is using Flutter for internal projects and has built strong industry partnerships around it

My experience so far

My experience building with Flutter these past few months has been genuinely satisfying. One of my personal projects is being migrated from Scala to Flutter. Another one — originally in Xamarin using Firebase, which forms the basis of several posts on this blog — will get the same treatment.

One of my biggest frustrations with Xamarin was the near-complete lack of documentation and the constant headaches with version upgrades. That hasn’t happened with Flutter. There’s documentation for everything, the community is active (shoutout to @gdgmarbella for the work they do), and version updates have been smooth.

The mental model shift is real, especially around UI — if you come from native development, you’ll need to rewire a few things. But it clicks faster than you’d expect. The architecture is also left deliberately open, which can be a feature or a bug depending on your taste. Same for design patterns.

If I had one complaint, it’s that Flutter is still young — barely a year old — and evolving quickly, which means occasional rough patches between releases.

In short: I’ve become a Flutter convert. I’m hoping to get back into a regular writing rhythm and bring you more concrete Flutter development articles. See you soon.


More in Android