EasyRoute 5.6.2 – New Routing Data

This is a small update. Mainly, I’ve updated the routing data. I’ve learned in the past that’s it’s not a good idea to mix old and new data so this release will invalidate any cached data you may already have but once the new data is re-cached, EasyRoute will be as fast as it was before.

If you’ve explicitly saved offline data, EasyRoute will not automatically attempt to update it or move you to the new routing data until you’ve decided to do so.

As usual, if there are any problems, let me know through the contact form.

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 5.6.2 – New Routing Data

EasyRoute 5.6 – Better Routing

It’s been a while since the core routing feature has gotten an update, but EasyRoute 5.6 addresses a few things:

  1. If you tap on a road right at an intersection, it might think you’ve tapped on the cross-street. The consequence of this is if you continue on the road you intended to tap, you’ll end up with a little offshoot on the other road. (For example, a right, a quick u-turn then another quick right to get you back where you intended to go.) It’s easy to overlook this when planning a route especially if you’re zoomed out. I’ve seen this occur with other route planners as well, but this should be a a lot harder to do in EasyRoute now.
  2. Similar to the above, if your tap happens to land exactly on an intersection and a turn should occur there, EasyRoute wouldn’t generate the turn cue. You probably wouldn’t notice this until you follow the route unless you happen to preview it on EasyRoute or look at the route in directions-editing mode.
  3. When dragging a route point, it should generate generally nicer routes. That is, the route should flow through the dragged location better and not just route there and create a u-turn back as it tended to do a little too often before.

Hopefully it’ll work a lot better for everyone. If anything comes up, please contact me.

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 5.6 – Better Routing

EasyRoute 5.5 – New Elevation Chart!

It was long overdue! One of the oldest parts of EasyRoute has been revamped!

The old elevation chart (left) on iOS 16 as compared to the new one iOS 17

New Tricks

In addition to looking nicer, it’s got a few new features.

A two-finger pinch gesture can be used to zoom the graph.
Highlighting is still supported, but is now done using a long-press-and-drag.
You can restore the graph to 100% zoom with a double-tap

Notes

The new elevation chart requires iOS or iPadOS 17 as it is built on some components that are only available in the latest releases.

In addition to the new chart, this release contains some bugs fixes and improvements around importing a route. It also fixes a bug where some extraneous depart and arrive maneuvers might appear in the middle of the route after you drag some points around.

Technical Stuff

The new elevation chart is a Swift Chart. SwiftUI is actually pretty fun to work with and I’m glad I’m getting to integrate more of it into the main iOS app. The watchOS app has been completely ported to it, but the main app is much larger so it’s definitely not going to be converted in one shot. Just as I’ve been judiciously replacing Objective-C with Swift over the years1, SwiftUI will replace the old UIKit code where it makes sense as well.

The old elevation graph is Objective-C and Core Graphics. It’s pretty simple but pretty inflexible drawing code. Using an actual chart component opens the door for more improvements and visualizations in the future, so stay tuned for that.

As usual, hit me up using my contact form if you have any questions, comments or feedback.

  1. EasyRoute started before the Swift programming language was released to the public so at one point it was 100% Objective-C, and now almost 10 years later, it’s over 90% Swift. ↩︎
Posted in EasyRoute | Tagged | Comments Off on EasyRoute 5.5 – New Elevation Chart!

EasyRoute 5.4 – Update for iOS 17 and watchOS 10

A number of medium and small changes for this release

First, when navigating a route, EasyRoute uses a Live Activity. If you have a phone with a Dynamic Island, the live activity will inhabit it if you switch away from EasyRoute. Without the Dynamic Island, it will present a banner similar to a notification and show status on the Lock Screen. This feature requires iOS 16.2.

Next up are number of updates for watchOS 10 and this year’s new watches. EasyRoute widgets support watchOS 10’s Smart Stack and the widgets themselves have been updated to look better as well. Also, there have been a number of tweaks to support the placement of text on both the new watches and new watchOS. Lastly, zooming the navigation screen with the digital crown has been fixed.

There have been a number of little fixes and, a little enhancement as well. You can now change the route type right in the titlebar of the main route screen. Just tap the route type icon, and you’ll get a menu with options to change it.

As usual you can use the contact form for feedback.

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 5.4 – Update for iOS 17 and watchOS 10

EasyRoute 5.2 – Updated Watch App

EasyRoute 5.2 is now available on the App Store. The main change is that it includes a totally new watch app that looks and behaves very similarly to the old one.

Why a new watch app? Largely because of a technical reason. In short, Apple is prodding us developers along to embrace their newest tech. There is a long story if you’re interested…

When Xcode 14 came out last fall, much of the WatchKit user interface classes were deprecated in favor of SwiftUI and the SwiftUI lifecycle. What this meant was one annoying warning in the EasyRoute project that I couldn’t silence unless I migrated, so I did. The lengths I will go through to keep the project at zero warnings!

It really wasn’t as bad as it sounds. All the all the non-UI code was pretty well separated from the UI in the first place so it was just a matter of making some new view model objects to talk to the existing code and publish values for the SwiftUI parts. Also, watch apps used to have two components, the app, and an extension, but nowadays, it’s just an app.

Finally, the complications have been migrated to SwiftUI as well. They are handled very similarly to the SwiftUI widgets on the phone.

Taken all together, a big change, but it was fun and I got to familiarize myself with a few new concepts.

Finally, there is one known issue, but with a workaround. If you put routes on a schedule, the complications will not update automatically anymore, but will update right after you bring EasyRoute to the screen on the watch. I struggled with this for a while before contacting Apple for help and it turns it is a bug on their end and should be fixed in a watchOS or iOS version soon.

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 5.2 – Updated Watch App

EasyRoute 5.1 with a Trash Folder

Recently, I accidentally deleted the wrong route. Fortunately, an old bug made it come right back. Two unintended actions that canceled each other out!

I figured I should fix both so I have. I came up with a workaround that seems to fix the problem where sometimes a deleted route would reappear (iCloud would sync it back) and to provide an extra layer of protection against accidents, added a trash folder.

That’s pretty much it, though like most things, it was work work that it seemed it would be.

As usual use my contact form for feedback.

Thanks!

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 5.1 with a Trash Folder

EasyRoute 5 Available in the App Store

Quick note: as mentioned before, there is a compatibility issue with the new version of Mapbox, so old offline data will be invalidated.

Now supporting Apple Maps and the return of Google Maps

Apple Maps is now the default. When using Google Maps, Google StreetView is (re)integrated into EasyRoute as it had been before I switched away from it. (Personally, I missed having it integrated.) Each map has its strengths depending on what you’re looking at or where you’re looking.

Since Mapbox and Google are 3rd-party maps, they can run up costs when usage gets high enough so enabling them requires a subscription. In fact, the reason I switched from Google maps is that it wasn’t sustainable with a one-time purchase and I really didn’t want to put the app behind a paywall. A number of things have changed since then enabling me to use Apple as the default map and making the other maps optional with a subscription.

If you’ve previously bought the Premium in-app purchase, Mapbox is available to you as well since it was the default map when you made the purchase.

Cost Breakdown

Existing Premium Users

You continue to get everything you paid the one-time price for. Apple Maps is the default, but Mapbox is still available since that was the default map when the Premium in-app purchase was available.

New and Free Users

Apple Maps will be the default map. It’s free to me so it’s free to you.

Subscribers

Subscribers will get all features and all maps. Offline usage is tied to Mapbox so that feature will only be available with a subscription (or if you are an existing premium user). Integrated Street View is tied to Google Maps, so that will only be available through a subscription too.

Subscription Tiers
  • $4.99 annually
  • $1.99 quarterly
  • $0.99 monthly

No More Ad Tracking

I introduced the advertisement along with the switch to Mapbox because while Mapbox was far more affordable than Google, it still wasn’t free. Every now and then, EasyRoute gets a nice mention somewhere which causes a spike in usage, so the thinking was a spike in costs could be offset by a spike in ad revenue.

Since this is no longer an issue, there is no longer a 3rd-party ad. So I’m happy to say EasyRoute does no ad tracking. Please see the privacy policy for more information.

The banner ad has been replaced by a reminder that you can enjoy more maps with a subscription.

Other Odds and Ends

With this out of the way, I expect to get back to implementing suggestions and features on a more regular basis. In fact, Apple held up this release for a while (removing the ad tracking caused some confusion with App Review that took a few rounds of back-and-forth to square away, but that’s another story) so in the meantime I already fixed a bug and started on a new feature. So there are more releases coming down the pipe soon.

There are a number of little bug fixes and improvements that got tangled up into these bigger changes. I typically like to make more frequent releases with smaller changes rather than one big one, but the map changes snowballed, and I swept up a number of other minor bugs and did some other cleanup as I was going along. That being said, I’m a little more nervous about this release despite getting it lots of great feedback during from a longer-than-usual beta period. Please feel free to contact me with feedback or bug reports.

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 5 Available in the App Store

Heads Up! EasyRoute 5 is coming!

The next major version of EasyRoute is in the late stages of beta. (Contact me if you want to test!)

Compatibility Warning

The next release of EasyRoute uses Mapbox v10. If you currently have offline data, it is not compatible with the new Mapbox. Hold off on updating or re-download the offline data after the update if you still need it.

New Maps

As I said with EasyRoute 4 (three years ago already!) a major new feature merits a major version change, so the next version is EasyRoute 5.

EasyRoute 5 will feature Apple Maps, Mapbox and Google Maps. When using Google Maps, you can use Street View in the app rather than launch it externally.

This change necessitates a change to EasyRoute’s revenue model. A subscription is required to use maps other than Apple Maps. If you are an existing Premium user, you will continue to have access to everything you have access to now, including Mapbox maps.

While I’m not crazy about the subscription model, EasyRoute will be set up as a free app where features that don’t cost me anything don’t cost you anything.

The Breakdown

Existing Premium Users

You continue to get everything you paid the one-time price for. Apple Maps is the default, but Mapbox is still available since that is the default map with the Premium in-app purchase.

New and Free Users

Apple Maps will be the default map. It’s free to me so it’s free to you.

Subscribers

Subscribers will get all features and all maps. Offline usage is tied to Mapbox so that feature will only be available with a subscription (or if you are an existing premium user). Integrated Street View is tied to Google Maps, so that will only be available through a subscription too.

More Stuff

There are some other odds and ends I will announce when it’s released, but I wanted to put the information about incompatibility the subscription out there now. While existing Premium users will continue to get everything they had before, I was hoping to address any concerns before the release. Please reach out through Twitter or my contact form.

When is it coming out? I think it’s about ready now. It’s been in beta for about a month and I’ve been testing it myself, putting builds in TestFlight for my various devices since about April. I’m thinking another week or two.

Posted in EasyRoute | Tagged | Comments Off on Heads Up! EasyRoute 5 is coming!

EasyRoute 4.6 – Sortable Routes and Widgets

Two notable features in this release.

First, the route list is now sortable! This was a widely-requested feature and a little tricky as EasyRoute has always supported custom route ordering by dragging routes up and down the list. I didn’t want to break that but I think I found a nice way to support both.

Next, it supports iOS 14 widgets to show the next upcoming scheduled route. This is here basically because I wanted to play with iOS 14 widgets and figured EasyRoute could use them similarly to how they’re used on watchOS where the complications show the upcoming route. It was fun to do and I like seeing my next planned run on the Home Screen, so it was worth doing.

Also, it might be worth mentioning that non-premium users that are shown Google Ads should now be prompted for permission to be tracked on iOS 14.

Aside from that, the usual maintenance and cleanup.

While I’m here, I’ll tease that the Android version is under development. It works, but with plenty of quirks and lots of missing functionality. I’m chipping away at it though!

As usual, for feedback, support, bug reports or whatever. Let me know with the contact form or on Twitter.

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 4.6 – Sortable Routes and Widgets

EasyRoute 4.5 – Routing and Navigation Features

EasyRoute 4.5 is out! There are two new features.

First, you can now add directions to imported routes that do not contain routes. These would be routes from GPX files or FIT workout files. It’ll do its best to match the path against known roads and add directions to it. Use the route actions toolbar button (the two diagonal arrows — 3rd from the left) and select Add Directions.

Second, when navigating a route, it’ll do its best to guide you back to your original path if you go off-route. Before, it would only provide a basic instruction as you went off-route and then another one if you went back on.

That, and the normal little fixes and updates.

As usual, for feedback, support, bug reports or whatever. Let me know with the contact form or on Twitter.

Posted in EasyRoute | Tagged | Comments Off on EasyRoute 4.5 – Routing and Navigation Features