HustleTime Development: A (Slightly) New Look

After having time to have a sit down with my good friend Andy Schedler to talk about Ui, I’ve implemented some small changes to make HustleTime more intuitive and clearer for users.

I’ve moved the recentering button to the bottom right, and replaced the chevrons or menu button with sliders to indicate a “settings” menu.

I’ve modified the “you are here” icon to reflect the iconography more suitably, and changed some of the iconography in the modal, by changing from gray and black to adding some color so users more intuitively know where to click.

I’ve also completely removed the “close” button on the modal and instead created an “x” in the top right to close the modal, which lines up with where the menu button is to begin with (the modal no longer covers up the ad).

I’ve also made some functional upgrades:

Now, if you aren’t near a station, you’ll see an alert, letting you know you don’t have a station nearby. This could be very helpful for someone opening the app for the first time, so they know what to do, and understand how the app behaves.

I’ve also fixed an issue that would arise if someone wasn’t able to geolocate. This issue could arise if you’re underground and unable to get a location.

  getLocation = () => {
    navigator.geolocation.getCurrentPosition(
      currentPosition => {
  	this.props.dispatchedNewCenter({
          latitude: currentPosition.coords.latitude,
          longitude:currentPosition.coords.longitude
        }),
      this.props.dispatchedCircleCenter({
        latitude: currentPosition.coords.latitude,
        longitude:currentPosition.coords.longitude})
      }, error => {
        this.setDefaultLocation()
      },{timeout: 2000}
    )
  .then( x => this.props.dispatchedAppReady({located: true}))
}

There’s a third prop for navigator.geolocation.getCurrentPosition, and that’s the timeout. Without explicitly setting that timeout, navigator.geolocation.getCurrentPosition gets lost in an unresolved promise, and you’re unable to recenter the map, or find a new location. Now by adding a 2-second timeout I restore that functionality, should you initially not have the ability to geolocate due to being underground or lacking some type of internet service.

Next big changes?

I’m going to bring the android version up to date with Ios, and then work on some back-end changes, specifically: adding queuing so the server can handle more requests at the same time, and implementing the new F express service, which starts next month.

You can get HustleTime on both Android and iPhone free!