Skip to content

Quickstart: build your first mobile form

Extend the Skedulo Plus mobile app with a custom form, starting from a working example.

Skedulo Plus extensions (mobile extensions) add custom forms to the Skedulo Plus app: inspection checklists, job completion forms, signature capture. A form is defined as JSON and deployed with the CLI. The fastest way to a working form is to start from one of the official examples and adapt it.

Before you start

You need:

1. Clone the examples repository

git clone https://github.com/skeduloDevelopers/MobileExtensionExamples.git

Each example is a complete, deployable form. HelloWorld is the bare-bones starter and the intended base for new extensions; AccountDetails is a practical working form; UIComponentsShowcase demonstrates every component. Pick the one closest to what you're building.

2. Understand the structure

Each extension is a bundled artifact: a JSON artifact file next to a source directory of the same name.

HelloWorld.MobileExtension.json         # artifact file (this is what you deploy)
HelloWorld/
  upload_config.json                    # name + definition ID for upload
  mex_definition/
    metadata.json                       # context: where the form appears
    ui_def.json                         # the form's pages and components
    instanceFetch.json                  # per-job/resource data queries
    staticFetch.json                    # team-level shared data queries
    static_resources/locales/en.json    # UI strings

The two files you'll touch first:

upload_config.json names the extension:

{
  "name": "My Extension",
  "defId": "my_extension_id"
}

metadata.json sets the context object, which controls where the form appears in the app: "Jobs" shows it on job details; "Resources" puts it in the More menu:

{
  "contextObject": "Jobs"
}

3. Define the UI

ui_def.json declares the form's pages and components: text editors, selectors, date/time pickers, toggles, attachments, and signature capture, among others. The component library reference documents each component's syntax and options.

Labels and placeholder text live in static_resources/locales/en.json; the UI definition references them by key.

4. Deploy to your tenant

Upload the extension with the CLI, passing the artifact file (not the source directory):

sked artifacts mobile-extension upsert -f HelloWorld.MobileExtension.json -a <tenant-alias>

Open the Skedulo Plus app, navigate to a job (or the More menu, depending on your context object), and your form is there.

Next steps