Alexa seemed like the perfect companion to help not just with my morning commute, but with the regualy trips I take around town (to the kids' school, to the gym, etc.) Too often I would be in my car and driving before I thought to open my phone, find my map app, type in where I'm going. I needed this information on the way out the door. But at that point I usually have my hands full and can't reach for my phone. It would be great if I could tell Alexa that I'm driving to the kids school and have her provide me all the information. That was the inspiration for creating "I'm Driving!"
What it does
I'm Driving allows you to get driving directions and maps for any location, and assign custom labels to your most common driving destinations, ("work", "the gym", "Tamara's house", etc.) You can then open the skill, say the destination name or label, and get all the travel information you need, including the estimated time of arrival and weather conditions upon arrival. Maps and directions can be sent directly to your phone!
If you have a multi-modal device, you can touch select from a list of destinations, and see a set of detailed driving maps and directions right on the screen.
How I built it
I built it using the Alexa Presentation Language (APL), and my own Alexa development framework, written in Ruby. The skill is set up as a webservice hosted on an EC2 instance.
Challenges I ran into
Editing the information on the fly for long trips with many associated maps and driving instructions. I tried to give the user an easily manageable amount of information, but with enough detail to be genuinely helpful and informative.
Accomplishments that I'm proud of
All the elements of APL I used. I really took advantage of the resources of APL - visuals, touch, speech - to create a skill experience realized my own vision of what I wanted the skill to do.
I'm also proud of the way I handled cases where a saved destination ("Joy's Work") is very similar to a requested destination ("Joy Wok").
What I learned
I learned about providing a lot of information in an way that's easy to understand. For example, an I'm driving request will give you route information, travel time, arrival time, weather and maps and directions. However, the presentation of the information is not overwhelming, with the most important information coming first. Making the skill multi-modal really helps support the voice-first experience by providing even more information visually, in case, for example, you wanted to take a quick glance at the driving route.
What's next for I'm Driving
I'd love to make the skill even more interactive. For example, if you could ask for more information about the destination requested, (or touch the destination map to bring up that information.)