watchOS App Development for Apple Watch

watchOS App Development for Apple Watch A client ordered a workout tracker for Apple Watch with data sync to iPhone. The first version lost up to 5% of records because `WCSession.sendMessage` worked only when the app was active, and `WKExtendedRuntimeSession` wasn't configured. We redesigned the

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
watchOS App Development for Apple Watch
Complex
~1-2 weeks

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

watchOS App Development for Apple Watch

A client ordered a workout tracker for Apple Watch with data sync to iPhone. The first version lost up to 5% of records because WCSession.sendMessage worked only when the app was active, and WKExtendedRuntimeSession wasn't configured. We redesigned the architecture: used HKWorkoutSession for unlimited background and transferUserInfo for guaranteed delivery. Data loss dropped to 0.01%. The app now handles up to 1000 workouts per day without failures.

A watchOS app is a separate target with its own lifecycle, limited resources (512 MB RAM on Series 4, 1 GB on Series 9), and specific patterns. We use SwiftUI, Combine, and async/await for a reactive architecture. Average development time is 2–4 weeks for a comprehensive solution. When setting up code signing for watchOS, separate provisioning profiles are required — a common mistake for beginners. We strongly recommend testing complications on real devices, as the simulator doesn't reflect actual performance and power constraints.

Each project starts with a deep analysis of use cases: will the Watch work standalone or as a companion app? This determines the sync mechanism. Among our projects are fitness, meditation, and smart home apps, each with a unique architecture. We specialize in watchOS for over 5 years and have shipped 20+ apps to the App Store. Order a turnkey watchOS app development — from idea to App Store publication.

How to Ensure Data Delivery During Sync?

WCSession is the communication channel between apps on iPhone and Watch. Not between devices, but between apps. Three data transfer mechanisms:

Mechanism When it works Speed Delivery guarantee Typical use
sendMessage Both apps active Instant No (if Watch goes to sleep) Commands, data requests in foreground
updateApplicationContext Any state (incl. background) On next wake Yes, overwrites Current state (workout, settings)
transferUserInfo Any state In order, with delay Yes, queued Event logs, transactions

WatchConnectivity via sendMessage is 10x faster than updateApplicationContext, but requires the app to be active. For background delivery — only updateApplicationContext or transferUserInfo.

WCSession.default.sendMessage(["action": "fetchData"], replyHandler: { reply in // Response from iPhone }, errorHandler: { error in // Handle error (Watch unavailable) }) 
try WCSession.default.updateApplicationContext(["lastSync": Date().timeIntervalSince1970]) 

If the app is active on both devices — use sendMessage for immediate response. For state sync in background (e.g., current workout metrics) — updateApplicationContext. For event queues — transferUserInfo. Checking WCSession.default.isReachable is asynchronous: always handle errorHandler.

Why Do Complications Drain the Battery?

A common mistake is updating the timeline too often or fetching network data. Optimal solution: update timeline once per hour, use HealthKit for local data. To save power, follow Apple's recommendations on update frequency limits.

Complications are elements on the watch face. ClockKit (deprecated) → now WidgetKit, similar to iOS. ComplicationConfiguration via WidgetConfiguration — the same API as iOS widgets. Families: .circularSmall, .modularSmall, .modularLarge, .utilitarianSmall, .utilitarianLarge, .graphicCorner, .graphicBezel, .graphicCircular, .graphicRectangular, .graphicExtraLarge. Timeline in Complication works like iOS WidgetKit: TimelineProvider, pre-filled TimelineEntry. The watch knows what to show for the next few hours — saving battery. CLKComplicationDataSource.getPrivacyBehavior — what to show on the locked watch face. hideOnLockScreen — hide data, show empty complication.

Background Modes on watchOS

WKExtendedRuntimeSession — up to 60 minutes of background work for specific scenarios:

  • workout — unlimited time with active WorkoutSession
  • selfCare — meditation, breathing exercises (up to 10 minutes after screen off)
  • alarm — alarm (requires user permission)
  • sleepTracking — sleep tracking (overnight)

For workout tracking: HKWorkoutSession + HKLiveWorkoutBuilder — official API. Without HKWorkoutSession, the system aggressively kills background processes. Network requests in background via URLSession with background configuration are not supported — data only via iPhone (WatchConnectivity) or on next foreground launch.

Technical detail: setting up WKExtendedRuntimeSession

To start, you must call start() and specify the type. Important: the session requires explicit invalidate() after completion, otherwise it will run until timeout. Example:

let session = WKExtendedRuntimeSession() session.start(with: .workout) // ... session.invalidate() 

UX Considerations

The screen is small: Series 4+ — 44mm (368×448pt retina). Minimum touch target — 44pt. List rows without complex hierarchy — preferred navigation. Digital Crown — scroll content, zoom in MapKit, input values via Stepper or custom Picker styles. onLongPressGesture — works, but requires 0.8 seconds by default — often accidental triggers. Haptic feedback via WKInterfaceDevice.current().play(.click) — an important UX element where visual feedback is limited.

What's Included in watchOS App Development

  • Architecture design: shared code with iOS, dedicated watchOS target.
  • WatchConnectivity setup: choose the right mechanism for your scenario.
  • Complication implementation: support for 5+ families, timeline configuration.
  • Integration with HealthKit / CoreMotion / other sensors.
  • Testing on real devices (Series 4, Series 9, Ultra).
  • App Store preparation: provisioning profiles, code signing, icons.
  • Documentation on sync and background tasks.
  • 1-month warranty support after publication.

Timeline and Cost

Full-featured watchOS app with WatchConnectivity and complications — 1–2 weeks. Simple companion app (no own logic) — 3–5 days. Cost is calculated after requirements analysis. Order a free consultation — we'll assess your project. Contact us for details.

We have been in mobile development for over 5 years and have shipped more than 20 apps to the App Store. Our solutions work reliably — we guarantee compliance with App Store Review Guidelines and performance recommendations.

Get a free engineer consultation — contact us for a detailed project assessment.