# Fastboard API (/en/api-reference/api-ref/uikit-sdk)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

This page provides the API reference for the Fastboard SDK.

<_PlatformTabsGroup groupMode="structured" canonicalPlatform="web" platforms="[&#x22;android&#x22;,&#x22;ios&#x22;,&#x22;web&#x22;]" showTabs="true">
  <_PlatformPanel platform="android">
    <_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="android" />

    ## Understand the tech [#understand-the-tech]

    This section provides the API reference for the Fastboard SDK on Android.

    ## Reference [#reference]

    ## FastboardView class [#fastboardview-class]

    ### getFastboard [#getfastboard]

    ```java
    public Fastboard getFastboard()
    ```

    Get the `Fastboard` object.

    The Fastboard SDK does not support initializing a `Fastboard` instance directly. To get the `Fastboard` object, you need to add the `FastboardView` object to the app's layout, and then call the `getFastboard` method.

    ## Fastboard class [#fastboard-class]

    ### createFastRoom [#createfastroom]

    ```java
    public FastRoom createFastRoom(FastRoomOptions roomOptions)
    ```

    ### preloadWhiteboardView [#preloadwhiteboardview]

    ```java
    public static void preloadWhiteboardView() {
        WhiteboardViewManager.get().preload();
    }
    ```

    ### destroy [#destroy]

    ```java
    public void destroy()
    ```

    ### setConfig [#setconfig]

    ```java
    public static void setConfig(FastboardConfig config)
    ```

    ### FastRoomOptions [#fastroomoptions]

    ```java
    public class FastRoomOptions {
         private final String appId;
         private final String uuid;
         private final String token;
         private final String uid;
         private final boolean writable;
         private final FastRegion fastRegion;
    }
    ```

    ### FastRegion [#fastregion]

    * `CN_HZ`
    * `US_SV`
    * `SG`
    * `IN_MUM`
    * `EU`

    ### FastUserPayload [#fastuserpayload]

    ```java
    public class FastUserPayload {
         private final String nickName;
         private final String avatar;
    }
    ```

    ### FastboardConfig [#fastboardconfig]

    ```java
    public class FastboardConfig {
        private final boolean enablePreload;
        private final int preloadCount;
        private final boolean autoPreload;
    }
    ```

    ## FastRoom class [#fastroom-class]

    ### join \[1/2] [#join-12]

    ```java
    public void join()
    ```

    ### join \[2/2] [#join-22]

    ```java
    public void join(@Nullable OnRoomReadyCallback onRoomReadyCallback)
    ```

    ### setWritable [#setwritable]

    ```java
    public void setWritable(boolean writable)
    ```

    ### registerApp [#registerapp]

    ```java
    public void registerApp(FastRegisterAppParams params, FastResult<Boolean> result)
    ```

    ### insertImage [#insertimage]

    ```java
    public void insertImage(String url, int width, int height)
    ```

    ### insertVideo [#insertvideo]

    ```java
    public void insertVideo(String url, String title)
    ```

    ### insertStaticDoc [#insertstaticdoc]

    ```java
    public void insertStaticDoc(DocPage[] pages, String title, FastResult<String> result)
    ```

    ### insertPptx [#insertpptx]

    ```java
    public void insertPptx(String taskUuid, String prefixUrl, String title, FastResult<String> result)
    ```

    ### insertDocs [#insertdocs]

    ```java
    public void insertDocs(FastInsertDocParams params, FastResult<String> result)
    ```

    <_PlatformProcessedMarker close="true" />
  </_PlatformPanel>

  <_PlatformPanel platform="ios">
    <_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="ios" />

    ## Understand the tech [#understand-the-tech-1]

    This section provides the API reference for the Fastboard SDK on iOS.

    ## Reference [#reference-1]

    ## Fastboard class [#fastboard-class-1]

    ### createFastRoom [#createfastroom-1]

    ```swift
    public class func createFastRoom(withFastRoomConfig config: FastRoomConfiguration)
    ```

    Create a `FastRoom` instance.

    ### FastRoomConfiguration [#fastroomconfiguration]

    ```swift
    public init(appIdentifier: String,
                     roomUUID: String,
                     roomToken: String,
                     region: Region,
                     userUID: String,
                     userPayload: FastUserPayload? = nil)
    ```

    ### Region [#region]

    * `CN`
    * `US`
    * `SG`
    * `IN`
    * `EU`

    ### FastUserPayload [#fastuserpayload-1]

    ```swift
    public class FastUserPayload: NSObject {
        let nickName: String?
        let avatar: String?
    }
    ```

    ## FastRoom class [#fastroom-class-1]

    ### joinRoom [#joinroom]

    ```swift
    public func joinRoom(completionHandler: ((Result<WhiteRoom, FastRoomError>)->Void)? = nil)
    ```

    ### disconnectRoom [#disconnectroom]

    ```swift
    public func disconnectRoom()
    ```

    ### insertImg [#insertimg]

    ```swift
    public func insertImg(_ src: URL, imageSize: CGSize)
    ```

    ### insertMedia [#insertmedia]

    ```swift
    public func insertMedia(_ src: URL, title: String, completionHandler: ((String)->Void)? = nil)
    ```

    ### insertPptx [#insertpptx-1]

    ```swift
    public func insertPptx(
         uuid: String,
         url: String,
         title: String,
         completionHandler: ((String)->Void)? = nil
     )
    ```

    ### insertStaticDocument [#insertstaticdocument]

    ```swift
    public func insertStaticDocument(_ pages: [WhitePptPage],
                                          title: String,
                                          completionHandler: ((String)->Void)? = nil)
    ```

    ### followSystemPencilBehavior [#followsystempencilbehavior]

    ```swift
    public static var followSystemPencilBehavior
    ```

    ## FastRoomThemeManager class [#fastroomthememanager-class]

    ### apply [#apply]

    ```swift
    public func apply(_ theme: FastRoomThemeAsset)
    ```

    <_PlatformProcessedMarker close="true" />
  </_PlatformPanel>

  <_PlatformPanel platform="web">
    <_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="web" />

    ## Understand the tech [#understand-the-tech-2]

    This section provides the API reference for the Fastboard SDK on Web.

    ## Reference [#reference-2]

    ## createFastboard [#createfastboard]

    ```typescript
    createFastboard(options: FastboardOptions): Promise;
    ```

    ## createUI [#createui]

    ```typescript
    createUI(app?: FastboardApp | null, div?: Element): UI;
    ```

    ## createReplayUI [#createreplayui]

    ```typescript
    createReplayUI(player?: FastboardPlayer | null, div?: Element): ReplayUI;
    ```

    ### canOperate [#canoperate]

    ```typescript
    get canOperate(): boolean
    ```

    ## mount [#mount]

    ```typescript
    mount(app: FastboardApp, div: HTMLDivElement, options?: MountProps): {
     update(props?: MountProps | undefined): void;
     destroy(): void;
    };
    ```

    ## dispatchDocsEvent [#dispatchdocsevent]

    ```typescript
    export function dispatchDocsEvent(
      fastboard: FastboardApp | WindowManager,
      event: "prevPage" | "nextPage" | "prevStep" | "nextStep" | "jumpToPage",
      options: DocsEventOptions = {}
    )
    ```

    ## FastboardApp class [#fastboardapp-class]

    ### undo [#undo]

    ```typescript
    undo(): void
    ```

    ### redo [#redo]

    ```typescript
    redo(): void
    ```

    ### moveCamera [#movecamera]

    ```typescript
    moveCamera(camera: Partial<Camera>): void
    ```

    ### moveCameraToContain [#movecameratocontain]

    ```typescript
    moveCameraToContain(rect: Rectangle): void;
    ```

    ### setAppliance [#setappliance]

    ```typescript
    setAppliance(appliance: ApplianceNames, shape?: ShapeType): void;
    ```

    ### setStrokeWidth [#setstrokewidth]

    ```typescript
    setStrokeWidth(strokeWidth: number): void
    ```

    ### setStrokeColor [#setstrokecolor]

    ```typescript
    setStrokeColor(strokeColor: Color): void
    ```

    ### setTextColor [#settextcolor]

    ```typescript
    setTextColor(textColor: Color): void
    ```

    ### setTextSize [#settextsize]

    ```typescript
    setTextSize(textSize: number): void
    ```

    ### insertImage [#insertimage-1]

    ```typescript
    async insertImage(url: string, crossOrigin?: boolean | string)
    ```

    ### insertMedia [#insertmedia-1]

    ```typescript
    insertMedia(title: string, src: string): Promise<string | undefined>
    ```

    ### insertDocs \[1/2] [#insertdocs-12]

    ```typescript
    insertDocs(title: string, response: ProjectorResponse): Promise<string | undefined>;
    ```

    ### insertDocs \[2/2] [#insertdocs-22]

    ```typescript
    insertDocs(params: InsertDocsParams): Promise<string | undefined>;
    ```

    ### removePage [#removepage]

    ```typescript
    removePage(index?): Promise<boolean>
    ```

    ### jumpPage [#jumppage]

    ```typescript
    jumpPage(index: number)
    ```

    <_PlatformProcessedMarker close="true" />
  </_PlatformPanel>
</_PlatformTabsGroup>
