Airport app development with Google Flutter

The new EuroAirport app was developed with the open source framework Flutter from Google. This allows both the iOS and Android app to be created with one code base. Nevertheless, the respective apps retain the operating system-specific user elements.

Author: Roberto De Simone
Date: 05/01/2024
Updated: 08/11/2024

iOS EuroAirport App Home Light Mode
Android EuroAirport App Home Light Mode

On this page

Why Flutter was used to develop the app

One code base can be used to create both the iOS and Android app (Flutter also supports Web, Windows, macOS and Linux). This is certainly a key argument in favour of Flutter, although other frameworks such as React Native or Ionic also offer multiplatform support.

Flutter impresses with its great popularity - it is now the most popular tool for developing cross-platform applications.

The framework also comes from Google, which means that you can already expect higher quality standards compared to other frameworks. In addition to Google, other companies and developers are contributing to the further development of the framework.

From the developer’s point of view, Flutter is impressive in terms of development productivity. Once familiarised with the framework, you can develop apps very quickly. However, the learning curve should not be underestimated. A large number of widgets, packages and concepts are available, both from Flutter itself and from third-party providers. Finding your way around them and developing best practices takes time and experience, especially when it comes to developing a serious enterprise app.

A Flutter app also impresses with its execution speed, as it generates native code. But you need to know the following: Flutter does not use any elements of the native software development kits (SDKs) of the respective operating systems (iOS and Android) when it comes to developing the user interface. All elements (widgets) required to create a user interface are being modelled. Flutter has a canvas (drawing area) for this purpose. On the one hand, this is an advantage, as it creates support for several operating systems with one code base, but on the other hand it is also the biggest disadvantage of Flutter, as all elements have to be modelled with pixel accuracy. If, for example, Apple changes the appearance of elements with an iOS update, Flutter must also reproduce these, which can lead to Flutter apps still having the appearance of the previous operating system at the start of an operating system update.

Technical properties of a Flutter app

Operating system-specific appearance and behaviour of a Flutter app

In order to develop an app that gives the user the appearance and behaviour of their familiar operating system, Flutter offers various configuration options for app development. A so-called Cupertino app is created for iOS and a Material app is created for Android. Component widgets with the operating system-specific appearance and behaviour are also available in each case.

Example: In the EuroAirport app, a TabBar is used for Android and a Segment for iOS to switch between arrivals and departures.

iOS EuroAirport App Home Light Mode
Android EuroAirport App Home Light Mode

To be able to create two different apps with the same source code, the source code must be structured in such a way that the Material Widgets are used for Android and the Cupertino Widgets for iOS when compiling the application.

Accessibility features of a Flutter app

A modern app should be as accessible as possible and operable for a wide range of users. This also includes support for large text sizes and a light and dark app theme. Both are supported by the EuroAirport app.

iOS Setting zur Whal der Textgrösse
EuroAirport iOS App mit grösserer Textgrösse

Supporting large text sizes in particular is a challenge and time-consuming to implement: it requires extensive testing on a large number of devices with different settings.

Summary

Overall, app development with Flutter can be highly recommended, or in other words: I would choose Flutter again for another app development, as the productivity is simply much higher compared to the use of native development concepts.

However, it is important to realise that the use of cross-platform frameworks is always associated with compromises. The use of “packages” from third-party providers, which are de facto unavoidable in order to achieve high productivity, also leads to dependencies and security issues. If these packages are no longer supported, e.g. because something new has become established in the developer community, this may require major changes to the source code. It may also not be possible to update to new Flutter versions because the update of a package is delayed.

Another point to bear in mind is that Google is known to let products die if they no longer fit into their strategy! At the moment, however, it looks like the investments in Flutter are high and Flutter is being used by Google itself.

For companies that are sufficiently financially strong and want no or only minimal dependencies on third-party providers, the native modern frameworks SwiftUI (iOS) and Jetpack Compose (Android) are still the first choice.

Get it from App Store or Google Play