Understand Technical Design Quality for APL Templates

Amazon provides best practices so you can create better quality software and experiences for your users. For APL templates, the outcome you want is a higher quality technical design, and a more engaging multimodal user experiences for your skills. This begs the question, what does high quality mean for an APL template design and how can you achieve it?

To achieve technical design quality with APL templates, you optimize across five main areas:

The five quality aspects of APL template design
The five quality aspects of APL template design
  • Maintainability — You remain flexible and productive when you work on your APL templates. Maintainability refers to the effort that it takes to change and extend your APL templates and components to incorporate new features and respond to changing business and user needs. Complex APL templates tend to be less readable and harder to understand, and refactoring template code is a more error-prone and costly effort. Maintainability might not impact your APL user experience directly, but it will impact you and your team's productivity.
  • Efficiency — You optimize your use of APL resources when you build and running your APL experience on Alexa screen devices. For example, you improve efficiency by reducing redundancy in template code, for example, by using an APL layout, or you are more resource-efficient during runtime by avoiding to inflate and render unused or unnecessarily used visual components. High efficiency of APL template designs often support greater maintainability and better performance.
  • Performance — You optimize to avoid low performance APL templates that suffer from an increased level of latency during runtime and slow down an APL user experience in a way that users find less engaging or usable. There can be many other factors that can affect performance, such as local network connectivity and device resource capabilities on the screen device side. When you create more efficient technical designs and optimize functionality, APL templates can mitigate or eliminate APL performance issues.
  • Functionality — APL templates don't just set the layout of a user interface that is rendered on a screen. The templates also contain interactive components and features that provide dynamic functionality during runtime. That includes accessibility features, APL event handling, gesture and remote control, animations, and audio and video playback. You can optimize functionality of your APL templates by using these features in ways that support better performance and more engaging user experiences. Conversely, if you use these features inappropriately or miss adding features, you can make an experience less engaging, usable, and accessible.
  • Versatility — Appearance and behavior of your APL templates at runtime can change dynamically based on environmental settings and use-specific scenarios. The most prominent example in APL is supporting responsiveness that dynamically changes UI appearance based on certain viewport characteristics, such as screen dimensions, device mode, and orientation. While APL templates might also change their UI depending on the language, local time, or location that a user has set on their Alexa screen device; or any other user—or system—specific context that is given to the APL template at rendering time or as part of a dynamic data update during runtime. Usually, versatile APL templates are highly dynamic and tend to be more complex than templates that are dedicated to just a subset of all of these scenarios. With that being said, versatility can make APL template design more efficient, but can also have a negative impact on runtime performance and template maintainability due to the increased level of complexity.

While you should, in general, optimize all five quality areas, you might need to make trade-offs in more complex APL projects. This is because some of these areas complement each other, whereas others compete with one another. Based on the needs of your APL project, you should set your own priorities to find the right balance.