Supporting more exercise equipment
Nov 27, 2020
In the previous blog post I went into technical details about bug fixing and user experience enhancements. One pink elephant in the room is iOS device support. Flutter gives me the power to spin out an iOS version, however this would require a MacBook Pro or at least a iMac. None of which I own and even a decent iMac is an expenditure, not cheap.
It’d be so great to port all functionality into a Progressive Web Application (PWA). PWA would allow off-line capabilities (so you could start it and record a workout even if you don’t have a data connection), it could act as a mobile app but I wouldn’t have to go through the hoops of App Store releases. The PWA could record the workouts into IndexedDB until they are uploaded or exported. However somehow the browser would have to break out of its sandbox and connect to the exercise equipment through Bluetooth Low Energy (BLE) protocol.
This is not far fetched idea with evergreen Chrome browser: Web Bluetooth support is required and it was already possible four years ago when I was presenting for GDG Fresno how to control the color of a smart LED candle from a web application. Web Bluetooth is about Bluetooth Low Energy (BLE) specifically but fortunately the exercise machines also happen to use this type of Bluetooth protocol. It’s important to note that BLE is not compatible with ANT+ or other Bluetooth protocols.
If we look at browser support of Web Bluetooth today then we can see that Chrome, Edge, and Opera are on board. Firefox, Safari, and most notably iOS Safari lack support though. Desktop Safari can be worked around by installing Chrome on MacOS, however iOS is tricky: it’s such a walled garden system, that all iOS browsers are basically just re-skinned versions of iOS Safari. Even if you install iOS Chrome it is in fact an iOS Safari inside.
Lately I came across interesting news: both Nvidia GeForce Now and Google Stadia will be available in a web application form on iOS. The most interesting part is that supposedly there’ll be a way to pair the game controllers through bluetooth. Say what? I thought that’s impossible. Well, it turns out that there can be a way: both Bluefy and WebBLE provide implementations of the Web Bluetooth API on top of WKWebView. I need to perform some tests if this can really work, but that could be a feasible way to cover iOS platform. In fact I know users who’d prefer their iPhones. The downside is that I’d need to port everything to TypeScript / PWA land, possibly this would be an Angular Web Component app, this would be a lot of work - therefore I have no timeline yet (but it’s a ticketed issue).
Lastly I want to expand the exercise equipment support of my app. I’m glad to see that more and more indoor bikes featuring smart consoles with Bluetooth connection are in affordable price range. I also noticed that these bikes are always selling some kind of a monthly subscription to some workout portal. Customers see that although they get a year or two of free subscription to these portals, one day that free period will expire. Even today some users complain that they do not want to participate in any class, they just simply want to record their workout and upload it to their preferred systems (Strava, Under Armour MapMyFitness, etc.). This is where Track My Indoor Workout) has a potential. I’m looking at bikes to get hold of so I can develop support for them:
- Inspire IC 1.5 Indoor Cycle, COSTCO MSRP $699, YouTube video
- ProForm Tour de France CBC Indoor Cycling Bike, COSTCO MSRP $384.99
- ProForm Sport CX Stationary Exercise Bike, Sams Club MSRP $399.98
- CYCLACE Exercise Bike Stationary, MSRP $375.00
- ProForm 500 SPX, Walmart MSRP $297.00
- ProForm Carbon CX, MSRP $599
- Spinner L1, MSRP $539.00
- Spinning P1 Spin Bike, MSRP $1,349.00
- Echelon Connect Sport, MSRP $497.00
- Echelon EX3 Connect, MSRP $650.00
- Other ProForm, Echelon, Precor, Schwinn, StarTrac models
- Cyclebar’s spin bikes: Schwinn AC Performance Plus with Schwinn MPower Echelon2 console. Competing with others and seeing yourself on the dashboard is fun, but I don’t want to lose super intense workouts in the ether. I can record my HR with my watch but I want cadence, power, speed measurements as well, synced to Strava as an activity of course. Supporting that will be a doozy one though: the MPower Echelon2 console is ANT+ capable only, that’s not Bluetooth compatible. We’ll need to use a bridge: the C.A.B.L.E. (Connect ANT+ to BLE) by North Pole Engineering. But there’s another gotcha: although the mobile market is covered 75% by Android and 25% by iOS there’s only iOS app to configure this ANT+ bridge. But once it’s configured it can be used by an Android device as well.
- Soulcycle studio bikes (if we are at spinning studio territory): these are Stages SC3 or Stages SC1 or SC2 with console. These are high price bikes, people could be still happy to have support for them. Les Mills RPM uses similar bikes as well.
- It’s heart wrenching to see Flywheel filing for bankruptcy, maybe their studio bikes will trickle down to auctions or other spinning studios. Their home bikeslooks to have an Echelon or Keiser M3i design. Looks like customers of the bike cannot use Peloton any more, so if they switch to Les Mills RPM and they still would like to record a data-rich workout then my app could be a savior.
- I wonder if any Peloton owners without a subscription would be interested for support.
I’d be curious to receive other candidate equipment to support. It can be even a treadmill or an elliptical machine if it has speed or distance data.