It's certainly been a whirlwind last few months for our travel companion app ETA.
In June we revealed a refined look and feel along with an app for Apple Watch. In September we added support for public transit which added tremendously to the functionality of the app. Our September release also heralded a handy complication for Apple Watch, providing travel time right on the watch face.
When the Apple Watch was announced we knew ETA would be a natural fit. Ever since launch customers have loved the power of having vital information of their pending commute available at a flick of their wrist.
However, since our September launch we’ve received a steady stream of comments via our support channels (email and Twitter) and through the App Store (yep - we’re reading those 1 star reviews) that the Apple Watch app isn’t performing to expectations. Specifically that the complication shown on the Apple Watch watch face displays incorrect data in a number of scenarios.
We’ve been feverishly working to improve the app over the last few months including the release of a number of updates. While these updates were an improvement for most, we couldn’t successfully fix it for all users. Behind the scenes we’d been working with our active beta group releasing and testing builds. Again, although each build was an improvement on the last unfortunately we couldn’t reach a perfect solution. In it’s technical design we couldn’t get the complication to update in the background and work flawlessly in every scenario.
A few weeks back we put the breaks on that course of development to determine if there was something architecturally wrong with the ETA watch app.
We went back to the drawing board with the attempt to find a reliable, lightweight, battery efficient, background updating solution. The great news is we’re confident we’ve found an approach that’ll work. The bad news is that it’s going to require a restructure of the core of both the iOS and the Apple Watch app. This unfortunately, as you can imagine, will take some time.
We didn’t take the decision lightly as it’s not ideal to have an under performing app being sold on the store. So now that we’re at this crossroad we thought it prudent to take this opportunity to communicate more on the issue. Specially, to provide detail on the problem, what is going to take to fix it and when you should expect to see it available in the AppStore.
Before we do dive into the issue we want to assure you, our users, that the problem will be resolved. I’m not sure it needs to be said but this fix will obviously arrive to all existing users via a free update. As always, if you’re not at all happy with your purchase then please obtain a refund.
As per Apple’s guidance ETA’s complication updates twice per hour. Apple enforce a daily budget for all third-party complications to ensure battery life is preserved and all of a user’s complications can run throughout the course of the day.
When ETA’s scheduled update is triggered in the background, the watch app connects with its iOS parent app and performs what is known as a ‘Background Fetch’. This process determines your current location and calculates the travel time to your set destination. The issue at hand is that while we’re asking watchOS (well actually iOS on the paired iPhone) for a current location we’re not always given it. We’re often given a cached location from earlier in the day. The frustration for us came with the fact this issue was difficult to replicate. It randomly appeared for some users in irregular patterns.
Receiving a cached, slightly inaccurate location might be fine for some watch apps that just need an approximate location. But with ETA this flaw is heightened as we require a precise, to the metre (or yard) location to calculate a usable travel time.
Our research on the issue took us back to advancements in iOS 7. At that time Apple unveiled a habitual learning feature that monitored the apps you use at certain periods of the day. Over time this monitoring revealed usage patterns which iOS applied to its allotment of background resources. For example, Instagram would be given background priority at 6am so its core feed of images would be updated, ready for the user to access when they woke up. This feature has been extended in iOS 9 to offer users proactive suggestions on the lock screen aligned with the time of day they commonly use the app.
Unbeknown to us, iOS’s intelligence posed a problem for our background fetch. If our user only used ETA in the mornings then our complication update wouldn’t update outside that time. If the user only used the watch app, not the iOS app, then the background fetch would rarely run at all. Given the infancy of watchOS this ‘habit learning’ feature is yet to exist on that platform.
The future is clear and we’re full steam ahead with the restructure of ETA incorporating a push based background updating engine.
Push notifications have always been on the horizon for ETA. We envisaged its usage for alarms (allowing users to specify a desired arrival time) and travel alerts (should traffic significantly degrade for an upcoming journey). In fact it’s the number one requested feature we receive from our users. Our original plan was to bring it to life incrementally but the issues at hand have accelerated that timeframe. Although user viewable notifications won’t come with this update the platform will be present for its eventual inclusion.
While we don’t have a fixed release date yet for this update we’re aiming for early 2016. Our apologies for the delay. Justin and I appreciate your patience and we can’t wait to get this new version of ETA into the AppStore!