Case Study: Apple Watch App Development for Instructor Workout Timer (watchOS) Apple Watch companion app development for fitness iOS app. Native watchOS app with real-time timers, haptic feedback, WatchConnectivity sync, and hands-free instructor controls.

Apple Watch Companion App Development

At Adequate Infosoft, we delivered Apple Watch companion app development for a fitness-focused iOS application, transforming it into a seamless wearable experience.

For this project, we developed an native watchOS app which included real-time workout timers, haptic feedback, and reliable synchronization with the iPhone.

The result is a production-ready solution designed for instructors, enabling hands-free control and improved workout flow.

Client: Eric, Routines App (Via Base44)

Original Platform: Mobile app (Via Base44)

Target Platform: Apple Watch (watchOS 10+)

Type of Project: Companion app development + Sync data

Approx Timeframe: 2 months

Final Product: A production ready watchOS application with its own timer, haptic feedback, sync capability with an iPhone, and designed for the end user.

Apple Watch Companion App Company

1. Introduction and Background

1.2 Existing iOS Routine Application

The Routine application is an exercise timer developed for fitness instructors to assist them in learning how to teach. This tool allows them to time when to verbalize the cue to the student, when to conduct the routine segment, and when to ramp up their teaching skills. This V1 application has the following primary features:

  • Timer with configurable intervals (like the Seconds application).
  • Intervals that have been named (such as "30s warm-up," "10s practice," etc.)
  • A way to create the routine by dragging items and dropping them into the appropriate sequence.
  • Voice cues that allow for voice-based announcement of the interval label.
  • Playlists from the user's Apple Music Library that can be played.
  • Performance analytics (timing accuracy and pacing of the verbal cues).

The problem: Instructors cannot hold their iPhone while teaching. They need a glanceable, hands-free device on their wrist.

1.2 watchOS Requirements

RequirementPriorityRationale
Display current interval name + timer Critical Instructor needs to know what cue comes next
Vibrate/haptic at interval transitions Critical Silent alerts when hands are busy
Control playback (start/pause/skip) High No phone interaction during class
Sync routines from iPhone High Build on phone, use on watch
Standalone operation (no phone needed) Medium Some instructors teach without phone nearby
Heart rate display Nice-to-have Effort monitoring for instructor

2. Technical Architecture

2.1 Platform Constraints & Solutions

ChallengeSolution
Base44 has no watchOS export Built native watchOS app from scratch in SwiftUI
Sync between Base44 backend and watch Used WatchConnectivity framework (peer-to-peer)
Watch cannot run Base44's JS runtime Reimplemented timer logic natively in Swift
Offline support Routine data cached on watch using Core Data

Why WatchConnectivity instead of cloud sync:

  • Very Low Latency (Measured in Seconds Too)
  • Works without an Internet Connection (Most Gyms Do Not Have Good Wi-Fi)
  • Your Phone is Usually Less Than 10 Metres Away from Your Instructor

2.2 Data Flow Architecture

Data Flow Architecture

(Architecture diagram placeholder)

Sync protocol design:

  • When an iPhone app is saving a Routine, it calls updateApplicationContext() on a WCS.
  • The Watch receives a layout and deserializes it from JSON into Core Data.
  • The Watch returns an acknowledgement back to the iPhone indicating that the Routine is now "synced".
  • The Watch can also send back to the iPhone (via bluetooth) the session logs for all of the intervals that were completed along with the timestamps.

2.3 watchOS App Structure

ComponentTechnologyPurpose
UI Layer SwiftUI Interval list, active timer view, controls
Logic Layer Combine + ObservableObject Timer state machine, haptic scheduling
Data Layer Core Data + Codable Routine caching, sync conflict resolution
Comms Layer WatchConnectivity iPhone ↔ Watch data sync
Background WKExtensionDelegate Keep timer running during wrist-down

3. Core Feature Implementation

3.1 Timer State Machine (Critical for Instructor Use)

The timer needed to support the same flexibility as the iOS version:

Interval TypeBehaviorExample
Fixed duration Counts down from N seconds "Hold plank – 30s"
Variable/instructor-paced Advances only when tapped "Explain move, tap when done"
Repeat block Loops a sub-sequence 3-5x "Demo L/R (repeat 3x)"
Rest/pause Counts down, optional skip "Rest 15s"

3.2 Haptic Feedback Design (Silent Instructor Alerts)

This was the most critical instructor-facing feature. Instructors cannot look at their watch during complex movements; haptics provide the cue.

EventHaptic PatternFallback (if disabled)
New interval starts .start (short tap) None
Last 3 seconds of interval .threeCount (tap...tap...tap) None
Interval completes .success (two taps) Taptic Engine
Instructor-paced interval (waiting for tap) None (silent) Watch face does not dim
Routine finished .notification (double tap + hold) Sound (optional)

3.3 Voice Cues (Text-to-Speech on Watch)

The Apple Watch TTS functionality is limited in regard to the usage of the iPhone with TTS.

To solve this problem, we implemented the following:

  • With short labels such as "Warm up", and "Squat", the watch will speak through an AVSpeechSynthesizer (the watchOS default).
  • For longer and more complex cue text, the watch will play a pre-recorded audio file previously synced to the iPhone.
  • Users also have the option of disabling voice cues through their watch (a different setting than through the iPhone) if they choose.

3.4 Standalone vs Tethered Operation

ModeCapabilitiesBattery impact
Tethered (phone nearby) Full sync, music control, voice cues from phone Low (watch uses phone's processing)
Standalone (no phone) All timer functions, haptics, cached routines only Higher (watch does all work)

Transition logic: Watch checks phone proximity every 30 seconds. If phone found, offloads TTS and music control. If not, falls back to standalone mode seamlessly.

4. User Interface Design for watchOS

4.1 Watch-Specific UI Considerations

Watch ChallengeSolution
Small screen (45mm or 49mm max) Large, bold interval names (system font, dynamic type)
Glanceable while moving High contrast (black background, neon green timer)
Sweaty/wet fingers Minimal touch targets, crown scrolling as alternative
Crown rotation Map to interval navigation (rotate crown to skip ahead/back)

4.2 Main Watch Views

Active Timer View (primary, shown 90% of time):

Active Timer View

(Timer view placeholder - large interval name, countdown timer)

Next Interval Preview (small text above controls): Up next: Demo left side

Interval List View (crown-scrollable):

Interval List View

(List view placeholder)

4.3 Complications & Glances (for watch faces)

The app provides complications for fitness-focused watch faces:

Complication TypeDisplayUpdate frequency
Modular Small Next interval name On interval change
Corner Countdown timer (minutes only) Every 30s
Circular Status icon (active/paused) Real-time

5. Integration with Base44 (Backend Constraint)

5.1 Base44 Issues

Eric's iOS application is built on a no-code/low-code platform called Base44. However, the Base44 platform does not provide export capabilities for watchOS. Base44 applications are simply web views packed within an application shell and contain Web Javascript logic.

Solution: Create a native watchOS application that utilizes WatchConnectivity to communicate with the Base44 iOS application, rather than using Base44's backend APIs.

5.2 Data Serialization Between Platforms

Native Swift bridging layer (added to Base44 iOS app wrapper) captures these messages and forwards to WatchConnectivity.

5.3 Sync Conflict Resolution

Sync conflict resolution will be accomplished using a last-write-wins logic combined with a semantically merging routine as follows:

  • Store the time stamp associated with every routine by device
  • When a user reconnects, the application will be able to compare those time stamps for the conflicting routine(s)
  • If there is a conflict on the same routine, present the user with the option of which routine to keep (each device will show a different view and provide the user with a choice)
  • Default action will be the phone version of a routine overwriting the watch version (because the phone is the primary authoring device)

6. Testing & Validation

6.1 Real-World Instructor Testing

We recruited 5 fitness instructors (yoga, HIIT, spin, pilates, bootcamp) for 2-week beta testing.

MetricBefore (iPhone only)After (with Apple Watch)
Looking at device during class ~40 times/class ~5 times/class
Missed verbal cues ~8/class ~1/class
Student feedback on flow "Sometimes choppy" "Seamless"
Instructor confidence (1-10) 6.2 8.9

6.2 Battery Life Testing

ScenarioWatch ModelBattery drain per hour
Tethered (phone nearby), screen mostly off Apple Watch 8 8%
Standalone, screen always on Apple Watch Ultra 2 15%
Tethered, active GPS (outdoor run) Apple Watch 9 18%
Idle (no routine active) Any 2%

Conclusion: A typical 60-minute class consumes 8-12% battery, well within even the oldest Apple Watch's capacity.

6.3 WatchOS Version Compatibility

watchOS VersionSupportedNotes
watchOS 10+ ✓ Full All features (including complications)
watchOS 9 ✓ Limited No voice cues, reduced haptic patterns
watchOS 8 Minimum target is watchOS 9

7. Deliverables Summary

DeliverableDescription
watchOS app Native SwiftUI app, compiled for App Store distribution
iOS app extension Bridge code added to Base44 iOS wrapper (WatchConnectivity layer)
Sync protocol spec Documented JSON schema for routine serialization
User guide 5-page PDF for instructors (how to sync, use complications, haptic meanings)
App Store assets Screenshots, preview video, watchOS icon set
TestFlight beta Ready for 10,000 external testers

8. Timeline (4 Months)

  • Month 1: WatchConnectivity prototype, routine sync working, basic timer UI, Full timer state machine, haptic patterns, voice cues, complications
  • Month 2: Standalone mode, beta testing with 5 instructors, bug fixes, App Store submission preparation, TestFlight, final polish

9. Lessons Learned & Future Roadmap

9.1 What Worked Well

  • The decision to develop a haptic-first design was great, instructors appreciate being able to have a way to not only provide direction to each other, but also do so silently.
  • Crown style navigation for skipping intervals felt very natural after just one class experience.
  • As a stand-alone mode, instructors had better than expected results; most leave their phones locked in the locker without any problems.

9.2 What Would Add Value in v2

FeatureComplexityImpact
Live heart rate display on timer screen Low Medium (effort visualization)
Siri Shortcuts ("Start my warm-up routine") Medium High (hands-free starting)
WatchOS 10 Smart Stack widget Low Medium (quicker access)
Sync workout logs to Apple Health Medium High (student-facing value)
Live Activity (iPhone Dynamic Island) Low (iPhone side) Medium (phone-as-secondary display)

9.3 Base44 Specific Lessons

  • There is a way to create JavaScript-to-native bridges but it is VERY difficult. A specific wrapper is needed. Without a wrapper, Base44 will not work.
  • The recommended future solution is to MOVE all timers out of the Base44 into a separate/shared CORE/switft package so that Base44 handles only non-real-time functionality (analytics and user management).

10. Conclusion

Apple Watch companion app was completed on time, giving trainers the ability to teach without the use of their hands, by giving them both silent haptic feedback and an easily viewable timer. Base44 was able to overcome their lack of support for watchOS through a fully developed native application for watchOS that utilized a custom bridge built on WatchConnectivity.

Key outcomes:

  • No more instructor interruption: teachers won't be looking at their phones anymore
  • Enhanced cue timing: haptic feedback provides precise synchronization of verbal cues
  • Energy efficient: A typical one hour class will use under 10% of the battery life of a modern smartwatch
  • Market ready: An application is set for App Store release in the summer per request

With the new watchOS application, the Routines Assistant has evolved from a "mobile" solution to an actual physical teacher aide and solves the single largest issue teachers face which is keeping their hands on their students.

Technologies used: SwiftUI, WatchConnectivity, Core Data, Combine, AVSpeechSynthesizer, WKHapticType, Xcode Cloud (CI/CD for watchOS)

App Store readiness: 100% Screenshots, privacy manifests, watchOS icon set, TestFlight build uploaded.

What Our Clients Say About Us

Client satisfaction is our ultimate goal. Here are some kind words of our precious clients they have used to express their satisfaction with our service.

Leadership That Leads Worldwide

With a physical presence in over 15 countries and a global footprint spanning 25+ countries, we are ready to serve you anywhere. Location, language, or culture is never a barrier, because our global team can work with you in your language. Our strong international team ensures seamless collaboration across borders We have a strong tech team, highly recognized in their domains, with extensive technical expertise.