# Class: App Class that all Apps must extends to be registered. It is used to setup how the app is working. ### Type parameters {{< table-wrapper >}} | Name | Type | Description | |:-----|:----------------------------|:----------------------------------------------------------------------------------------------| | `T` | extends `object` = `object` | App options. ie : you need multiple instance of an App with different styles for development. | {{< /table-wrapper >}} ### Implements - `IApp`<`T`> ### Properties #### BootMode • **BootMode**: [`AppBootMode`](../../enums/enum-appbootmode/) = `AppBootMode.COLD` Desired AppBootMode **`Default Value`** > `AppBootMode.COLD` {{< fake-header "5" "Implementation Of" >}} IApp.BootMode ------------------------------------------------------------------------ #### SuspendMode • **SuspendMode**: [`AppSuspendMode`](../../enums/enum-appsuspendmode/) = `AppSuspendMode.SLEEP` Desired AppSuspendMode **`Default Value`** > `AppSuspendMode.SLEEP` {{< fake-header "5" "Implementation Of" >}} IApp.SuspendMode ### Accessors #### isReady • `get` **isReady**(): `boolean` Boolean to check if app is loaded and installed. {{< fake-header "5" "Returns" >}} `boolean` ------------------------------------------------------------------------ #### internalName • `get` **internalName**(): `string` Internal app name {{< fake-header "5" "Returns" >}} `string` **`Default Value`** > Class's name (`this.constructor.name`) {{< fake-header "5" "Implementation Of" >}} IApp.internalName ------------------------------------------------------------------------ #### unitsSettingsManager • `get` **unitsSettingsManager**(): `UnitsSettingsManager` EFB units settings manager {{< fake-header "5" "Returns" >}} `UnitsSettingsManager` {{< fake-header "5" "Implementation Of" >}} IApp.unitsSettingsManager ------------------------------------------------------------------------ #### efbSettingsManager • `get` **efbSettingsManager**(): `EfbSettingsManager` EFB settings manager {{< fake-header "5" "Returns" >}} `EfbSettingsManager` ------------------------------------------------------------------------ #### name • `get` **name**(): `string` App friendly name (shown on the App List) {{< fake-header "5" "Returns" >}} `string` {{< fake-header "5" "Implementation Of" >}} IApp.name ------------------------------------------------------------------------ #### icon • `get` **icon**(): `string` App icon (must return an uri) {{< fake-header "5" "Returns" >}} `string` {{< fake-header "5" "Implementation Of" >}} IApp.icon ### Methods #### install ▸ **install**(`props`): [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<`void`> Install hook ##### Parameters {{< table-wrapper >}} | Name | Type | |:--------|:-----------------------------| | `props` | `AppInstallProps`<`T`> | {{< /table-wrapper >}} {{< fake-header "5" "Returns" >}} [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<`void`> {{< fake-header "5" "Implementation Of" >}} IApp.install ------------------------------------------------------------------------ #### render ▸ **render**(): [`TVNode`](../../interfaces/interface-tvnode/)<[`AppView`](../class-appview/)<[`AppViewProps`](../../interfaces/interface-appviewprops/)>, `unknown`> Must render an extended AppView for the App {{< fake-header "5" "Returns" >}} [`TVNode`](../../interfaces/interface-tvnode/)<[`AppView`](../class-appview/)<[`AppViewProps`](../../interfaces/interface-appviewprops/)>, `unknown`> {{< fake-header "5" "Implementation Of" >}} IApp.render {{< fake-header "5" "Returns" >}} [`Float64Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) Coordinates from top-left offset.