Alexa Presentation Language Best Practices for Developers
The Alexa Presentation Language (APL) best practices for developers are provided to help streamline your APL skill development process and improve the quality of the interactive voice and visual experiences in your Alexa skills. They cover advanced concepts and knowledge about how you plan and build sophisticated APL experiences for Alexa skills.
APL development best practices cover advanced concepts and knowledge about how you plan and build sophisticated APL experiences for Alexa skills. The best practices cover technical aspects of implementing APL, with less focus on visual design and user experience (UX). For details about how to design with APL, see the guide on Visual Design for Alexa Experiences.
To understand and use APL best practices, you should already have some knowledge of and practical experience with creating APL documents. If you are unfamiliar with APL, consider visiting the Alexa Learning Lab and take the hands-on learning courses, and exploring the technical documentation for APL to cover the basics of APL.
Why learn APL best practices?
Like many skill developers, you probably started with APL by learning from the technical documentation and code examples, and by using an authoring tool of your choice to craft APL templates. You then added the templates to your skill experience. This is a valid and straightforward approach to developing simple visuals for skills. However, when you try to develop more advanced multimodal experiences, you might encounter the following challenges:
- Maintainability — By increasing the scope and features in your Skill experience, your APL templates and infrastructure might become more difficult to maintain and more challenging to extend with new features. Without managing to reduce the code complexity in your APL artifacts working on them might become more difficult to work on for new developers, who might want to onboard to your APL project.
- Flexibility — eventually, inefficiently designed APL templates and infrastructure can slow down your skill development process when you want to adopt new skill features, expand to new locales, or change the UI fundamentally to respond to changing user needs. Instead, when you have a well-organized APL project, you can reuse UI components to speed up development for existing and new skill projects.
- Performance — there are a lot of Do’s and Don’ts when building an APL experience that you should know to avoid performance degradation at runtime. Inefficiently built APL templates and backend infrastructure can lead to higher latency when rendering and updating APL documents on screens.
- Functional quality — missing out or improperly used UX features in APL can cause your multimodal experience to be less engaging, accessible, or usable with certain input modalities, user impairments, and screen dimensions. APL best practices address these challenges by providing you with advanced knowledge and practical tips to optimize your APL template design and infrastructure.
Plan your APL experience
If you anticipate that your APL experience requires more than just a simple APL template in support of a limited set of interactions, you need to think about how you want to architect, orchestrate, and facilitate your APL experience. Eventually, you are going to make a set of important architectural design decisions that can greatly affect your productivity and performance of your APL experience in the long run. Not thinking about them systematically, it means you are still making these decisions intuitively but they might not consistently align with APL best practices and your own requirements.
Generally, you should create a plan regardless of the complexity of your use case. At the least, when you create a plan, you go through a thought process to improve the outcome of your intuitive design decisions. At best, you formalize your requirements in a way that aligns with Amazon best practices.
Continue reading Plan Your APL Experience to learn more.
Build your APL templates
The APL specification provides a broad set of individual components and features that you can use to implement visual and interactive UI design by creating APL document templates. While this reference is useful to understand the functional details of APL documents it provides only limited guidance on how to use its individual components and feature to create and structure templates in best practice manner.
Best practices exist to support a better quality outcome of software and the experience it provides to its users. For APL templates the desired outcome is higher quality of their technical design, and more engaging multimodal user experiences that they intend to create for your skills. This begs the question: what does high quality mean for an APL template design and how can you improve it?
Read the Build Your APL Templates best practices pages to get answers.