Mac & i 5/2022
S. 144
Developer’s Corner
Flutter
Bild: ishtiaq-khan-para, unsplash.com; Montage: Mac & i

Aufgeschlossen

Plattformübergreifend programmieren mit Flutter

Es müssen nicht immer Swift oder SwiftUI sein, um Apps für Apple-Geräte zu programmieren. Mit Flutter aus dem Hause Google hat sich in den letzten Jahren eine echte Alternative etabliert, die obendrein sogar mehrere Plattformen bedient: iOS, macOS, Android, Linux, Windows und Webbrowser. Flutter war schon da, als Apple SwiftUI herausgebracht hat, und die beiden sind sich in Teilen sogar recht ähnlich. Mit einem kleinen praktischen Beispiel nehmen wir das Open-Source-Framework unter die Lupe.

Von Pascal Friedrich und Klaus Rodewig

2019 war es, als Apple auf der WWDC mit den üblichen Superlativen SwiftUI ankündigte, das neue, deklarative Framework für die UI-Programmierung auf Apple-Geräten. Dem in die Jahre gekommenen UIKit auf iOS und dem noch viel älteren AppKit auf macOS merkt man ihr Alter schon lange an. Komplexe Bedienoberflächen zu bauen, ist umständlich, die Trennung zwischen Code und Interface Builder altbacken, und beide Frameworks verärgern auch heute noch mit unnötigen Restriktionen und Bugs. So war SwiftUI der lang erwartete Befreiungsschlag in Richtung Zukunft. Und nur wenig überraschend, hatte Google doch zwei Jahre zuvor mit Flutter schon ein deklaratives Framework mit einer beachtlichen Flexibilität und Performance veröffentlicht.

Während SwiftUI ausschließlich dem Programmieren für Apple-Geräte vorbehalten bleibt, erlaubt Flutter von Anfang an plattformübergreifendes Programmieren für Android und iOS. Mittlerweile haben sich macOS, Linux, Windows und Webbrowser als unterstützte Plattformen hinzugesellt – ein erheblicher Pluspunkt gegenüber SwiftUI. Plattformübergreifende Programmierung, write once, run everywhere, ist der Traum eines jedes Managers. Zu verlockend klingt doch die Vorstellung, dass man die Hälfte der Programmierer-Ressourcen einsparen kann, wenn man nur ein plattformübergreifendes Framework verwendet, bei dem aus einer einzigen Codebasis Apps für iOS und Android entstehen. In der Praxis geht diese Rechnung natürlich nie auf. Am Ende hat man in der Regel immer plattformspezifische Anpassungen und Nacharbeiten. Und doch schafft es Flutter, Programmierzeit erheblich zu verkürzen.