It has been one of the most popular choices when it comes to cross-platform native app development over recent years but from the start of this October 2020 Adobe has made the decision to discontinue PhoneGap Build and end it’s investment in PhoneGap and Apache Cordova. PhoneGap, which is open-source, will still be available for the time being but not actively developed on, meaning it will become incompatible with the latest OS versions for Apple and Android devices in the future. PhoneGap build on the other hand, which is not open-source, will be completely out of support and all data files will be deleted from the 1st October 2020. So what alternatives do we have available to help develop cross-platform native apps now? 

Why is Flutter different?

Flutter is an open-source software development kit (SDK) created by Google, used for cross-platform application development. With mobile apps being written in the Dart language it makes use of the language’s more advanced features. Whilst Dart isn’t massively popular with programmers, this SDK is growing in recognition due to its capability to create quality native apps on iOS and Android OS platforms all from one code base. Where it differs itself from others on the market such as PhoneGap and React Native, Flutter allows you to write code once that can be used on both iOS and Android and renders the same looking native app by drawing the UI from scratch.  A lot of large organisations are using Flutter including The New York Times Group, eBay and Alibaba Group. 

How does Flutter work?

Flutter is built in a completely different way, compared to other frameworks, working more inline with gaming engines in comparison to traditional application frameworks. So instead of compiling directly into iOS or Android applications, instead it uses a combination of a rendering engine, which is compiled in C/C++ and Flutter, which uses Dart and therefore allows it to compile the source code ahead-of-time to native code. Both of these are then wrapped in a runner project, creating .apk or .ipa files respectively. 

So, is Flutter a viable alternative or new thinking?

There are a number of reasons why Flutter could be your preferred choice for cross-platform development moving forward. These include:

  • Free and open source
  • Quicker and aims to deliver the slickest user interface in comparison to rivals 
  • It’s unified code base allows for projects to be more time-saving and cost-effective
  • Faster code writing
  • Less testing required
  • High quality performing apps
  • You can easily create your own widgets or customize the existing widgets allowing you to build designs which your users will love
  • No additional cost for supporting older devices and your app will look the same across old versions of iOS and Android. 

This is not to say that Flutter is the finished project as using it does come with some drawbacks, which include:

  • Library support, whilst impressive, is not as expansive and rich as for native development. 
  • Flutter, for now, is not widely supported by CI platforms, so can make automatic building, testing and deployment within your development team tricky. However, Bitrisee has announced a full-featured Flutter-CI that is available now.
  • Previous users of PhoneGap would have to adapt from using previously mainstream languages such as PHP and JavaScript and become familiar with using Dart which could slow up production at the beginning but over time the switch could be cost and time effective for businesses. 
  • At present it seems that transferring pre-existing applications not built in Dart is not possible so it would require redevelopment of applications. However, Flutter does allow you to easily edit pre-existing Dart based applications.

It does seem that Flutter offers many advantages for business and dev teams, and any risks will reduce over time, as more support and add-ons are developed. Flutter is still in its infancy stage but still allows you to create high-performance, beautifully designed and outstanding iOS and Android apps. Arguably Flutter is more aimed toward native app developers rather than web developers so is definitely not a direct replacement to PhoneGap, however, it is a good alternative to help create hybrid apps.