Android - Setting Up Your settings.json
devapp/assets/conf/settings.json is the runtime configuration file for the DevApp.
It mirrors the structure of the production Q2 Mobile App, so what you configure here
behaves the same way once your module is shipped. Without a correctly configured
settings.json, your module will not be loaded into the running app.
This page explains every section of the file, what each field does, and how to add your module.
File location
devapp/assets/conf/settings.json
Top-level fields
| Field | What it does | Typical value |
|---|---|---|
applicationName | Display name of the app. | Leave as "Dev App". |
package | Application package id. | Leave as "com.q2.devapp" unless told otherwise. |
targetURLBase | Backend environment URL. | The sandbox URL provided by your Q2 representative — see Accounts and Access. |
targetPageName | Base UUX page. | "uux.aspx" — leave as is. |
sdk_modules | Array of SDK modules loaded at runtime. | This is where you add your module. |
mob_modules | Array of core Q2 modules. | Do not modify for custom modules. |
nativeLogin | Enable native login flow. | true. |
push | Enable push notifications. | true only if you also enable the matching PushEnrollment and Q2PushService modules below. |
Example file
{
"applicationName": "Dev App",
"package": "com.q2.devapp",
"targetURLBase": "https://stack.q2developer.com/sdk/native/<your-environment>",
"targetPageName": "uux.aspx",
"sdk_modules": [
{
"name": "com.q2.package_name_my_module",
"identifier": "com.q2.package_name.my_module",
"classPath": "com.q2.package_name.my_module",
"enabled": true,
"data": {
"my_data_key": "my_data_value"
}
},
{
"name": "PushEnrollment",
"identifier": "pushEnrollment",
"classPath": "com.q2.push.enrollmentprompt.EntryPoint",
"include": ":modules:push",
"data": {},
"enabled": false
}
],
"mob_modules": [
{
"id": 1,
"name": "Q2PushService",
"moduleType": "push",
"classPath": "com.app.q2.modules.push.q2_push_service.Q2PushService",
"include": ":modules:q2_push_service",
"googleServicesRequired": "true",
"data": {},
"enabled": false
}
],
"nativeLogin": true,
"push": false
}
Replace <your-environment> in targetURLBase with the sandbox path your Q2
representative provided.
Adding your module to sdk_modules
Each entry in sdk_modules registers one module with the DevApp. To load your module,
add a single object to the array.
Required fields
| Field | Purpose |
|---|---|
name | Unique identifier for the module. Letters, periods, and underscores only. Avoid uppercase — values are case-sensitive. Typically matches identifier and classPath. |
identifier | Used by Tecton and other external systems to locate and call the module. Often identical to name and classPath. Avoid uppercase. Example: "com.q2.package_name.my_module". |
classPath | Fully qualified path to your module's main class — package path plus class name. Must match exactly. Example: "com.q2.package_name.MyModule". |
enabled | Boolean. true includes the module in the build, false excludes it. |
data | Object of custom build-time data passed to your module. Use this to hand the module per-deployment keys, feature flags, or any other configuration values it needs. |
Example module entry
{
"name": "com.q2.package_name_my_module",
"identifier": "com.q2.package_name.my_module",
"classPath": "com.q2.package_name.my_module",
"enabled": true,
"data": {
"rtu_deeplink_key": "my_deeplink_uri"
}
}
Working with example modules
The DevApp ships with example entries (such as PushEnrollment) so you can see a
working configuration. Once your own module is in place, delete the example
entries to avoid loading them at runtime and to keep the file readable.
Things to remember
- Do not edit
mob_modules. It is reserved for core Q2 functionality like push and routing. googleServicesRequiredis intentionally a string ("true"/"false"), not a boolean. Do not change the type — the DevApp parses it as a string.targetURLBaseshould point at your sandbox for normal development. Other environments work too, but sandbox is the default expected setup.
What's next
Once settings.json is configured and the DevApp launches your module, head to the
Modules section to start writing module code.