Modernising a Legacy Flutter App to Power a Scalable Multi-Service Booking Platform

A stalled Angular 19 migration and ageing Flutter codebase were slowing new feature development for a Swedish parking platform. Tarento completed the migration, rebuilt the mobile architecture, and delivered a modular booking flow covering parking, shuttle, hotel and self-service.

A Swedish parking-technology operator had already started migrating its web application to Angular 19 when the migration stalled. Dependency conflicts and build errors had brought the update to a halt, while the mobile application was running on an outdated Flutter version with no global state management. Its basic component structure also made the application increasingly difficult to extend as new functionality was introduced.

Tarento was brought in to complete the stalled web migration and rebuild the mobile application on a modern architecture, addressing the underlying technical constraints rather than adding further patches to the existing codebase.

At a Glance

  • Client: A Swedish parking-technology operator managing multi-service booking across parking, shuttle and hotel offerings
  • Challenge: A stalled Angular 19 migration and a legacy Flutter mobile codebase with no global state management, limiting new feature development
  • Starting position: Angular migration blocked by dependency conflicts and build failures; mobile application affected by UI rendering issues and a rigid architecture; no defined technical roadmap
  • Tarento's role: Complete the Angular migration, modernise the mobile architecture, and deliver a unified multi-service booking flow
  • Hero outcome: 100% of the mobile codebase modernised to a Riverpod-based state-management architecture

The Challenge

The platform needed to support a broader booking experience: a customer should be able to book parking, a shuttle transfer and a hotel stay within a single flow, while administrators could manage pricing and availability across these services.

The existing technical foundation made that expansion difficult. The web application's migration to Angular 19 had stalled before the engagement began. This was not a greenfield implementation; it was an in-progress upgrade affected by dependency conflicts and build failures. On mobile, the application was running on an outdated Flutter version without a global state-management layer, while its existing component structure made it harder to maintain consistent application state and extend the UI as new features were introduced.

Problem 1: An Angular Migration Blocked by Dependency Conflicts

The first challenge was an in-progress migration that could no longer move forward. The client's legacy repository had encountered dependency conflicts and build failures during its move to Angular 19, leaving the upgrade incomplete.

Tarento completed the migration from the existing codebase, resolving the dependency conflicts and build issues rather than reverting the application to its previous Angular version. This brought the web application onto Angular 19 and removed the technical issues that had been preventing the migration from progressing.

Problem 2: A Mobile Architecture Without Global State Management

The mobile application had no global state-management layer. Shared application state was therefore fragmented across screens, making state synchronisation and UI consistency harder to maintain as functionality expanded.

Tarento rebuilt the mobile application using a current Flutter SDK and introduced Riverpod for centralised state management. The new architecture provided a structured approach to managing shared state and asynchronous application behaviour.

The rebuild also introduced a custom design system based on Clean Architecture principles and Atomic Design methodology. Presentation, business logic and data access were separated into distinct layers, creating a clearer structure for maintaining and extending the application.

The entire mobile codebase was subsequently migrated to the new Riverpod-based architecture.

Problem 3: Manual Operations Were Slowing Platform Expansion

The third challenge was operational. Order reviews, booking modifications and customer notifications involved manual intervention, while the platform did not yet have a defined technical roadmap for the next stage of development.

Tarento introduced customer self-service capabilities that allowed users to modify bookings directly through the web application. A QR-code drive-up feature was also added to support automated gate access and payment.

The companion mobile application was rebuilt with real-time flight tracking and push notifications. For internal operations, a back-office platform provided direct control over pricing, occupancy and financial reporting.

Together, these capabilities reduced reliance on manual booking and operational processes while supporting the platform's expansion beyond parking.

A technical roadmap was also established to guide subsequent platform development and address the longer-term architectural requirements identified during the engagement.


The Result

100% of the mobile codebase was modernised to the new Riverpod-based architecture.

The completed web migration removed the dependency and build issues that had blocked the Angular 19 upgrade, while the mobile rebuild established a structured architecture for shared state, business logic and data handling.

The platform could now support parking, shuttle and hotel services within a unified booking flow, with self-service functionality available to customers and administrative tools supporting pricing, occupancy and financial operations.

Automated CI/CD pipelines were implemented through Azure Pipelines for both Android and iOS, providing a repeatable process for building and releasing the mobile applications.

The result was not simply an upgraded technology stack. The platform had a clearer architectural foundation for introducing additional services and extending the existing booking experience.

Why It Worked

  1. The stalled migration was completed rather than restarted. Tarento resolved the dependency conflicts and build failures within the existing Angular migration, allowing the application to move to Angular 19 without reverting to the previous version.
  2. The mobile architecture was rebuilt rather than incrementally patched. Riverpod was introduced as a centralised state-management layer, while Clean Architecture and Atomic Design provided clearer separation between presentation, business logic and data access.
  3. The booking experience was designed around a unified transaction. Parking, shuttle and hotel services were incorporated into a modular booking flow rather than being developed as disconnected experiences.
  4. Self-service capabilities addressed specific manual processes. Booking modification, QR-code drive-up access and payment were introduced to reduce the operational intervention required for common customer and gate-access workflows.
  5. The technical roadmap was established alongside the implementation. This gave the client a defined direction for future platform development rather than leaving architectural planning as a separate follow-up activity.

The key change was not any single technology upgrade. Completing the Angular migration, restructuring the mobile application, introducing centralised state management, and designing the booking experience for multiple services addressed the technical and operational constraints that had been making further platform development difficult.


Ready to Modernise a Platform That Has Outgrown Its Architecture?

If your platform is facing a stalled migration, legacy mobile architecture or growing complexity across services, talk to Tarento's Product & Platform Engineering team about modernising the foundation for what comes next.

Ready to Modernise Your Platform?

Tell us about your application, architecture or migration challenges. Our Product & Platform Engineering team can help you plan the next stage of modernisation.

By submitting this form, you agree to Tarento processing your data as described in our Privacy Policy.

< previous
Paradiset: Democratising Healthy Eating
Next >
Standardizing Master Data Across a Global ERP Landscape for leading water technology company
Next >
logo
Thor Bot Avatar