Push2Commit
Book a Call

Case study · GoPilates

A native Pilates app for iPhone, Apple Watch and Android

GoPilates is a French-first Pilates subscription app for women, live on the App Store and Google Play since 2026. Push to Commit built it natively for both platforms.

  • Available on the App Store
  • Available on Google Play
Platforms
iOS, watchOS, Android
Stack
SwiftUI · Kotlin + Jetpack Compose
Client type
Consumer subscription app
Status
Live since 2026
Our role
Native app development

The product and its users

Pilates in French, on the devices women already carry

GoPilates is a subscription app for women who want to practise Pilates, designed French-first. Users subscribe inside the app on iPhone or Android.

On Apple devices, the app uses HealthKit, runs on Apple Watch and shows Live Activities. On Android, it uses Health Connect.

GoPilates is a client project. Push to Commit built the apps; the client owns the product. The source code is private, so this page shows no code or internal details.

Native architecture

Two native apps, each using its own platform

The technology on each side, and what it does for the user.

iOS and watchOS

SwiftUI
  • SwiftDataData stored on the device, so the app can work without a connection.
  • CloudKitiCloud sync across a user's Apple devices.
  • HealthKitApple Health integration, with the user's permission.
  • watchOSAn Apple Watch app on the user's wrist.
  • Live ActivitiesLive status on the Lock Screen and Dynamic Island.
  • RevenueCatApp Store subscriptions and entitlements.
  • Xcode CloudAutomated builds and distribution for iOS.

Android

Kotlin + Jetpack Compose
  • Jetpack ComposeA native Android interface, written in Kotlin.
  • Health ConnectHealth data on Android, with the user's permission.
  • RevenueCatGoogle Play subscriptions, in the same subscription setup as iOS.
One product, two native codebases

Engineering decisions

The choices behind the build

  1. Native on both platforms

    HealthKit, Apple Watch and Live Activities are first-class on iOS, and Health Connect is the Android equivalent. Building natively lets each app use its platform's health and system features directly.

  2. One subscription layer for two stores

    RevenueCat sits between the apps and both stores, so a user's subscription status is handled the same way on iPhone and Android.

  3. Offline-ready data with iCloud sync

    On iOS, SwiftData keeps data on the device and CloudKit syncs it through iCloud, so the app can keep working without a connection.

  4. Two codebases, one product

    Separate native codebases mean two release tracks. Shared product decisions and a common subscription setup keep the apps aligned.

Release and distribution

From commit to two stores

  1. Phase 01

    Build

    Xcode Cloud builds the iOS app automatically.

  2. Phase 02

    Test

    Builds are tested on iOS and Android before release.

  3. Phase 03

    Submit

    Store listings, privacy details and review on the App Store and Google Play.

  4. Phase 04

    Live

    Available on both stores since 2026, with updates shipped through the same pipeline.

What it shows about us

Native depth, on both sides of the store

  • 01Two native codebases, shipped. SwiftUI on iOS and Jetpack Compose on Android, both live in the stores.
  • 02Subscriptions across both stores. One subscription setup through RevenueCat, on the App Store and Google Play.
  • 03Platform features past the basics. Health data, Apple Watch, Live Activities and iCloud sync, in a production app.

Want a native app like GoPilates? Let's talk.

MVP in about 1 week, production-ready V1 in about 12. Tell us the app and we'll send a tailored quote.