I've been working with the Amazon Alexa Skill Kit (ASK) SDK the last few weeks and I wanted to write down some of the pros/cons that I saw in the developer preview.

First off, the Amazon Echo is a super cool device with great speakers, Bluetooth, Prime/Pandora music playing (no Spotify support at this time), and the ability to set timers hands-free when cooking. That is very convenient and IFTTT can make it even better. However the other apps aren't especially interesting and the public app store isn't open, so non-developers probably won't get much use out of this $180 gadget just yet.

My first ASK app takes in a location and replies back with recent earthquakes near the area. It uses Google Maps Geocode API and USGS Earthquake Catalog API. See the project 'EarthquakeInfoSkill' on GitHub.

Pros of the Echo:

  • Futuristic. My friends and roommates really like it when I ask Alexa to self-destruct.
  • Extendable functionality with IFTTT and the Alexa app store (TBA).
  • AWS Lambda integration makes creating a scalable app very easy to do. It includes a monitor and log system, and it's free for 1M hits/month. Lambda has a nice test system but it can be difficult manually writing the JSON requests (I use the Alexa text-input test site to create the JSON).
  • You don't need a device to test. Alexa developer site recently added a way to send sentences for testing the skill. In the forums I've seen ways to test the Lambda service without using Lambda.
  • The apps can be written very easily in either JavaScript or Java. You're also not stuck with Lambda, and there are lots of articles for writing endpoints on your own host.

Cons:

  • Unnatural communication between the user and Alexa apps. The developer writes a "sample utterance" file which is a map from user-speech phrases to a function to call. If there's no match, Alexa reports an error so this happens whenever the user says something unexpected, or when Alexa misunderstands, or when the dev didn't anticipate a phrase ("what time is it" vs "what's the time"). This area should get better since I've seen some threads where folks are making tools to generate these files.
  • It's a pain to remember the app names for the "start XYZ" or "ask XYZ for ...". This is just how speaking works and we'll need to remember more information.
  • No multi-user functionality. Several people can talk to the Echo, but they're all the same person to the Echo. This works fine for music, but it limits the potential of apps.
  • Account linking to 3rd-party services is not easy. Say we want to create an app which talks to Fitbit to tell the user the number of steps walked this month and their rank. We would need to create our own website for users to login, and request access to their Fitbit account, and then have the user login with a special Echo card to link with your service in the Alexa app. Making this process simpler could be a security concern for Amazon, so it's understandable that developers need to do this for themselves.

Overall Amazon's Alexa Skills Kit is easy to use and cool apps can be made quickly. The Echo is fun to use and while there are a couple of pain points, it's worth the purchase. I'm looking forward to the Alexa app store to see and use what others have created!