About the Client

A US-based health and wellness company.

The Challenge

The company's coaching mobile application has become a bottleneck to field productivity. Built on React Native 0.70 and written entirely in JavaScript, the app served a growing coach network but could not efficiently support the demands placed on it.

Outdated framework dependencies restricted access to modern performance improvements and ecosystem tooling. Across 2,500+ files, the absence of static type safety increased maintenance burden, raised the risk of runtime errors, and slowed the pace of feature development.

Coaches experienced the impact daily. Authentication averaged four to six seconds, a friction point that compounded frustration for users who accessed the app multiple times throughout their workday. Navigation through coach views, with nested filters and sort controls across every screen, was prone to lag and inconsistency.

Occasional crashes and screen freezes further eroded trust in the platform. The application also lacked the accessibility support required under the Americans with Disabilities Act (ADA) and Web Content Accessibility Guidelines (WCAG), limiting usability for coaches with diverse accessibility needs.

Key factors that posed a challenge included:

  • Outdated framework version, restricting stability, performance, and access to current React Native capabilities.
  • Untyped JavaScript codebase at scale, increasing debugging effort and reducing confidence in production releases.
  • Insufficient test coverage, with branch coverage at 68 percent, function coverage at 65 percent, line coverage at 72 percent, and statement coverage at 70 percent.
  • Slow and unreliable authentication, averaging four to six seconds per login attempt.
  • Accessibility gaps, preventing ADA and WCAG compliance across both Android and iOS.

Our Solution

The company engaged GSPANN to execute a structured React Native app modernization across four parallel workstreams: framework upgrade, language migration, quality engineering, and accessibility compliance. Unlike traditional sequential app modernization, GSPANN executed workstreams in parallel and no production incidents were recorded across the modernization window.

Our Approach

GSPANN followed a phased, parallel modernization methodology covering framework upgrade, TypeScript migration, quality engineering, and accessibility remediation. Each phase progressed through development, code review, automated testing, and validation, with merge gated on successful completion of the agreed quality checks. If a phase failed validation, the team remediated the issues and rolled back to the last stable state where required. Sprint sequencing and dependencies were jointly reviewed and agreed with the client’s engineering leads to support incremental delivery while maintaining production stability.

GSPANN content image

Engagement Timeline

The four workstreams ran across a few months, sequenced by dependencies and priorities agreed with the client's engineering leads. The accessibility remediation was released to production within that duration.

Framework Upgrade

The team upgraded the React Native framework from version 0.70 to version 0.79. This upgrade delivered improved rendering performance, access to current React Native APIs, and compatibility with modern ecosystem tooling unavailable on the legacy version.

The upgrade was sequenced carefully to avoid disrupting active sprint delivery, which required close coordination between the team and the client’s engineering leads. The upgrade entailed far more than a version increment of the React Native framework. Every dependent library had to be upgraded alongside the framework, and that was the most complex part of the workstream.

Version 0.79 introduced Hermes as the default JavaScript engine, resulting in faster startup times, reduced memory usage, and smaller bundle sizes. Metro bundler enhancements in React Native 0.79 accelerate build and CI/CD pipelines. The new Fabric, TurboModules, and JSI architecture enables smoother UI rendering and more efficient native module interoperability.

The upgrade also brought modernized debugging tooling, stronger TypeScript support, improved Android and iOS compatibility, and alignment with current React features.

JavaScript to TypeScript Migration

The team executed a phased migration of the entire codebase: 2,500+ files converted from JavaScript to TypeScript. Introducing strong static type safety across the application improved code reliability and reduced the risk of runtime errors. Improved editor tooling, consistent type contracts, and faster debugging cycles accelerated developer productivity. The migration was completed without interrupting ongoing feature work.

Login Optimization

Authentication had been a persistent friction point, averaging four to six seconds per attempt. The team redesigned the authentication flow, reducing login time to between 1.5 and 2 seconds. The new flow also strengthened security controls and improved session management, delivering a materially smoother experience for coaches who authenticate repeatedly throughout the day.

Test Coverage Improvement

The team identified and closed coverage gaps across unit and component tests using Jest and the React Native Testing Library. Coverage moved from under 70 percent to over 80 percent across branch, line, and statement metrics. The improved test suite reduced regression risk and increased confidence across the deployment pipeline.

ADA Accessibility Compliance

Accessibility improvements aligned with ADA and WCAG standards were implemented across both Android and iOS. Updates included screen reader compatibility, semantic labeling, improved color contrast ratios, and clearer focus management. A new visibility feature, a coach view with deeply nested navigation, multi-level filters, and sortable columns across every screen, was delivered with full accessibility support and is now live in production.

Feature Delivery Alongside the Modernization

Feature work continued throughout the modernization. The team delivered a centralized reporting experience with filtering, sorting, and search, a tracking and favourites capability for monitoring and tagging, pre-filtered views that shortened the path to frequently used data, and feature-flag based rollouts that separated deployment from release.

Our Learnings

Three factors proved especially critical to delivery success:

  • Parallel app modernization strategy: Framework upgrades, TypeScript migration, testing improvements, and accessibility remediation were executed simultaneously rather than sequentially, significantly reducing overall delivery timelines while maintaining production stability.
  • Cross-functional collaboration: A tightly aligned engineering structure, with continuous coordination between GSPANN engineers and client stakeholders, enabled rapid validation cycles and minimized disruption to active feature development.
  • Incremental risk mitigation: The phased migration approach, combined with continuous automated testing and sprint-based validation, reduced deployment risk, and prevented production incidents throughout the modernization effort.

Business Impact

  • Login performance: Authentication time reduced from four to six seconds to between 1.5 and 2 seconds, a reduction of about two thirds for coaches who access the app multiple times each day.
  • Code quality and maintainability: Migration of 2,500+ files to TypeScript improved code reliability by reducing runtime error risk, and enhanced developer velocity through static type enforcement and improved editor tooling.
  • Test confidence: Coverage moved from under 70 percent to over 80 percent across branch, line, and statement metrics, substantially reducing the risk of undetected defects reaching production.
  • Framework currency: The React Native app modernization from version 0.70 to 0.79 unlocked current platform capabilities, improved stability, and restored compatibility with the modern React Native ecosystem.
  • Accessibility compliance: Accessibility remediated against applicable accessibility standards across Android and iOS, expanding usability to coaches with diverse accessibility needs and reducing regulatory and reputational risk.
  • Faster delivery with lower operational risk: Parallel modernization reduced the overall delivery timeline against a sequential plan, with no production incidents recorded across the modernization window.

Related Capabilities

Modernize legacy mobile apps with performance, intelligence, and zero disruption.

GSPANN's Mobile App Modernization capability transforms legacy mobile applications by upgrading architecture, refreshing UI, and integrating AI and cloud services while preserving existing functionality. The approach begins with thorough business analysis and deep analytics, delivering improved performance, scalability, and user experience across both consumer and enterprise mobile platforms.

Related Services

Technologies Used

  • React Native (version 0.79)
  • TypeScript
  • Jest
  • React Native Testing Library
  • Visual Studio Code
  • Git
  • Jira
  • Android and iOS