iOS and Android Native Apps for Improving Training and Performance
Back to cases

iOS and Android native apps for improving training and performance

Trainers create personalized workout plans, and trainees have all the important statistics and analytics on cycling, running, and other activities at hand.

    Client

    Our client is an entrepreneur with an aspiration to improve athletes’ experience with technology. As an athlete himself, our client understood the importance of tracking physical activities to forge ahead. He created a web platform for athletes and trainers.

    The athletes can log their training workouts and upload data from their wearables. The trainers can assign activities to their trainees and keep track of their progress.

    Challenge

    The client was working on improving user experience and user retention and needed to boost user engagement with the platform and create a social setting for athletes and their trainers to interact daily. To address the client’s requirements, EffectiveSoft was entrusted with the tasks to:

    • Develop iOS and Android native apps with the ability to sign in with Garmin connectTM or Strava activity tracker accounts.
    • Create UI/UX design for mobile apps while maintaining the same look and feel as in the web app.
    • Build API and accommodate the web platform’s back-end to mobile apps.
    • Synchronize apps with the web platform for smooth data update and push notifications delivery.
    See also:

    Fitness Apps

    EffectiveSoft builds fitness apps that focus on the needs of professional athletes and amateurs. Our apps also provide assistance in workout, weight, and nutrition control.

    Solution

    The team created Android and iOS mobile apps, which allowed our client to simplify the interaction between trainers and athletes. With the help of the app, trainers can:

    • Manage the athletes they train and invite new members to the team.
    • Plan and assign workouts for trainees specifying various requirements (parameters), e.g. distance, intensity, etc.
    • Keep in touch with the athletes to discuss their workout plans and achievements.
    • Get notified when trainees complete exercises and training sessions.

    Native mobile apps

    Using the app, athletes can:

    • Track their sports activity calendar.
    • View statistics on recent activities.
    • Chat with the trainer and teammates (if any) in one-on-one and group chats.
    • Keep track of intensity using Training Stress Score (TSS) and Intensity Factor (IF).
    • Receive push notifications about a new activity assigned by the trainer.
    • Leave feedback on the assigned activity.
    • Mark the task as completed.

    API and adjustment of the back-end

    As the client’s existing back-end was suitable only for a web platform, our team reworked the back-end to optimize performance and enable interaction with mobile applications.

    Here are some important modifications and integrations we did:

    • To send real-time data from the server to app users, the team implemented SignalR components in the server-side and client apps and WebSocket protocol for interaction between them.
    • To provide convenient single sign-on (SSO), authentication through Garmin Connect and Strava accounts was plugged into the server-side.
    • To make web app data available to mobile users, API was adapted for mobile devices using the Backend for Frontend (BFF) approach.
    • To adjust server-side architecture for mobile apps, containerized stateful services were added using Azure Service Fabric.
    • To broadcast push notifications to app users, the Azure Notification Hub engine was integrated.
    • To safely store user data and provide seamless scaling, cloud Azure Storage was added.
    • To improve performance, data flow was modified by introducing an event processing model.
    • To send reports on achievements, an email provider was integrated.

    Tech stack

    • iOS app

      • Swift 5
      • Combine
      • MVVM
      • CoreStore
      • SnapKit
      • Charts
      • Moya
      • Apple Push Notifications
      • Firebase
      • Android NDK
      • Google Billing
      • Auth0
      • Stripe SDK
      • Google Maps
      • HealthKit
    • Android app

      • Kotlin
      • MVVM
      • Room
      • Retrofit
      • Coroutines
      • Firebase
      • Google Pay Services
      • Dagger
      • Rx Java
      • Android Jetpack
    • Back-end and API

      • C#
      • Cosmos DB
      • MS SQL Server
      • HTTPS
      • Web Sockets
      • Azure SignaIR
      • MediatR
      • Quartz
      • Azure Service Fabric
      • Azure DevOps
      • Azure SDK
      • Azure Notifications

    Contact us

    Our team would love to hear from you.

      Order an IT consultation

      Fill out the form to receive a consultation and explore how we can assist you and your business.

      What happens next?

      • An expert contacts you shortly after having analyzed your business requirements.
      • If required, we sign an NDA to ensure the highest privacy level.
      • A Pre-Sales Manager submits a comprehensive project proposal. It may include estimates, timelines, lists of CVs, etc., for a particular situation.
      • Now, we can launch the project.

      Our locations

      Say hello to our friendly team at one of these locations.

      Join our newsletter

      Stay up to date with the latest news, announcements, and articles.

        Error text
        title
        content