Glossary of Cloud Terms

Term Definition
Cloud App An application developed using You.i Platform consisting of two key components, the server and the client. This architecture separates the rendering, input and API definitions provided by a client device from the user interface definition and business logic provided by a remote application. This allows for the same server-side application to run on a diverse set of client devices.
Server The part of a Cloud app hosted remotely on an AWS server (or locally, during development) and executed in parallel with a client. The server is where the application code is executed. The server uses the Cloud SDK to communicate and synchronize states with the client.
Application Code The code responsible for defining the user experience and business logic, written in any language compatible with the You.i Platform SDK. In a non-Cloud context, this is the code that runs directly on a user’s local client device.
Cloud SDK This layer inspects, serializes and exports the view hierarchy defined by the server. It sends commands to and receives events from the client. This layer exists alongside the server portion of a Cloud app.
Client A thin client installed and executed on the user’s local device, like a Roku or set-top box. Written in a language native to the target platform. For example, the Roku client is written in BrightScript. The client handles communication with the server using the Cloud Client Layer and exposes platform-level services using a Platform Integration Layer.
Thin Client An application primarily responsible for synchronizing with and providing client-side functionality to an application whose user interface and business logic are implemented server-side. The thin client provides a window into a server-side application allowing the server app to operate on a variety of clients without needing to know anything about each client’s concrete implementation.
Cloud Client Layer This layer communicates and synchronizes with the server to relay interactions, events, and visual updates, as well as interpret the server’s user interface definition to be rendered on the local hardware.
Platform Integration Layer Custom client code used to access platform APIs not directly accessible by the server, like geo-location or in-app purchase services. This layer interacts with the Cloud Client Layer to adapt and expose platform information and functionality to the rest of the Cloud app. See also Native Modules.
Custom Events Events not defined within the Cloud SDK can also be sent from the client, to be processed on the server. The implementation of custom events requires both client coding and server coding. All aspects of this event lifecycle are strictly handled by an application developer. Custom event development is an advanced topic.
Custom Commands Commands not defined within the Cloud SDK can also be sent from the server to the client. The implementation of custom commands requires both server coding and client coding. All aspects of this event lifecycle are strictly handled by an application developer. Custom command development is an advanced topic.
Side-loading Refers to the action of uploading an app directly to a Roku device, instead of adding the app as a new channel from the Roku Channel Store. Side-loading is useful in the initial phases of Cloud app development, for faster testing turnaround.