# Apps

**Kind**: module | **Library**: @interopio/desktop | **Access**: `io.apps`

**Source**: https://docs.interop.io/desktop/reference/javascript/apps/index.html

>  Note that the Apps API is still an experimental feature. This means that it may have hidden issues and may be subject to changes in future releases.
>
> The Apps API is designed to replace the legacy App Management API accessible via the [`io.appManager`](../app%20management/index.html#API) object.
> The legacy App Management API is still supported, but will be entirely removed in a future release. It's highly recommended to migrate to the new Apps API.

The Apps API provides a modern, fully asynchronous way to manage io.Connect Desktop apps. It offers abstractions for:

- App - a program as a logical entity, registered in io.Connect Desktop with some metadata (name, description, icon, etc.)
and with all the configuration needed to spawn one or more instances of it.
The Apps API provides facilities for retrieving app metadata and for detecting when an app is started.

- Instance - a running copy of an app. The Apps API provides facilities for starting/stopping app instances and tracking app-related events.

The Apps API is accessible via the [`io.apps`](https://docs.interop.io/desktop/reference/javascript/apps/api/index.md) object.

Available since io.Connect Desktop 10.0 &@interopio/desktop 6.16.0.

## Interfaces

- [API](https://docs.interop.io/desktop/reference/javascript/apps/api/index.md): Apps API.
- [AppAddedEvent](https://docs.interop.io/desktop/reference/javascript/apps/appaddedevent/index.md): Describes the argument received by the callback function for handling the app added event.
- [AppChangeSet](https://docs.interop.io/desktop/reference/javascript/apps/appchangeset/index.md): Object with key/value pairs describing the updated app properties and their new values.
- [AppDataOptions](https://docs.interop.io/desktop/reference/javascript/apps/appdataoptions/index.md): Options for selecting or filtering apps.
- [AppFilter](https://docs.interop.io/desktop/reference/javascript/apps/appfilter/index.md): Filter for retrieving apps.
- [Application](https://docs.interop.io/desktop/reference/javascript/apps/application/index.md): Describes an app.
- [ApplicationCore](https://docs.interop.io/desktop/reference/javascript/apps/applicationcore/index.md): Describes the basic properties of an app.
- [ApplicationInstance](https://docs.interop.io/desktop/reference/javascript/apps/applicationinstance/index.md): Describes an app instance.
- [AppRegistry](https://docs.interop.io/desktop/reference/javascript/apps/appregistry/index.md): Object that can be used for managing app definitions.
- [AppRemovedEvent](https://docs.interop.io/desktop/reference/javascript/apps/appremovedevent/index.md): Describes the argument received by the callback function for handling the app removed event.
- [AppSelect](https://docs.interop.io/desktop/reference/javascript/apps/appselect/index.md): Options for selecting apps.
- [AppUpdatedEvent](https://docs.interop.io/desktop/reference/javascript/apps/appupdatedevent/index.md): Describes the argument received by the callback function for handling the app updated event.
- [ClearAppsOptions](https://docs.interop.io/desktop/reference/javascript/apps/clearappsoptions/index.md): Options for clearing all app definitions from the in-memory store.
- [Definition](https://docs.interop.io/desktop/reference/javascript/apps/definition/index.md): App definition object. All available app definition properties are described in the `application.json` JSON schema of **io.Connect Desktop**.
- [GetAppOptions](https://docs.interop.io/desktop/reference/javascript/apps/getappoptions/index.md): Options for retrieving apps.
- [ImportResult](https://docs.interop.io/desktop/reference/javascript/apps/importresult/index.md): Describes the result from importing app definitions at runtime.
- [InMemoryStore](https://docs.interop.io/desktop/reference/javascript/apps/inmemorystore/index.md): Object that can be used for handling app definitions dynamically. The described methods operate only on in-memory app definitions.
- [InstanceFilter](https://docs.interop.io/desktop/reference/javascript/apps/instancefilter/index.md): Filter for retrieving app instances.
- [InstanceManager](https://docs.interop.io/desktop/reference/javascript/apps/instancemanager/index.md): Object that can be used for managing running app instances.
- [InstanceSelect](https://docs.interop.io/desktop/reference/javascript/apps/instanceselect/index.md): Options for selecting an app instance.
- [InstanceStartedEvent](https://docs.interop.io/desktop/reference/javascript/apps/instancestartedevent/index.md): Describes the argument received by the callback function for handling the instance started event.
- [InstanceStateChangedEvent](https://docs.interop.io/desktop/reference/javascript/apps/instancestatechangedevent/index.md): Describes the argument received by the callback function for handling the instance state changed event.
- [InstanceStoppedEvent](https://docs.interop.io/desktop/reference/javascript/apps/instancestoppedevent/index.md): Describes the argument received by the callback function for handling the instance stopped event.
- [My](https://docs.interop.io/desktop/reference/javascript/apps/my/index.md): Provides access to the current app instance.
- [RemoveAppOptions](https://docs.interop.io/desktop/reference/javascript/apps/removeappoptions/index.md): Options for removing app definitions from the in-memory store.
- [RestartInstanceOptions](https://docs.interop.io/desktop/reference/javascript/apps/restartinstanceoptions/index.md): Options for restarting an app instance.
- [StartAppOptions](https://docs.interop.io/desktop/reference/javascript/apps/startappoptions/index.md): Options for starting an app instance.
- [StartedByInfo](https://docs.interop.io/desktop/reference/javascript/apps/startedbyinfo/index.md): Describes how the current app instance was started and provides details about the app that started it.
- [StopInstanceOptions](https://docs.interop.io/desktop/reference/javascript/apps/stopinstanceoptions/index.md): Options for stopping an app instance.

## Type Aliases

- [AppEventHandler](https://docs.interop.io/desktop/reference/javascript/apps/appeventhandler/index.md): Handler for app events.
- [AppType](https://docs.interop.io/desktop/reference/javascript/apps/apptype/index.md): Type of the app.
- [InstanceEventHandler](https://docs.interop.io/desktop/reference/javascript/apps/instanceeventhandler/index.md): Handler for app instance events.
- [InstanceState](https://docs.interop.io/desktop/reference/javascript/apps/instancestate/index.md): Current state of the app instance.
