# Application streaming

Application streaming is a form of on-demand software distribution. In these scenarios, only essential portions of an application's code need to be installed on the computer: while the end user performs actions in the application, the necessary code and files are delivered over the network as and when they are required.
Application streaming is a related concept to application virtualization, where applications are run directly from a virtual machine on a central server that is completely separate from the local system. By contrast, application streaming runs the program locally, but still involves the centralized storage of application code.

## Stream server

An application is packaged and stored on a streaming server. Packaging or sequencing produces an image of the application in a way that orders delivery or predicatively optimizes delivery to the client.

## Launch and streaming of application

The initial launch of an application would be important for the end user and the Packaging process might be optimized to achieve this. Once launched, common functions would be followed. As these functions are requested by the end user, these may be streamed in a similar manner. In this case the client is pulling the application from the stream server. Otherwise, the full application might be delivered from the server to the client in the background. In this case, the server pushes the application to the client.

## Advantages

The concept of application streaming carries several major advantages over traditional software distribution: given the complexity of modern applications, many functions are never or seldom used, and pulling the application on demand is more efficient in terms of server, client and network usage; streaming also allows for applications to be cached on the local system and still run in a traditional manner; updates can also be deployed automatically to the cached application files.

## Vendor-specific implementations
### Android
#### 2015 app streaming experiment

In 2015 Google launched "App streaming" experiment for launching "streamed" apps from Google Search. If user with a supported device entered a relevant search query, Google Search would display "Stram" button on the top result. When user clicked the button, user device would display a live video stream of the app running on Google servers. Only nine app publishers participated in the experiment. Ars Technica writer discovered a way to "escape the app and get into a Web browser" and found out that the virtual device was running Android 4.4.4. Writer raised concerns about using such an old version of Android. The experiment never advanced past "beta" stage.

#### Google Play Instant

In 2018, Google Play added "Instant apps" feature which allowed users to try out compatible apps before downloading them. Specifically, app has to be packaged in Android App Bundle format with special activities. If app supports "Instant apps", Google Play displays "try now" button next to "install" button. When user clicks it, Google Play loads only relevant data to speed up app launch. At launch only six games supported the feature. As of July 2021, 39 apps provide this functionality.

### Other

* Citrix Application Streaming: XenApp Offline Plugin
* Google Application Streaming: Chrome http Protocol
* Numecent Cloudpaging
* Parallels Remote Application Server
* Microsoft Application Virtualization (App-V)
* Novell ZENworks Application Virtualization
* Microsoft's Office 365 service uses a streaming system known as "Click to Run" to distribute the Office applications.
* Turbo (software)

## Application streaming services

* Amazon AppStream 2.0 is an Application Virtualization platform.
* rollApp
* Cameyo