Mobile App Modernisation for Enhanced Learning

Sans is a leading provider
of cybersecurity training courses for many Fortune 500 companies. We’ve updated their app to meet modern standards and requirements

TIMELINE: SINCE AUGUST 2026 (ongoing)
COUNTRY: USA

About

About the project: Sans is a leading provider
of cybersecurity training courses that partners with Fortune 500 companies. TeaCode was entrusted with updating their mobile application to meet modern standards and feature requirements.

Result in short: We successfully modernized a legacy mobile application for Sans, improving its functionality and ensuring its compatibility with current operating systems and app store requirements.

Our team

Project Manager

Tech Lead

Developer

QA Lead

The Client
& The App

This approach included overhauling the existing codebase to resolve technical issues and adding features to enhance performance and usability.

Sans is a large and well-established company
in the cybersecurity training sector. They offer a range
of training solutions, including workshops and online courses. The company works with a significant portion of Fortune 500 companies.

The mobile app was created many years ago during
the COVID-19 pandemic to expand the availability
of online courses. It allows users to access cybersecurity training materials, including videos, slides, quizzes, and assignments. However, the app has become outdated and no longer met the compliance requirements for publication on the Google Play Store.

Our Role and Involvement

Sans brought TeaCode on board as a dedicated mobile department, responsible for managing every aspect of the mobile app.
Our mission was to enhance their mobile application, resolve compatibility issues, and ensure it met modern standards for
user experience and app store compliance.

Our primary responsibilities included:

Codebase Review

We conducted an in-depth analysis
of the provided codebase, focusing on new features like notes and bookmarks. 

Code Migration

Updating the codebase from Expo 40
to Expo 51 and React Native 64 to React Native 74. It was necessary to resolve compatibility issues and meet app store compliance requirements. We preserved and expanded end-to-end and unit tests
to maintain the application’s stability 
and quality.

Fixes and Enhancements

We addressed existing bugs and implemented improvements to enhance the overall user experience.

The Process

Effective collaboration between a developer and a QA lead is at
the heart of this project’s success. By working closely, both teams ensured smooth transitions between development, testing, and deployment, addressing issues proactively and maintaining a high standard of quality throughout.

1. Code Migration

The project began with a critical task: migrating the app’s codebase to the latest versions of Expo and React Native. This effort addressed breaking changes across 10 major versions, making it a complex and resource-intensive undertaking.

Challenges
  • Compatibility issues required meticulous debugging and adjustments.
  • Each migration step needed careful testing
to ensure stability.
Outcome
  • TeaCode’s expertise ensured a smooth migration, resolving critical issues and preparing the app for app store publication.

2. Quality Assurance Process

The QA process was integral to ensuring a stable and high-quality application. Our developers inherited
a robust QA framework, which they maintained and enhanced.

Our QA process ensures the delivery of a high-quality product by leveraging tools like Xray for test case management, Appium for mobile application automated testing, and Browserstack for comprehensive cross-platform testing on real devices.

Manual
and Automated
Tests

1

Exploratory Testing

The QA team familiarizes themselves with the application to identify potential bugs.

2

Automated end-to-end tests

Maintaining existing automated tests and developing new ones written in Python using the pytest library with Appium and BrowserStack, where the tests are run on real devices in the cloud.

3

Functional Testing

QA executes the prepared test cases and performs additional ad-hoc testing as needed.
The team verifies that all features work cohesively
and as intended.

4

Regression Testing

QA ensures that updates
do not disrupt any essential functionalities.

5

Release Candidate Testing

After fixing major issues, the release candidate undergoes rigorous testing.

6

Re-Testing Fixes

The team retests fixes for previously reported bugs
to ensure they are resolved.

7

Final Testing

The client performs the final round of testing before
the application is submitted
to application stores.

Ongoing

Bug Reporting & Expanding the coverage
of end-to-end tests.

Results

Strong collaboration was vital to the project’s success. Bi-weekly meetings with the client enabled a smooth workflow, fostering strong communication and alignment. Proactive improvements exceeded the initial project scope.

Successful Code Migration

The app was successfully updated to the latest versions of Expo and React Native, resolving critical compatibility issues and enabling app store publication.

  • Expo: Upgraded from version 40 to 51
(+11 major versions).
  • React Native: Upgraded from version 64 to 74
(+10 major versions).

Enhanced Performance

Bug fixes and code optimizations improved app stability and delivered a better user experience.

Iterative Development Process

Development followed an iterative approach, prioritizing the implementation of core functionalities, including the carbon footprint calculator, user registration, and authentication systems. Agile methodologies enabled continuous feedback loops, ensuring the evolving needs of users and technical requirements were consistently addressed throughout the development cycle.

Let's win your market together!

Tell us more about
your application

Contact us to discuss your app idea and possibilities. We’ll advise you on the best solution and estimate the project. If you have any questions – we’ll provide you with answers.

Let's talk!

Talk with Mark,
our Technical Solutions Manager

Write a message

mark.cameron@teacode.io

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.