Remote Development Reinforcement for the Fitness Game-Changer, MyFitnessPal

Remote Development Reinforcement for the Fitness Game-Changer, MyFitnessPal

mfp

Platform

iOS, Android, Web

company image
  • Company Profile

    MyFitnessPal is the world’s most popular health and fitness app with an audience of more than 200 million users. The app helps to track calories, breakdown meal ingredients and log activities
  • Project Goals

    - Develop revenue related features
    - Grow media revenue through yield optimization and product enhancements
    - Enhance the tracking and logging experience within the MFP app
    - Improve the platform’s code health and encourage deeper user engagement
    - Integrate the settings of user permission for data processing to make the app GDPR and CCPA compliant
    - Deliver DevOps activities: automate the process of deployment with Kubernetes & Flux
  • Business Need

    - Grow subscriptions revenue
    - Optimize the internal development pipeline
    - Research and standardize the ads selection and display processes
    - Improve the user experience on searching food and nutrition analysis
    - Attract new customers during the COVID-19 pandemic
    - Optimize server costs and stabilize horizontal scaling of system and services
  • Engagement Model

    Outstaffing

  • Duration

    Since February 2019

  • Effort

    5 iOS developers, 5 Android developers, 2 Web developers, 2 DevOps engineers

Technologies Used

Development

  • swift
    Swift
  • SQLite
  • java-new
    Java
  • kotlin
    Kotlin
  • react-new
    React
  • obj-c
    Objective-c
  • ember
    EmberJS
  • ruby-new
    Ruby
  • omnigon
    Omnigon
  • storybook
    Storybook

DevOps

  • flux
    Flux
  • AWS (Redshift)
  • docker
    Docker
  • mysql
    MySQL
  • postgresql
    PostgreSQL
  • fastlane
    Fastlane
  • bitrise
    Bitrise
  • kubernetes
    Kubernetes
  • jenkins-new
    Jenkins

Challenges and Solutions

  • Working with legacy code, migration to Swift and switching to MVVM

    Despite the existing app being initially created with Objective-C, the requirement was to use Swift when implementing new features. Resolving incompatibilities and refactoring legacy code sections, our developers have done a tremendous job to keep on schedule. The keys to succeeding with migration were the ability to handle ever-shifting objectives and high responsiveness from both sides

  • Implement a new tool to simplify and speed up the old way of modifying public ads files

    The MFP team was unsatisfied with the long and expensive procedure, which required the input of both managers and developers. Sometimes what should be a simple and quick update took R several days to be applied. We introduced an admin panel for the ad specialists who don’t work with code. This allows the specialists to instantly modify public ad files without having to involve the developers

  • Slow interaction between graphic designers and developers

    By integrating with Storybook, we solved the issue of re-developing frequently used items for the web GUI. Later on, MyFitnessPal Storybook expanded and became relevant for other products, which were of the same brand

  • Remote teams and time-zone difference

    We used the “Game Plan” concept, which included an in-depth discussion and evaluation of the current and planned features before embarking on the implementation stage. It allowed us to achieve mutual understanding with the MFP team and actively resolve problems in the early development stage. Our “Context- message-options” request composition approach made it much easier to avoid the frustrating “ping-pong” communication model and reduced time delays

Results

Within a year the MyFitnessPal brand became an undeniable force in a fierce fitness app battleground. Since February 2019 our team’s engagement in their projects has grown twice. We successfully implemented onboarding screens, native upsell screens, price tests and many other features, which led to a rapid and steady increase in trial subscriptions and as a result - premium users. We achieved ad efficiency by implementing a 30-sec refresh rate for each impression, which boosted their revenue by several times.

results image

Want a similar project?