AppFabric Mobile: Intuit’s Unified Mobile Platform

Waseem Syed
Intuit Engineering
Published in
5 min readOct 1, 2021

This blog post is co-authored by Waseem Syed, Staff Software Engineer, Muralidhar, Group Development Manager, and Kerry Kartchner, Principal Engineer in the AppFabric Mobile team at Intuit.

Intuit’s mission is to power prosperity around the world. Our mobile applications — including TurboTax, QuickBooks, Mint, and Credit Karma — serve approximately 100M customers. To deliver awesome mobile experiences for consumers, small businesses, and self-employed individuals, Intuit has built a robust, unified developer platform for the seamless sharing of common services and user experiences across apps.

Over many years, the release of new capabilities and features across product lines led to exponential application growth, prompting us to explore ways to scale them. With a goal to accelerate developer velocity and streamline the delivery of customer benefits, we embarked on a journey to create a unified AppFabric platform for all web applications at Intuit. As a foundational element of that journey, we set out to tackle the most pressing challenges facing mobile teams across Intuit.

In this blog, we’ll take a deep dive into how we achieved the following mobile app development outcomes:

  • Reducing duplication of work
  • Delivering personalized developer experiences with apps and widgets
  • Achieving scalable design and seamless integration across products and services
  • Increasing developer productivity

To illustrate our approach, let’s take a look at a couple of development team scenarios:

Use Case 1: Team A has built a “choose credit card payment” function. They brainstormed ideas, created the design, developed the module and screens, and integrated it within their app during this process.

When Team B needs to build a similar functionality, they would have to duplicate the process, resulting in disjointed customer experiences for the “choose credit card payment” feature across multiple apps. Now, imagine for a moment that five other teams need the same functionality in their apps!

Use Case 2: A team has created all the tooling and capabilities for a new module [e.g., logging, analytics, CI/CD (continuous integration/continuous delivery), real-time user monitoring, data layer, authentication, experimentation framework].

In this scenario, would another team want to recreate these capabilities for a new module? Obviously, the answer to that question is, “NO!”

These examples are typical of the challenges faced by Intuit customers and developers, and the impetus for building a unified mobile platform for all Intuit applications, across product lines.

AppFabric Mobile Platform

With our AppFabric Mobile platform, we have transformed our approach to mobile development here at Intuit, enabling developers and development teams to deliver innovative new products and services faster to customers. Foundational to our approach was decomposing mobile applications into smaller, reusable units of work called widgets. Mobile widgets are shared components with UI logic and associated services that can be quickly stitched together to create user experiences in existing products and/or brand-new offerings. Web widgets are developed for web applications using web technologies and can be easily configured and loaded in the embedded web browsers in mobile applications:

Reducing duplication of work

Shared widgets: A widget is now shared across various apps and teams at Intuit. A good example of this is the “choose credit card” widget, which allows customers to choose preferred banks and store credit cards. We’ve seen incredible growth in the sheer number of shared widgets at Intuit over the past two years, which has been helpful for both existing and new apps. We now have over 60 shared widgets that provide a wide range of functionalities to the apps and this number is growing.

Built-in capabilities: AppFabric Mobile’s built-in capabilities, such as logging, analytics, real-time user monitoring, A/B tests, etc., have streamlined the development process for a new app or a widget by providing a wide range of ready-made capabilities to choose from.

Delivering personalized developer experiences with apps and widgets

Personalized dashboards for logging, performance, real-time user monitoring, instrumentation, etc. eliminate the need to search through logs and help developers to identify issues faster.

Achieving Scalable Design and Seamless Integration

AppFabric Mobile facilitates faster and more independent development across Intuit. Widgets can integrate seamlessly into any app. This helps customers see features faster and enables teams to develop, test, and deploy experiences rapidly and independently. Consequently, our developers build experiences that are used across apps, rather than a feature that is limited to one app.

Increasing developer productivity

AppFabric Mobile makes the development and release process quick and easy, reducing the time required to create projects with common components from a few hours/days to a few seconds/minutes.

To create an app or widget, Intuit developers can simply go to the developer platform portal at Intuit and add a few simple details to auto-generate a project. The project comes loaded with built-in capabilities, tooling, CI/CD integration, and set up for an Amazon Device Farm (ADF) and Virtual Device Farm (VDF), etc. These capabilities dramatically increase developer productivity, freeing them up to deliver awesome user experiences faster to our customers.

Fostering a Culture of Collaboration, Unified Standards & Best Practices

Ultimately, our success with AppFabric Mobile can be attributed to Intuit’s company-wide commitment to collaboration across engineering teams — throughout the product development cycle — enabled by a set of unified AppFabric Mobile standards, best practices, and feedback loops.

For example, our request for comments (RFC) process — modeled after React RFC — enables developers to inner source their solutions to AppFabric Mobile. And, developers can participate in code jam sessions and easily view sample apps, documentation, etc. to stay on top of AppFabric Mobile capabilities. This has led to contributions from more than 100 developers across various teams.

AppFabric Mobile Platform: Key Takeaways

Over the past two years, we have reduced duplication by 50 percent with over 60 shared widgets and more than 25 ready-made capabilities and delivered personalized developer experiences quickly. The tremendous success of our micro frontend architecture for web applications at Intuit was a major source of inspiration and a contributor to these results. We’re proud of our accomplishments to date and committed to continuous innovation, as part of our overarching AppFabric Platform strategy to:

  • Promote reuse of experiences to share across the products and reduce the build of clones.
  • Stitch seams between products so a customer navigating from one product to the other does not have starkly different experiences.
  • Deliver complete platforms with out-of-the-box capabilities for operational excellence, developer productivity, and elimination of duplicate work.
  • Shorten release cycles to deliver delight to users faster.

Our journey continues — so stay tuned!

--

--