For years, the first and biggest question for us (or any firm in the business of building custom digital software, really) was some version of, “which platform should I focus on first?” For the most part, this was a conversation about iOS vs. Android vs. web, etc. Previously, even great developers had to code differing versions of the same experience to cater to disparate platforms. There were hybrid approaches, sure; but, there was always some form of trade off. With Google’s Flutter, though, those trade-offs may be a thing of the past. With a single codebase, developers can build beautiful, fluid apps that live on multiple, distinct platforms.
Google’s development approach with Flutter takes a different path than previous incarnations of cross-platform development tools. Developers work against a framework application; it has an engine sporting portable runtime to host applications. This framework builds on the Skia graphics library; but, instead of just being wrappers on native controls, Flutter has widgets which are actually rendered.
“This approach gives the flexibility to build a cross-platform application in a completely custom manner like the web wrapper option provides, but at the same time offering smooth performance,” according to Mike Bluestein. Flutter’s rich widget library — as well as its glut of open-source widgets — makes it a feature-rich platform in which to work. “Put simply, Flutter is the closest thing mobile developers have had for cross-platform development with little to no compromise,” Bluestein concluded.
“We built Flutter from the ground up to be this beautiful, fast, productive, open-source toolkit for building tailored experiences, originally for mobile,” Google’s group product manager for Flutter, Tim Sneath, told Tech Crunch. “The big news… is that we are finally opening Flutter up beyond just mobile to really lean into our broader vision for Flutter as our general-purpose, portable UI toolkit for mobile, we, embedded and desktop.”
What makes Flutter special is that it’s not just a tool for building mobile apps, and then duping or aping that functionality onto desktop by essentially faking it. Instead, with the new additions to the platform in 2019, developers can build one code base with no need to fork the framework or the applications to support different platforms. Rather, Sneath’s expectation is that “we will be able to deliver one framework for all of these places … we’re talking about native code, even on the desktop, not a web app that pretends to be a desktop app.”