Flutter
One codebase for both stores
The interface sits in Flutter and Dart. In some places we analysed the old app’s logic and carried it over. From that we built a flexible branding product — App Store and Google Play get the same client.
Developed with MENTZ for the customer VVS: the Stuttgart region’s Flutter app. Live journeys, tickets, maps and accessibility.
600,000+
App users in the Stuttgart region
1 codebase
Two native iOS and Android apps replaced with Flutter
4.4 ★
App Store rating (iOS)
As of August 2026.

VVS Mobil is the app of the Stuttgart transport association. It puts journeys, tickets and a map on the phone: for bus and rail, and for the rest of the way to the door. The new version launched in June 2025.
The app is a branding product. The same technical base ships statewide as bwegt Bus & Bahn , Baden-Württemberg’s public-transport app. VVS and the state built the client as a kit. Other transport associations can adapt the corporate design and the ticket shop.
What the app does:
The customer is VVS. The partner is MENTZ.
We have already shipped several products with MENTZ, including the VVS Cycle Planner .
We built VVS Mobil together with MENTZ. We owned the architecture and led development of the major features — effectively in a lead role. We also trained staff on the customer’s team. Years of Flutter work helped in many other areas too: accessibility and knowledge of both native platforms.
MENTZ already provided the backend for journey planning, ticketing and the mobility platform.
The previous clients were native iOS and Android. Two codebases, two release trains, every change twice. Together with MENTZ we replaced both clients with Flutter. One client for the App Store and Google Play.
In some places we analysed the old app’s logic and carried it over. The ticket shop and location APIs are still native. The result still holds up, as the App Store rating shows.
Flutter can ship accessible apps. It does not do it by default. Screen-reader information has to be prepared again in the client. That still holds when departures change, vehicles move, or new trip information arrives. All of it reachable through TalkBack.
Some UI elements have to be operated differently than by touch. Swipe gestures need an alternative, as does drag-and-drop. Keyboard and screen reader have to offer the same path as the gesture.
A lot of time went into making complex, detailed screens usable, the ones that show a lot of information, such as the departure board or trip details. They have to stay easy to use for people with impairments.
What is in the client:
Quality assurance is covered by test automation as well. Golden tests lock in that detailed UI. That matters most on white-label products.
VVS itself calls the app partially accessible and lists the open points: portrait only, map zoom by gesture only, foreign words mispronounced, parts of the ticket shop.
The European Accessibility Act / BFSG covers certain digital consumer services, not every public-transport app in the same breadth. On VVS Mobil, accessibility was a product requirement, with the limitations VVS publishes.
Flutter
The interface sits in Flutter and Dart. In some places we analysed the old app’s logic and carried it over. From that we built a flexible branding product — App Store and Google Play get the same client.
Native modules
The ticket shop and location APIs are still native. The rest of the interface still has to stay in sync on iOS and Android.
Flutter Semantics
Labels, roles and live updates live in the widgets. VVS itself documents where the ticket shop and map still fall short.
Source: User figure: VVS customer magazine NEVVS, autumn 2025
Tell us what you want to build. In a short call we’ll discuss the project and estimate time and budget.