# Application

**Kind**: interface | **Module**: [App Management](https://docs.interop.io/browser/reference/javascript/app%20management/index.md) | **Access**: `io.appManager.myInstance.application`

**Source**: https://docs.interop.io/browser/reference/javascript/app management/application/index.html

Object describing an app.

## Properties

- **`caption`** (`string`, optional)
  Application caption.
- **`icon`** (`string`, optional)
  Application icon.
- **`instances`** (`Instance[]`, required)
  Instances of that app.
- **`name`** (`string`, required)
  Application name.
- **`title`** (`string`, optional)
  Application title.
- **`userProperties`** (`PropertiesObject`, required)
  Generic object for passing properties, settings, etc., in the for of key/value pairs.
- **`version`** (`string`, optional)
  Application version.

## Methods

### getConfiguration

Retrieves the definition of the current app.

*Since: io.Connect Browser 4.3*

```ts
() => Promise<Definition>
```

**Returns**: `Promise<Definition>`

### onInstanceStarted

Subscribes for the event which fires when an application instance is started.
Note: unlike the API's `onInstanceStarted()` the Application's `onInstanceStarted()` method doesn't replay the already started instances.

```ts
(callback: (instance: Instance) => any) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(instance: Instance) => any`, required)
  Callback function to handle the newly started instance.

**Returns**: `UnsubscribeFunction` - Unsubscribe function.

### onInstanceStopped

Subscribes for the event which fires when an application instance is stopped.

```ts
(callback: (instance: Instance) => any) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(instance: Instance) => any`, required)
  Callback function to handle the newly started instance.

**Returns**: `UnsubscribeFunction` - Unsubscribe function.

### start

Returns the newly started application instance.

```ts
(context?: object, options?: ApplicationStartOptions) => Promise<Instance>
```

**Parameters**

- **`context`** (`object`, optional)
  The initial context of the application.
- **`options`** (`ApplicationStartOptions`, optional)
  Options object in which you can specify window setting (that will override the default configuration settings), as well as other additional options.

**Returns**: `Promise<Instance>` - Promise that resolves with the newly started application instance.

## Related types

- [ApplicationStartOptions](https://docs.interop.io/browser/reference/javascript/app%20management/applicationstartoptions/index.md)
- [Definition](https://docs.interop.io/browser/reference/javascript/app%20management/definition/index.md)
- [Instance](https://docs.interop.io/browser/reference/javascript/app%20management/instance/index.md)
- [PropertiesObject](https://docs.interop.io/browser/reference/javascript/app%20management/propertiesobject/index.md)
- [UnsubscribeFunction](https://docs.interop.io/browser/reference/javascript/search/unsubscribefunction/index.md)
