← Back to Case Studies

Viva Leisure Mobile Ecosystem

Led the design and development of large-scale, multi-brand mobile applications supporting daily member access, bookings, and payments.

Overview

I led the design and development of mobile applications across multiple consumer fitness brands within Viva Leisure Group, including Club Lime, Plus Fitness, and HIIT Republic. These apps were mission-critical, supporting daily member access, bookings, payments, and digital identity for hundreds of thousands of active users.

The work focused on building a shared mobile foundation that could support multiple brands while remaining reliable, secure, and operable under legacy backend constraints.

Problem & Constraints

The platform needed to support always-on, access-controlled mobile experiences across multiple brands and systems.

  • Always-available access: Mobile access failures directly prevented members from entering facilities.
  • Untrusted client signals: Location and device signals used for access validation could be delayed, inaccurate, or intentionally spoofed.
  • Legacy backend systems: Core APIs were built on non-modern platforms, limiting flexibility and consistency.
  • Multi-brand requirements: Each brand required custom behaviour and features while sharing a common codebase.
  • Security & compliance: As an ASX-listed organisation, the platform required strong security controls and disciplined release processes.

My Role

I acted as the lead mobile engineer with end-to-end ownership of the mobile platform.

  • Designed and implemented the mobile application architecture and shared foundations from scratch.
  • Owned NFC and location-based access flows and their reliability under real-world conditions.
  • Implemented and maintained Flutter applications with native platform integrations.
  • Owned release execution, quality gating, and hotfix coordination across multiple branded apps.
  • Worked within existing backend constraints while extending functionality through mobile-owned services.

System Design

The system was designed to maximise reliability on the client while minimising coupling to legacy backend services.

  • Clients: Flutter-based mobile applications with native iOS and Android integrations.
  • Access control: Location- and NFC-based access flows designed with conservative validation and fallback behaviour.
  • Backend integration: REST-based APIs provided by legacy systems; mobile-layer logic handled retries and resilience.
  • Mobile-owned services: Firebase used for non-business-critical features such as notifications, updates, crash reporting, and feedback tracking.

(Graph 1: simplified architecture diagram highlighting client-side responsibility)

Key Decisions & Trade-offs

  • Client-side resilience over backend changes: Designed defensive mobile logic to handle inconsistent or delayed backend responses.
  • Shared foundation with brand variation: Reused core architecture and components while allowing controlled brand-specific behaviour.
  • Defence-in-depth for access validation: Avoided relying on a single signal (e.g. GPS) to make access decisions.
  • Operational discipline over speed: Prioritised stability and predictable releases over rapid feature experimentation.

Outcome & Learnings

  • Scaled applications from early adoption to 600k+ users across brands.
  • Maintained reliable daily access for members using mobile-based entry.
  • Improved release consistency and reduced risk through shared architecture and quality gating.
  • Achieved strong user satisfaction, with flagship apps maintaining 7,000+ App Store reviews and a 4.8★ average.

Tech

Flutter · Native iOS/Android Integrations · Firebase · AWS