The holy grail of software development is managing a single codebase that can support multiple – if not all – of your target platforms. While responsive web development is a good start, the ultimate goal is cross-platform native development.
Over the years, there have been several attempts at reaching this objective.
In 2017, Google threw their hat in the ring with Flutter. Flutter is a free and open source initiative that consists of two parts: a software development kit (SDK) and a user interface (UI) kit for building frontend components.
Why Does Flutter Matter to Me?
Flutter allows you to write code once in a single language (Dart) that can be used to create native apps for both iOS and Android. Flutter also has two primary UI kits, one for Google (that follows Material Design) and one for Apple (that follows their Human Interface Guidelines).
This approach has proven to be problematic, particularly when it comes to performance and new feature support. That said, building cross-platform native apps (e.g., React Native or NativeScript) are a great solution for many businesses today.
And, because the project is backed by Google, you will have better support, more robust documentation, and faster release cycles than React Native. While there might be other options available, this solution is free, open source, and supported by a strong developer ecosystem.
Flutter Now Supports Web
As you can imagine, we're fans of any technology that allows developers to spend time focusing on core features and creating great user experiences. We've been following Flutter closely and were thrilled to hear their support for web applications is in beta.
You can think of Flutter as taking the idea of a progressive web app (PWA) one step further. You can build web, native mobile, and native desktop apps, all from one codebase.
That means you can access powerful libraries like Firebase, Google Sign In, Sentry, and more right out of the box. In addition to pushing Flutter Web to Beta, it's important to note that Flutter Desktop for macOS is in Alpha.
This means the team is busy working on a solution that allows you to bridge together web, iOS, Android, and macOS. (With Windows and Linux support coming soon after!)
Why We're Excited About Flutter
At Tragic Media, we support different types of teams. Whether we are working with a startup that wants to ship a minimum viable product (MVP) or an enterprise customer exploring a new market, we prioritize clean code and quick iterations.
As mentioned, we think of Flutter as the next progression of the progressive web app (PWA).
Flutter is also a robust framework that houses all the tools that you need, allowing you to have less reliance on third-party dependencies. We prefer this method as it provides a smooth update process and fewer dependencies means fewer possible security vulnerabilities.
Furthermore, Dart uses the Skia C++ engine meaning it's packed full of features. (You can learn more about Dart here.)
In fact, it comes out-of-the-box with a command line interface (CLI) and continuous integration / continuous deployment (CI/CD) tools built-in. Last but not least, Flutter also has a great developer community.
Finally, Flutter has a roadmap for both web and native desktop, so it will ultimately become a true cross-platform native solution.
Whether you are looking to build rich apps across two platforms, or add a companion mobile app to your web experience, Flutter is worth exploring.
In 2020, most businesses will benefit from building applications from a single codebase. There are a small handful of companies that have legitimate reasons for supporting native desktop, web, iOS, and Android applications.
The momentum behind Flutter is worth paying serious attention to.
Remember that Flutter Web is only in beta and Flutter Desktop is just reaching alpha. That said, it's valuable to build your strategy in a way that looks to the future – a future of reusable code components, not fragmented design and development teams.
Looking to build an unmatched cross-platform experience? Contact us today for a free consultation to see if Flutter is right for your project.