Navigator Update

Head over to the Windows Phone Store and download a free trial!

Application Icon Store

If you tried it before you might want to give it another shot. There are a lot of improvements and it is much more useable overall. Here is a screen shot of the new UI:

navigator screenshot

Here is a list of some of the new features:

  • 3 months free trial, $1.29 to purchase.
  • Current maneuver shows an icon rather than the full maneuver text.
  • Easier to read maneuver text at top of screen.
  • Preview the entire route with simple forward and back buttons.
  • An estimated time of arrival is displayed.
  • Quick reminders when approaching a maneuver on long routes.

Bug fixes:

  • Fixed a bug where it would randomly think you were off route.
  • Fixed a sensitivity bug where it would think you were off route on a wide road.
  • Fixed a bug where entering the route from somewhere beyond the first maneuver would not put you on route.
  • Various stability fixes.
  • Added a screen for sending me crash reports directly when unexpected errors occur.

Overall it’s a much more stable and useable version. If you give it a try and  have any feedback please let me know!

Navigator – A Windows Phone 8 app

I created a turn by turn navigation app which is now available on the Windows Phone store for WP8 devices. I was unsatisfied with either the quality the existing apps or the price, so I went ahead and created one of my own. It simply provides voice navigation with the minimum necessary effort on your part. If you have been unhappy with the turn by turn navigation situation on Windows Phone 8, like I have, then this is the app for you!



one two three

Redirecting Navigation in Windows Phone 8

I am working on an app for Windows Phone 8 that uses some custom navigation. I made a class that inherits from UriMapperBase and set it into the RootFrame during application startup. In this mapper I can handle custom Protocols and redirect them to pages in my application.

I also use this mechanism to forward the user to a page to ask them to allow or deny the app rights to use the location services the first time its loaded up. This resulted in a strange case where I was actually redirecting the user to a page other than what they were actually navigating to. When I then attempted to navigate them to the correct page it ended up being a no-op since the current page was at the top of the navigation stack as the uri I was attempting to navigate to. In other platforms the NavigationService has a Refresh method you can call to resolve such problems but in Windows Phone 8 it is mysteriously missing. So after wasting a couple hours I managed to find a way to resolve this cunundrum.

Simply create a page in your application called Refresh.xaml and Navigate to this page. Something like this:

private void OnAllowClick(object sender, RoutedEventArgs e)
  LocationService.AllowLocationServices = true;
  this.NavigationService.Navigate(new Uri("/Views/Refresh.xaml", UriKind.Relative));

Then in Refresh.xaml you simply pop the last item off the navigation stack and navigate back to it:

public partial class Refresh : PhoneApplicationPage
  public Refresh()
  protected override void OnNavigatedTo(NavigationEventArgs e)
    var j = this.NavigationService.RemoveBackEntry();
    this.Dispatcher.BeginInvoke(() => App.RootFrame.Navigate(j.Source));
  protected override void OnNavigatedFrom(NavigationEventArgs e)

This will refresh to the current uri and preserve the navigation stack correctly.