I build Alexa skills more for my family and my home than I do for anything else. This skill is no exception. When this competition was announced, I thought about what would be really helpful for my youngest son, who is five. At the time, my kids were getting ready before school, and my wife had just asked if they had completed their "morning things". This is our way of reminding them that they have things to do each day, to be sure they are ready for their day. With an Echo Show in the house, having a visual skill that could help them to keep track of each of their "morning things" could be really helpful, I though. This was the inspiration for My Morning Helper.
What it does
My Morning Helper allows parents or other adults to build a morning checklist for the kids in the house. It makes note of their names, so it can keep each list straight, and recalls the list that they've been given by the adult, each morning. It then shows them the same list on the display, and each time an item has been completed, it is crossed off the list. In this way, it is a very visual reminder of the current status of their "morning list", where an audio-only skill doesn't have that on-going status update.
How I built it
I used VoiceFlow as the design and build tool for this skill. This allowed me to minimize the use of code to build the skill, as this is certainly not a strength of mine. In addition, I used the APL Authoring Tool to build and refine a display template that I would use in this skill. I had no experience with Alexa display interfaces, and it was a fun challenge, even using a design tool. I primarily used a ChromeBook as my workstation, both because it is what I had the easiest access to, and because I wanted to see what couldn't be done with a web-based device. Fortunately, I did not hit any barriers with this skill, or with completing the skill submission process, from a Chromebook.
Challenges I ran into
The most significant challenge has been understanding different components of APL that were not factors when I was building simply for voice. For example, one item that led to an initial skill certification rejection was that my skill did not conform to the requirements for different sized screens. I tested it only on an Echo Show, initially, and did not account for the fact that the Echo Spot, having a smaller screen, would not display all of the text in the same manner. This required digging into APL capabilities, where I came across scrollview, which allows text to extend beyond the screen, and permits the user to manipulate the screen by touch, in order to see all of the text. This is precisely the solution I needed, but I did not know it existed until I needed to use it for this skill. It also took me some time to understand what the Authoring Tool was, and how I should (and should not) use it.
Accomplishments that I'm proud of
I am really excited about this skill, for a number of reason. First of all, it is, without out question, the most complex skill that I've built. It has a number of elements beyond display, that I've not previously had to think through and process to the degree that I did with this skill. The logic alone was a bit of a puzzle for me at times, but I am really happy with the end result.
What I learned
I learned quite a lit with this skill. APL was all new for me, so everything related to visuals was a learning experience. In addition, I used more "if:then" statements in this skill than in all of my previous skills combined. In order to allow the adult to build the dataset for the ultimate user (children), I essentially had to build two separate skills, which I called "onboarding" and "live". I then had to fashion a way to determine whether the skill was live yet, and to keep track of it along the way.
What's next for My Morning Helper
I have a lot of ideas for this skill, more than I had time to implement by the deadline for this competition. At a minimum, I would like to increase its' capacity for users. Right now it can accommodate up to two kids; I think it needs to be at least four when all is said and done. After all, if it can be helpful for a 2-child family, imagine what it could do for a family with four little ones. In addition, I want to build an easy way for parents to check the status of each of their kids. Right now, they are relying on their kids to tell them that the tasks have been completed. I think instead, they should be able to get a report on each kid, displaying the information both via voice and on the display. Lastly, I want to build a more complex score-keeping system that tracks each user's completion of their tasks, and awards them a prize (gold star?) for each week that they get all of their tasks done. I think a long-term award system that remembers how each user did could make it a more compelling skill for the kids. That's really what is going to make this a routine, and will lead to them learning their "morning things".