Cross-Platform: The Cost-Effective Solution for iOS and Android Apps
In a world where people live off their mobile devices, developing applications that are available on both iOS and Android allows companies to reach the majority of their customer base. The traditional development approach is to employ two different sets of developers; one specialising in iOS, the other in Android. Each group has different skills and knowledge, and employ different tools and workflow. iOS developers typically use XCode to write applications in either Swift or Objective-C. Android developers might use Android Studio and write applications in either Java or Kotlin. Having two sets of developers is expensive and inefficient as each group has to implement each feature, resulting in separate code bases that have to be maintained.
When new features are added to an application that is built for iOS and Android, companies may hold back features until the development work has been completed across both platforms. The alternative is to release features incrementally on whichever platform is completed first, but this can lead to users feeling that one platform is more important than the other.
Each platform has a unique visual design that users are familiar with. However, some companies prefer to have a consistent, or branded, design, which would require additional development work to achieve. Furthermore, there are some customers that use the same application on different platforms. Having a consistent experience across both platforms would reduce the cognitive load when switching between platforms. Users that are already familiar with how to perform a task (e.g. playing a movie) on one platform, would have confidence in performing the task on the other platform.
Advantages and Disadvantages of Flutter
The use of cross-platform frameworks for developing applications is a solution that companies are increasingly turning to in the hope of reducing costs and effort required to release new features. Cross-platform frameworks range in capabilities but all attempt to reduce the amount of code duplication required in order to deliver the same, or similar, applications across multiple target platforms. Flutter is one such framework developed by Google that has entered the market in relatively recent times with the ability to create high fidelity applications across both iOS and Android.
Advantages of using Flutter are:
- Beautiful by default: Flutter uses a custom rendering engine and comes with a set of widgets that look beautiful by default. These can be used to create applications that have the same look and feel on each platform. It’s also still possible to use either the Material (Android) or Cupertino (iOS) widgets to get the native platform style.
- Improved productivity: Flutter supports stateful hot reload, which means developers can make changes whilst debugging the application and the Flutter SDK will immediately push the changes to the device used for debugging. There’s no need to redeploy the application; a massive time saver, making Flutter perfect for rapid prototyping.
- One programming language: Flutter applications are written using one programming language, Dart. This applies to both the business logic and user interface. Code reuse across both Android and iOS essentially comes “free” out of the box.
- It is open-source: The source code for Flutter is available on GitHub and developers are encouraged to contribute towards Flutter’s on-going development. Developers can also drill into the code to see how the built-in widgets are implemented. Developers building plugins are also encouraged to make the source code for the plugins open source.
- Community: Flutter is gaining traction in the market and it is already one of the top-rated repositories on GitHub. Some companies have already built and published applications using Flutter. In fact, Google has indicated that it is using Flutter to build a new operating system called Fuchsia. Feedback from the developer community has also been positive due to the development experience. The community is exploring how Flutter can be used to build desktop applications; whilst Google is looking at if it’s possible to run Flutter applications on the web.
Limitations to be aware of:
- Limited native controls: Flutter does not use the native controls to render the user interface. If the appearance and behaviour of standard native controls change, then these changes will require Flutter, and subsequently apps built with Flutter, to be updated.
- It’s new: Flutter is a new cross-platform SDK. This means the ecosystem lags some of its competitors and may lack functionality that some application require.
- Native platform integration: Making use of native platform APIs and libraries can become complicated. If applications need to make use of these, then developers will need be familiar with the programming languages that are used for doing development on each platform.
- Embedding: Making use of platform specific third-party controls requires the control to be hosted as an embedded view. This indirection may be problematic for some controls.
Talk to us about Flutter
At Built to Roam, we believe Flutter is a cost-effective alternative for building beautiful cross-platform applications. That’s why we’re proud to be one of the leading advocates for Flutter and why we are excited to see this innovation grow.
We’ll help you reach multiple consumer markets from a single logic and user interface build, with an app that will be easy to change, update and scale. We’ll be on hand to support you at every turn, introducing new technologies as they come online; maintaining the disruptive and delightful app your customers have come to expect.