Is Flutter the future of cross-platform app development?
What is Flutter?
Flutter is an open-source, cross-platform mobile app software development kit (SDK) by Google which is written in the Dart programming language, also developed by Google.
In a nutshell, Flutter allows you to build native apps on iOS and Android from a single code base. It’s currently being used in production by companies such as Alibaba, JD Finance and Reflecty.
Advantages of Flutter
One of the main (and most obvious) advantages of using a cross-platform framework is that you can share code between iOS and Android projects.
This theoretically takes away a lot of the friction when building for both platforms, as platform specific frameworks essentially force you to duplicate the code in two different programming languages. The shared nature of the code also ensures you have a higher level of consistency across both platforms, with shared design and interactivity between both the iOS and Android app.
Alongside offering a simple route to developing on both platforms, the fact that you can share code means that applications can be developed at greater speed, offering a compelling solution for anyone looking to launch and acquire a large market segment before the competition.
The ability to hot reload (injecting new files into the application as it runs) also helps to keep development nimble. There’s no need to build -> wait -> run -> wait -> test -> start-over again, as most UI changes are applied immediately.
The Potential Pitfalls
Despite enforcing consistency across both platforms, there may be compromises when it comes to available feature sets, as some features may not be supported on both Android and iOS. For example, typically the Android operating system allows developers to make changes to the OS from their application and in some cases even interact with other applications. On iOS everything is sandboxed, meaning that developers are not able interact with other applications and have limited access to the actual system settings.
When it comes to design, cross-platform apps also may lack a native “look and feel” which feels natural to each platform, e.g. Android users may observe that the app looks like it was built for iOS and simply copied and pasted into the Android ecosystem. This is because Flutter utilizes native components, unlike classic hybrid webview technologies.
There are also risks associated with using platforms associated with third-parties. However like other large and well-used open-source Google Projects, such as Kubernetes, Flutter is supported by contributions from Google and the wider developer community. The community at present is very active, though this is not guaranteed over the lifetime of the framework or your application.
What about other cross-platform SDK’s?
Flutter vs Xamarin vs React Native
How are we using Flutter at Netsells?
We think it’s a pretty safe bet that Flutter will become an extremely popular framework for mobile applications over the next few years. Whilst there are technical limitations, these can be offset by finding creative solutions and working within the framework, as opposed to fighting against it.
Our development team are already working on a number of internal projects using the framework, Jack, our Lead Mobile Developer, is looking forward to expanding our Flutter portfolio:
“Flutter will enable us to work at a previously unobtainable pace while still maintaining the high level of quality our clients demand. I’m really excited to see where Flutter can take us. It is already looking very promising despite still being in its infancy”