I love advent calendars and with my daughter growing up it made me want to share traditions with her. I also love stories, and it seemed like a perfect way to share some stories with her in a funny and Christmas way!
What it does
If you say 'Open Advent Christmas' it will supply a welcome prompt to get started. To hear today's story (as long as you are in December before the 26th) just say 'Calendar' 'Advent calendar' or 'Today's Calendar'. You can also request a specific date in December, but only if the calendar is active. If it isn't the month of December, it will only allow you to play the first of December, and if it is in December but hasn't yet reached the day, it won't allow you to play it. Part of the fun is counting down and unlocked new stories as you go!
How I built it
I built it with APL and APLA for the displays. Setting up my calendar to be touchable with all twenty-five boxes and having the overlays and background images was the hardest part. Finding the background music was easily the most fun part, followed closely by recording the audio stories!
Challenges I ran into
I spent a significant amount of time on the APL document. I wanted it to be responsive, and user friendly, but since I was using a static image of the calendar for the background this became a difficulty. I had to put 25 touch overlays on each of the boxes, and then make each of those respond visually to touch and also send a response to the skill to 'Open' that day. To solve this, I ended up layering an image (of the opened door), an overlay color, a frame, and a touch wrapper all on top of each door so that I can disable, change background color, add an image, and overlay a dark color on all of the backgrounds when a user touches it. Making this work quickly was another challenge and it was the first time I used the parallel event processing of touch wrappers. I was really happy with how it turned out and how smoothly it works. You can use the skill 100% without a screen, but having a screen makes it incredibly cool and feel like a real advent calendar.
Accomplishments that I'm proud of
I'm really proud about how the APL document came out. I've made some fun and nifty APL documents in the past, but never with this much complexity stacked in one small area, and having it work so that it feels as much like an html document as an APL document was really cool. I also really love learning more about the audio recording and syncing the volume settings up with the Alexa volume so that they play smoothly. Using APLA background music really brings the skill to life, and between that and the snowfall video the skill really feels alive.
What I learned
I used a ton of new skills for the APL document and figured out how to make a truly responsive touch interface for the APL document.
What's next for Advent Christmas
Next up I'm going to add some more features and cool things. I have been adding in audio files in the background, and I would love to push that even farther. You can say "play music" to hear some of the audio files, but I like the idea of letting people pick their music and shuffle. There is a rendition of joy to the world in there that is pretty amazing.