I understand the difficulty in providing good fidelity simulation with such an annoying plethora of devices but whether I can understand the difficulties or not the end result is still painful. I have recently written code to download workouts from a third party site. I re-invoke the original web request method on failure reported in the callback. Fine in the simulator. Not allowed on the device. Hours wasted. I now realise I need to poll a state machine to do achieve what is needed with a timer invoked method. But timers are not what they seem as they are not reliably garbage collected when stopped and no longer referenced. It is a recipe for the too many timers error. When these issues are added to the "error invoking <symbol>" with no stack trace and flaky in-line debugging developing becomes a pain. These issues have been around for years now. Do Garmin ever feel a little embarrassed about this underperformance when compared to the toolchain available for Watch or Wear OSs?