Client Snapshot: AMC Theatres, the largest movie theater chain in the world.
A team of Keyhole consultants works on the large-scale mobile development and modernization initiative from Xamarin to Flutter.
With Keyhole’s help, the client successfully added new features to two mobile applications implemented in Flutter and Xamarin. This effort led to an increase in client revenue and client satisfaction in which the client extended the duration multiple times.
Application Overview
The application is a customer-facing cross-platform mobile application that supports hundreds of thousands of users. The application is the client’s main customer-facing application that drives the majority of AMC’s ticket sales.
It provides features for moviegoer engagement, including movie research, purchasing tickets for in-person or on-demand movies, reserving private theatres, and purchasing food and beverages. It also handles member login and functionality for its rewards program. It is available on both Android and Apple App stores.
Technology Snapshot
The mobile application involved two separate code bases, a legacy mobile application implemented in Xamarin with C#/API and a newer application developed in Flutter with GraphQL. Keyhole Software consultants were actively involved in the development of both applications.
The client’s eventual goal is to transition the existing Xamarin mobile application completely to Flutter. However, as the new Flutter application is built out, the legacy Xamarin application must remain in working order.
As AMC Theatres is a long-time client, Keyhole consultants were part of the initial development of the legacy Xamarin application. The original Xamarin application was built using MVVM framework, with a significant amount of code written specifically for both iOS and Android.
The new application was written in Flutter with VS Code as the preferred IDE. GraphQL was used for data interfaces. The Flutter application was developed to leverage a more flexible language, Dart, and connect with an existing GraphQL implementation already in use by the AMC website application. The move to Flutter also allowed the client to tap into its current web resource pools as the Dart language is easy for most web developers to learn.
Key technologies used in this project include:
- Xamarin Native
- Flutter
- GraphQL
- Dart
- C#.NET
- VS Code / Visual Studio
- Urban Airship
- MVVMLight
- DevOps (BitBucket, Jenkins, Octopus, App Center, TestFlight)
- Xcode, Gitkraken, Android Emulators, and iOS Simulators
- Crashlytics
Keyhole Consulting Areas of Note
The Keyhole consulting team assisting this client worked as two separate smaller teams both mixed with web and mobile developers, which ensured clear cross communication as almost all requirements for the business applied to both platforms.
In addition to rewriting it into Flutter, the team worked to augment the Xamarin application. They added enhancements and improvements to the onboarding flow for new users to ensure all stages fell within the rules for the Google and Apple App Stores. They developed significant new functionality including Google Analytics tracking and the elevation of the application’s dealings with third-party apps, especially Airship, for in-application messaging.
Beyond enhancing the existing Xamarin application, the team of Keyhole consultants supported AMC’s team in its rewrite to Flutter. This project involved the development of many new features and the implementation of bug fixes. These included the addition of a method for users to renew AMC Stubs memberships, informative notifications throughout the application, elements enabling users to be “reminded” of upcoming movie tickets available for purchase, and semantics throughout the application that allowed QA to target screen elements in automatic UI test scripts running in Perfecto.
The team also supported enhancements in Flutter like a UI structure allowing users to compare different product tiers in AMC Stubs, improvements to help purchase flow, and enhancements to the movie and theatre search behavior. Additionally, they helped to implement Crashlytics, which reports all crashes and errors on the Firebase console. This made catching and fixing bugs significantly easier, which was also a large part of the Keyhole team’s duty. All in all, the Keyhole team significantly improved flow through the application.
Additionally, Keyhole Consultants offered mentorship and guidance to fellow client team members on application development best practices.
Project Results
The Statement of Work that the Keyhole project team worked through has been extended multiple times by the client.
This project is still in flight. As the client nears the release of this new Flutter application, Keyhole consultants continue to add, enhance, test, and bug fix.