Legacy projects migration to Flutter with AI

An experiment in migrating a legacy Adobe AIR application to Flutter with AI.

Rewriting legacy projects from scratch has traditionally been considered one of the most expensive and high-risk undertakings in software development. As a result, countless applications remain "locked" into outdated ecosystems like Adobe AIR, Apache Flex, Cordova, or older versions of Xamarin, increasingly facing platform deprecation, store compatibility hurdles, and a shortage of specialized developers.

However, modern AI is fundamentally shifting the economics of legacy modernization. To measure real-world engineering effort and put modern AI assistants to the test, our team conducted a practical experiment by migrating a complete open-source Adobe AIR application to Flutter. As a result, the full migration of architecture, UI, and business logic took exactly one working day (8 hours).

For this proof of concept, we selected the open-source Pizza App, a mobile social application originally built with Adobe AIR (Starling Framework + Feathers UI) and a Firebase backend.

You can try it in your browser: pizza-app-air.web.app

Watch the side-by-side comparison in action: Adobe AIR vs Flutter

Pizza App Features

The application includes a comprehensive set of features:

  1. News Feed: dynamic browsing of community articles, announcements, and news.
  2. Pizzeria Finder: locating venues via GPS or text address using the Yelp Fusion API with filters for search radius and sorting.
  3. Business Details: view venue details, ratings, photos, reviews, and make direct phone calls to the venue.
  4. Themed Chatrooms (Real-time Chat): room selection and real-time messaging.
  5. Community Gallery: browse user-uploaded photos, view counts, like/voting system, and full-screen image viewer.
  6. Upload Photos: add custom photos directly from the camera or device gallery to the cloud.
  7. Authentication & Settings: sign in via Google using Firebase Auth and profile management.

The Role of AI: A Conversational AI-Assisted Rewrite.

For the Pizza App migration, we relied on an AI-assisted approach, a workflow where the developer orchestrates the process and validates the results, while the AI generates the bulk of the code:

  • Tooling: approximately 95% of the code was generated inside Antigravity powered by the Gemini 3.6 Flash model.
  • Performance: the model worked very efficiently, allowing us to iterate and test code changes at a highly productive pace.
  • Prompting Strategy: we started with a global high-level prompt to establish the overall project foundation (project structure, Firebase connectivity, navigation), followed by dedicated prompts for each individual screen.
  • Attention to Detail: we paid special attention to faithfully recreating the original graphics, visual aesthetics, and animations as closely as possible to the original application.

Key Challenges Encountered

  • Animations & Transitions: Replicating the complex card transitions was by far the biggest challenge. Getting the right smoothness and timing in Flutter took several rounds of prompt tuning.
  • Font Weight and Rendering: Due to inherent differences between the AIR and Flutter text rendering engines, we were unable to achieve 100% pixel-perfect fidelity in font weights. Nevertheless, we considered this a minor trade-off.

The Next Step: Moving Towards an AI-Driven Rewrite

While our migration was successful using an AI-assisted approach (where the human manually orchestrates prompts and visually verifies results), the industry trend for legacy modernization is rapidly shifting towards a fully AI-driven approach.

In an AI-driven migration, the human is removed from the immediate feedback loop. If we were to automate this process further, an AI-Driven pipeline for the Pizza App could include the following steps:

  • Automated Feedback Loops: Instead of a developer manually checking the UI emulator and writing clarifying prompts, we could deploy an autonomous agent. The agent would generate code, run automated tests, read the error logs, and self-correct its own code until all tests pass and the feature is fully functional.
  • Agentic UI Exploration: Unlike backend migrations where business logic can be fully covered by automated tests, cross-platform UI migrations involve rendering engine transitions that inevitably create visual micro-discrepancies. To bridge this gap, an autonomous agent could employ Agentic UI Exploration. By connecting to the running application and utilizing Multimodal Vision LLMs, the agent can dynamically navigate the app, interact with elements, and semantically compare the rendered screens against reference designs. This allows the AI to iteratively adjust the layout until the overall appearance matches the original design, without failing on microscopic rendering discrepancies.
  • AI-Generated Test Harness: Before migrating the logic, the AI could be tasked with writing a comprehensive suite of unit and integration tests based on the legacy codebase. This test suite would then serve as the absolute source of truth to validate the new Flutter implementation.

As the industry moves towards an AI-driven approach, we can expect the developer's role to increasingly focus on defining initial test constraints and reviewing the final architecture, while the AI handles the iterative execution and code refinement.

Links & Resources

Summary

This experiment demonstrated that migrating legacy applications to Flutter using modern AI tooling is entirely achievable within a matter of days. By leveraging AI for iterative design improvements while maintaining architectural control, developers can turn a complex, multi-month migration into a fast and manageable process.

However, a successful migration doesn't end with code generation. Extensive testing remains an essential step to ensure production readiness. Fortunately, AI tooling can accelerate this critical phase as well by helping generate comprehensive unit, widget, and integration test suites.

As Flutter development experts at Solid Software, we see both AI-assisted and AI-driven workflows as a natural extension of our engineering practices. Whether we are building complex custom applications from scratch or helping modernize legacy systems, combining human expertise with advanced AI tools allows us to deliver robust solutions faster. The era of being locked into outdated platforms is officially over.

LinkedIn
Facebook
Telegram
Phone

News Subscription

News Subscription

Your subscription request has been successfully completed!
article page figure
Oops! Something went wrong while submitting the form.
Social links:

Subscription

Subscription

Your subscription request has been successfully completed!
article page figure
Oops! Something went wrong while submitting the form.
Next article:
Start of Mobile Native Foundation
#
announcement
Start of Mobile Native Foundation

Today we are happy to announce that we are joining Mobile Native Foundation.

eye icon
5
mins
2021-07-23
Solid Software is the official Flutter Consultant
#
announcement
Solid Software is the official Flutter Consultant

Solid Software achieves a milestone by being recognized as an Official Flutter Consultant, highlighting our remarkable five-year journey at the forefront of Flutter development.

eye icon
2
mins
2024-02-21
Announcing Solid Lints 1.0.0
#
announcement
Announcing Solid Lints 1.0.0

Solid Lints 1.0.0: A Major Milestone for Dart & Flutter Quality in the AI-Native World

eye icon
5
mins
2026-07-30
Solid Software in the Flutter for web Early Adopter Program
#
announcement
Solid Software in the Flutter for web Early Adopter Program

We are happy to announce that Solid Software was selected to be a part of the Flutter for web Early Adopter Program!

eye icon
10
mins
2021-07-23