@maccesar/titools 2.2.11 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +255 -713
- package/bin/titools.js +1 -1
- package/lib/commands/update.js +5 -6
- package/lib/config.js +1 -0
- package/lib/downloader.js +10 -0
- package/package.json +1 -1
- package/skills/alloy-guides/SKILL.md +46 -48
- package/skills/alloy-guides/references/CONTROLLERS.md +4 -6
- package/skills/alloy-guides/references/MODELS.md +340 -184
- package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +3 -4
- package/skills/alloy-guides/references/VIEWS_STYLES.md +44 -46
- package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +4 -5
- package/skills/alloy-guides/references/VIEWS_XML.md +51 -17
- package/skills/alloy-guides/references/WIDGETS.md +1 -1
- package/skills/alloy-howtos/SKILL.md +12 -13
- package/skills/alloy-howtos/references/cli_reference.md +40 -41
- package/skills/alloy-howtos/references/samples.md +3 -4
- package/skills/purgetss/SKILL.md +369 -356
- package/skills/purgetss/references/EXAMPLES.md +24 -25
- package/skills/purgetss/references/animation-advanced.md +555 -0
- package/skills/purgetss/references/animation-system.md +395 -995
- package/skills/purgetss/references/apply-directive.md +111 -141
- package/skills/purgetss/references/arbitrary-values.md +206 -480
- package/skills/purgetss/references/class-categories.md +277 -0
- package/skills/purgetss/references/class-index.md +1 -420
- package/skills/purgetss/references/cli-commands.md +446 -556
- package/skills/purgetss/references/configurable-properties.md +163 -599
- package/skills/purgetss/references/custom-rules.md +33 -76
- package/skills/purgetss/references/customization-deep-dive.md +319 -518
- package/skills/purgetss/references/dynamic-component-creation.md +33 -37
- package/skills/purgetss/references/grid-layout.md +42 -371
- package/skills/purgetss/references/icon-fonts.md +82 -475
- package/skills/purgetss/references/installation-setup.md +159 -331
- package/skills/purgetss/references/migration-guide.md +54 -109
- package/skills/purgetss/references/opacity-modifier.md +25 -222
- package/skills/purgetss/references/performance-tips.md +2 -2
- package/skills/purgetss/references/platform-modifiers.md +21 -407
- package/skills/purgetss/references/tikit-components.md +237 -104
- package/skills/purgetss/references/titanium-resets.md +20 -21
- package/skills/purgetss/references/ui-ux-design.md +171 -1702
- package/skills/ti-api/SKILL.md +109 -0
- package/skills/ti-api/references/api-android.md +675 -0
- package/skills/ti-api/references/api-app-platform.md +636 -0
- package/skills/ti-api/references/api-core.md +764 -0
- package/skills/ti-api/references/api-data-network.md +641 -0
- package/skills/ti-api/references/api-media.md +655 -0
- package/skills/ti-api/references/api-modules-ble-bluetooth.md +657 -0
- package/skills/ti-api/references/api-modules-coremotion-urlsession.md +411 -0
- package/skills/ti-api/references/api-modules-map.md +632 -0
- package/skills/ti-api/references/api-modules-nfc.md +725 -0
- package/skills/ti-api/references/api-modules-social-misc.md +526 -0
- package/skills/ti-api/references/api-services.md +700 -0
- package/skills/ti-api/references/api-ui-android.md +499 -0
- package/skills/ti-api/references/api-ui-extras.md +702 -0
- package/skills/ti-api/references/api-ui-ios-animator.md +378 -0
- package/skills/ti-api/references/api-ui-ios.md +756 -0
- package/skills/ti-api/references/api-ui-lists.md +581 -0
- package/skills/ti-api/references/api-ui-text-input.md +607 -0
- package/skills/ti-api/references/api-ui-views.md +572 -0
- package/skills/ti-api/references/api-ui-windows-navigation.md +676 -0
- package/skills/ti-api/references/api-xml-global.md +743 -0
- package/skills/ti-expert/SKILL.md +106 -138
- package/skills/ti-expert/references/adaptive-layouts.md +414 -0
- package/skills/ti-expert/references/alloy-builtins.md +16 -20
- package/skills/ti-expert/references/alloy-structure.md +40 -42
- package/skills/ti-expert/references/anti-patterns.md +34 -0
- package/skills/ti-expert/references/architecture-tiers.md +248 -0
- package/skills/ti-expert/references/code-conventions.md +5 -3
- package/skills/ti-expert/references/error-handling.md +14 -7
- package/skills/ti-expert/references/examples.md +4 -2
- package/skills/ti-expert/references/performance-optimization.md +26 -24
- package/skills/ti-expert/references/security-device.md +17 -14
- package/skills/ti-expert/references/security-fundamentals.md +60 -101
- package/skills/ti-expert/references/state-management.md +15 -14
- package/skills/ti-expert/references/testing-e2e-ci.md +30 -21
- package/skills/ti-expert/references/theming.md +12 -20
- package/skills/ti-guides/SKILL.md +13 -17
- package/skills/ti-guides/references/advanced-data-and-images.md +30 -10
- package/skills/ti-guides/references/application-frameworks.md +3 -3
- package/skills/ti-guides/references/coding-best-practices.md +31 -2
- package/skills/ti-guides/references/commonjs-advanced.md +46 -4
- package/skills/ti-guides/references/hello-world.md +9 -13
- package/skills/ti-guides/references/hyperloop-native-access.md +4 -1
- package/skills/ti-guides/references/javascript-primer.md +13 -5
- package/skills/ti-guides/references/resources.md +0 -2
- package/skills/ti-guides/references/style-and-conventions.md +1 -0
- package/skills/ti-guides/references/tiapp-config.md +0 -32
- package/skills/ti-howtos/SKILL.md +43 -45
- package/skills/ti-howtos/references/buffer-codec-streams.md +25 -3
- package/skills/ti-howtos/references/debugging-profiling.md +14 -25
- package/skills/ti-howtos/references/google-maps-v2.md +3 -3
- package/skills/ti-howtos/references/ios-map-kit.md +8 -1
- package/skills/ti-howtos/references/notification-services.md +0 -1
- package/skills/ti-howtos/references/webpack-build-pipeline.md +3 -0
- package/skills/ti-ui/SKILL.md +47 -49
- package/skills/ti-ui/references/application-structures.md +3 -2
- package/skills/ti-ui/references/orientation.md +17 -9
- package/skills/ti-ui/references/platform-ui-ios.md +63 -0
- package/skills/ti-ui/references/scrolling-views.md +39 -0
|
@@ -18,9 +18,8 @@ You can use the following values and operators in your TSS file:
|
|
|
18
18
|
* Bitwise operators: `>>`, `<<`, `>>>`, `&`, `|`, `^` (since Alloy 1.3.0)
|
|
19
19
|
* Single (`//comment`) and multiline comments (`/* comment */`)
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
Alloy does not support the CSS concept of child or descendent selectors.
|
|
23
|
-
:::
|
|
21
|
+
> **⚠️ ⚠️ Warning**
|
|
22
|
+
> Alloy does not support the CSS concept of child or descendent selectors.
|
|
24
23
|
|
|
25
24
|
**app/styles/index.tss**
|
|
26
25
|
|
|
@@ -120,39 +119,38 @@ Style priority (lowest to highest): Global Style File → Global Style File in T
|
|
|
120
119
|
|
|
121
120
|
## Platform-Specific Styles
|
|
122
121
|
|
|
123
|
-
|
|
124
|
-
**Using `Ti.UI.iOS.*` or `Ti.UI.Android.*` properties in TSS WITHOUT platform modifiers will:**
|
|
125
|
-
|
|
126
|
-
1. **Add iOS code to Android builds** → compilation failures
|
|
127
|
-
2. **Add Android code to iOS builds** → compilation failures
|
|
128
|
-
|
|
129
|
-
**Example of the damage:**
|
|
130
|
-
```tss
|
|
131
|
-
// ❌ WRONG - Adds Ti.UI.iOS to Android project
|
|
132
|
-
"#mainWindow": {
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
**CORRECT - Always use platform modifiers:**
|
|
138
|
-
```tss
|
|
139
|
-
// ✅ CORRECT - Only adds to iOS
|
|
140
|
-
"#mainWindow[platform=ios]": {
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// ✅ CORRECT - Only adds to Android
|
|
145
|
-
"#mainWindow[platform=android]": {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**Common platform-specific properties that REQUIRE `[platform=...]` modifiers:**
|
|
153
|
-
- iOS: `statusBarStyle`, `modalStyle`, `modalTransitionStyle`, any `Ti.UI.iOS.*`
|
|
154
|
-
- Android: `actionBar` config, any `Ti.Android.*` constant
|
|
155
|
-
:::
|
|
122
|
+
> **🚨 CRITICAL: Platform-Specific Properties Require Modifiers**
|
|
123
|
+
> **Using `Ti.UI.iOS.*` or `Ti.UI.Android.*` properties in TSS WITHOUT platform modifiers will:**
|
|
124
|
+
>
|
|
125
|
+
> 1. **Add iOS code to Android builds** → compilation failures
|
|
126
|
+
> 2. **Add Android code to iOS builds** → compilation failures
|
|
127
|
+
>
|
|
128
|
+
> **Example of the damage:**
|
|
129
|
+
> ```tss
|
|
130
|
+
> // ❌ WRONG - Adds Ti.UI.iOS to Android project
|
|
131
|
+
> "#mainWindow": {
|
|
132
|
+
> statusBarStyle: Ti.UI.iOS.StatusBar.LIGHT_CONTENT // FAILS on Android!
|
|
133
|
+
> }
|
|
134
|
+
> ```
|
|
135
|
+
>
|
|
136
|
+
> **CORRECT - Always use platform modifiers:**
|
|
137
|
+
> ```tss
|
|
138
|
+
> // ✅ CORRECT - Only adds to iOS
|
|
139
|
+
> "#mainWindow[platform=ios]": {
|
|
140
|
+
> statusBarStyle: Ti.UI.iOS.StatusBar.LIGHT_CONTENT
|
|
141
|
+
> }
|
|
142
|
+
>
|
|
143
|
+
> // ✅ CORRECT - Only adds to Android
|
|
144
|
+
> "#mainWindow[platform=android]": {
|
|
145
|
+
> actionBar: {
|
|
146
|
+
> displayHomeAsUp: true
|
|
147
|
+
> }
|
|
148
|
+
> }
|
|
149
|
+
> ```
|
|
150
|
+
>
|
|
151
|
+
> **Common platform-specific properties that REQUIRE `[platform=...]` modifiers:**
|
|
152
|
+
> - iOS: `statusBarStyle`, `modalStyle`, `modalTransitionStyle`, any `Ti.UI.iOS.*`
|
|
153
|
+
> - Android: `actionBar` config, any `Ti.Android.*` constant
|
|
156
154
|
|
|
157
155
|
As with views, separate styles may be defined based on the platform and device size.
|
|
158
156
|
|
|
@@ -331,16 +329,16 @@ Themes provide a way to overwrite or modify files for a specific brand of your a
|
|
|
331
329
|
|
|
332
330
|
To create a theme, create a folder called `themes` in your Alloy `app` directory. In the `themes` folder, create a folder for your theme.
|
|
333
331
|
|
|
334
|
-
| Folder or Filename | Merges or Overwrites |
|
|
335
|
-
| ------------------ |
|
|
336
|
-
| config.json |
|
|
337
|
-
| i18n | merges folders and files |
|
|
338
|
-
| assets | merges folders, overwrites files |
|
|
339
|
-
| lib |
|
|
340
|
-
| platform |
|
|
341
|
-
| styles | merges folders and files |
|
|
342
|
-
| widgets/\*/assets | merges folders, overwrites files |
|
|
343
|
-
| widgets/\*/styles | merges folders and files |
|
|
332
|
+
| Folder or Filename | Supported Since | Merges or Overwrites |
|
|
333
|
+
| ------------------ | ----------------------- | -------------------------------- |
|
|
334
|
+
| config.json | Alloy 1.4.0 | merges |
|
|
335
|
+
| i18n | Alloy 1.7.6 / CLI 5.0.0 | merges folders and files |
|
|
336
|
+
| assets | | merges folders, overwrites files |
|
|
337
|
+
| lib | Alloy 1.7.6 / CLI 5.0.0 | merges folders, overwrites files |
|
|
338
|
+
| platform | Alloy 1.7.6 / CLI 5.0.0 | merges folders, overwrites files |
|
|
339
|
+
| styles | | merges folders and files |
|
|
340
|
+
| widgets/\*/assets | Alloy 1.4.0 | merges folders, overwrites files |
|
|
341
|
+
| widgets/\*/styles | Alloy 1.4.0 | merges folders and files |
|
|
344
342
|
|
|
345
343
|
To use a theme, add it to your `config.json`:
|
|
346
344
|
|
|
@@ -45,11 +45,10 @@ Then, the controller can use `$.button1`, `$.button2` and `$.button3` to access
|
|
|
45
45
|
3. Use the `getView()` method to retrieve the view.
|
|
46
46
|
4. Use the `add()` method to add the view to a parent component.
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
Unlike other style dictionaries in Alloy, when using the `updateViews()` method, you can only apply styles using IDs. Class and view component styles do not work with this method.
|
|
50
|
-
|
|
51
|
-
Using the `Require` or `Widget` elements to include external views in the controller-less view does not work with this procedure — you can include the external views, but the styles cannot be updated with the `updateViews` method.
|
|
52
|
-
:::
|
|
48
|
+
> **⚠️ ⚠️ Warning**
|
|
49
|
+
> Unlike other style dictionaries in Alloy, when using the `updateViews()` method, you can only apply styles using IDs. Class and view component styles do not work with this method.
|
|
50
|
+
>
|
|
51
|
+
> Using the `Require` or `Widget` elements to include external views in the controller-less view does not work with this procedure — you can include the external views, but the styles cannot be updated with the `updateViews` method.
|
|
53
52
|
|
|
54
53
|
For example:
|
|
55
54
|
|
|
@@ -24,18 +24,18 @@ If the top-level UI component does not have an ID defined, it can be referenced
|
|
|
24
24
|
|
|
25
25
|
The following table lists the attributes for the UI components:
|
|
26
26
|
|
|
27
|
-
| Attribute | Description
|
|
28
|
-
| -------------- |
|
|
27
|
+
| Attribute | Description |
|
|
28
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
29
29
|
| `id` | Identifies UI elements in the controller (prefixed with `$.`) and style sheet (prefixed with `#`). IDs should be unique per view but are not global, so multiple views can have components with the same ID. |
|
|
30
|
-
| `class` | Applies additional styles (prefixed with `.` in the TSS file). Overwrites the element style but not the id style.
|
|
31
|
-
| `autoStyle` | Enables the autostyle feature for dynamic styling.
|
|
32
|
-
| `formFactor` | Acts as a compiler directive for size-specific view components (`handheld` or `tablet`).
|
|
33
|
-
| `if` | Use a custom query to apply additional styles to the element.
|
|
34
|
-
| `module` | Requires in a CommonJS module.
|
|
35
|
-
| `ns` | Overrides the default `Titanium.UI` namespace.
|
|
36
|
-
| `platform` | Switches the namespace based on the platform.
|
|
37
|
-
| `<properties>` | Assigns values to UI object properties.
|
|
38
|
-
| `<events>` | Assigns callbacks to UI object events.
|
|
30
|
+
| `class` | Applies additional styles (prefixed with `.` in the TSS file). Overwrites the element style but not the id style. |
|
|
31
|
+
| `autoStyle` | Enables the autostyle feature for dynamic styling. |
|
|
32
|
+
| `formFactor` | Acts as a compiler directive for size-specific view components (`handheld` or `tablet`). |
|
|
33
|
+
| `if` | Use a custom query to apply additional styles to the element. |
|
|
34
|
+
| `module` | Requires in a CommonJS module. |
|
|
35
|
+
| `ns` | Overrides the default `Titanium.UI` namespace. |
|
|
36
|
+
| `platform` | Switches the namespace based on the platform. |
|
|
37
|
+
| `<properties>` | Assigns values to UI object properties. |
|
|
38
|
+
| `<events>` | Assigns callbacks to UI object events. |
|
|
39
39
|
|
|
40
40
|
The following table lists the special XML elements besides the Titanium UI components:
|
|
41
41
|
|
|
@@ -55,9 +55,10 @@ The following table lists the special XML elements besides the Titanium UI compo
|
|
|
55
55
|
* `Ti.UI.NavigationWindow` or `<NavigationWindow>`
|
|
56
56
|
* `Ti.UI.iOS.SplitWindow` or `<SplitWindow>`
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
Other views do not have any format restrictions.
|
|
59
|
+
|
|
60
|
+
> **⚠️ WARNING**
|
|
61
|
+
> With the release of CLI 7.1.0, you can use platform as a prefix in the XML. For example: `<Label ios:text="Hello iOS!" android:text="Hello Android!" />`
|
|
61
62
|
|
|
62
63
|
## Collection Element
|
|
63
64
|
|
|
@@ -228,9 +229,33 @@ Within a view in the regular Alloy project space (`app/views`), use the `<Widget
|
|
|
228
229
|
|
|
229
230
|
**To import a widget:**
|
|
230
231
|
|
|
231
|
-
1. Copy the widget to the `app/widgets` folder.
|
|
232
|
-
2. Add the `<Widget>` tag in the XML and specify its `src` attribute as the folder name of the widget.
|
|
233
|
-
3. Update the `dependencies` object in the `config.json` file.
|
|
232
|
+
1. Copy the widget to the `app/widgets` folder. The widget must be contained within its own folder.
|
|
233
|
+
2. Add the `<Widget>` tag in the XML and specify its `src` attribute as the folder name of the widget.
|
|
234
|
+
3. Update the `dependencies` object in the `config.json` file by adding a key/value pair with the name of the widget as the key and the version number as the value.
|
|
235
|
+
|
|
236
|
+
You can optionally add the `id` and `name` attributes to the `Widget` element:
|
|
237
|
+
- The `id` attribute allows you to reference the widget in the controller code.
|
|
238
|
+
- The `name` attribute allows you to import a specific view-controller in the widget rather than the default one (`widget.xml`/`widget.js`). Specify the name of the view-controller minus the extension.
|
|
239
|
+
|
|
240
|
+
For example, to import the `mywidget` widget, copy it to `app/widgets`:
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
app
|
|
244
|
+
├── config.json
|
|
245
|
+
├── controllers
|
|
246
|
+
│ └── index.js
|
|
247
|
+
├── views
|
|
248
|
+
│ └── index.xml
|
|
249
|
+
└── widgets
|
|
250
|
+
└── mywidget
|
|
251
|
+
├── controllers
|
|
252
|
+
│ ├── foo.js
|
|
253
|
+
│ └── widget.js
|
|
254
|
+
├── views
|
|
255
|
+
│ ├── foo.xml
|
|
256
|
+
│ └── widget.xml
|
|
257
|
+
└── widget.json
|
|
258
|
+
```
|
|
234
259
|
|
|
235
260
|
**app/views/index.xml**
|
|
236
261
|
|
|
@@ -249,6 +274,15 @@ $.index.open();
|
|
|
249
274
|
$.foo.myMethod();
|
|
250
275
|
```
|
|
251
276
|
|
|
277
|
+
Update the `dependencies` object in `config.json`:
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
...
|
|
281
|
+
"dependencies": {
|
|
282
|
+
"mywidget":"1.0"
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
252
286
|
### Passing Arguments
|
|
253
287
|
|
|
254
288
|
You can add any custom attributes to the markup to initialize a widget or controller.
|
|
@@ -141,7 +141,7 @@ Specifying the `id` attribute in the XML markup components will make it easier t
|
|
|
141
141
|
Ti.API.info("button state: " + $.foo.button.enabled);
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
-
For widgets that have multiple view-controllers, to include a widget's view-controller in another widget's view, use the `Widget` tag and assign the `name` attribute with the name of the view-controller minus the file extension. Since Alloy 1.5.0, if you omit the `src` attribute, Alloy assumes you are referencing the current widget.
|
|
144
|
+
For widgets that have multiple view-controllers, to include a widget's view-controller in another widget's view, use the `Widget` tag and assign the `name` attribute with the name of the view-controller minus the file extension. Since Alloy 1.5.0, if you omit the `src` attribute, Alloy assumes you are referencing the current widget. For Alloy 1.4.x and prior, you need to assign the `src` attribute to the widget's name.
|
|
145
145
|
|
|
146
146
|
**app/widgets/foo/views/widget.xml**
|
|
147
147
|
|
|
@@ -11,19 +11,18 @@ Practical guide for Alloy MVC projects in the Titanium SDK.
|
|
|
11
11
|
|
|
12
12
|
## Project detection
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
This skill checks for Alloy projects when invoked and provides CLI and configuration guidance.
|
|
16
|
-
|
|
17
|
-
Detection is automatic. No manual command is needed.
|
|
18
|
-
|
|
19
|
-
Alloy project indicators:
|
|
20
|
-
- `app/` folder with Alloy structure
|
|
21
|
-
- `alloy.jmk` or `config.json` files
|
|
22
|
-
|
|
23
|
-
Behavior based on detection:
|
|
24
|
-
- Alloy detected -> Provide Alloy CLI command guidance, configuration file help, Alloy-specific troubleshooting
|
|
25
|
-
- Not detected -> Explain this skill is for Alloy projects only and suggest Alloy guides if the user wants to migrate
|
|
26
|
-
:::
|
|
14
|
+
> **️ℹ️ Auto-detects Alloy projects**
|
|
15
|
+
> This skill checks for Alloy projects when invoked and provides CLI and configuration guidance.
|
|
16
|
+
>
|
|
17
|
+
> Detection is automatic. No manual command is needed.
|
|
18
|
+
>
|
|
19
|
+
> Alloy project indicators:
|
|
20
|
+
> - `app/` folder with Alloy structure
|
|
21
|
+
> - `alloy.jmk` or `config.json` files
|
|
22
|
+
>
|
|
23
|
+
> Behavior based on detection:
|
|
24
|
+
> - Alloy detected -> Provide Alloy CLI command guidance, configuration file help, Alloy-specific troubleshooting
|
|
25
|
+
> - Not detected -> Explain this skill is for Alloy projects only and suggest Alloy guides if the user wants to migrate
|
|
27
26
|
|
|
28
27
|
## Quick reference
|
|
29
28
|
|
|
@@ -125,47 +125,46 @@ Compiler options reference the `event.alloyConfig` object in [Build Configuratio
|
|
|
125
125
|
|
|
126
126
|
Use `titanium build` command to run Alloy projects. See [Titanium Command-Line Interface Reference](https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_Guide/Titanium_Command-Line_Interface_Reference/).
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
Using `-C` flag without UDID:
|
|
131
|
-
```bash
|
|
132
|
-
# Prompts for simulator selection interactively
|
|
133
|
-
ti build -p ios -T simulator -C
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Correct approach for simulator:
|
|
137
|
-
```bash
|
|
138
|
-
# Runs on default simulator
|
|
139
|
-
ti build -p ios -T simulator
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
Using `--no-prompt` incorrectly:
|
|
143
|
-
```bash
|
|
144
|
-
# Still may prompt for device selection if not specific
|
|
145
|
-
ti build -p ios --no-prompt
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Always specify target:
|
|
149
|
-
```bash
|
|
150
|
-
# Clear target specification
|
|
151
|
-
ti build -p ios -T simulator --no-prompt
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**Common patterns:**
|
|
155
|
-
```bash
|
|
156
|
-
# iOS Simulator (most common during development)
|
|
157
|
-
ti build -p ios -T simulator
|
|
158
|
-
|
|
159
|
-
# iOS Device (requires UDID)
|
|
160
|
-
ti build -p ios -T device -V <udid>
|
|
161
|
-
|
|
162
|
-
# Android Emulator
|
|
163
|
-
ti build -p android -T emulator
|
|
164
|
-
|
|
165
|
-
# Build only (don't run)
|
|
166
|
-
ti build -p ios -T simulator --build-only
|
|
167
|
-
```
|
|
168
|
-
:::
|
|
128
|
+
> **💡 Common ti build pitfalls**
|
|
129
|
+
>
|
|
130
|
+
> Using `-C` flag without UDID:
|
|
131
|
+
> ```bash
|
|
132
|
+
> # Prompts for simulator selection interactively
|
|
133
|
+
> ti build -p ios -T simulator -C
|
|
134
|
+
> ```
|
|
135
|
+
>
|
|
136
|
+
> Correct approach for simulator:
|
|
137
|
+
> ```bash
|
|
138
|
+
> # Runs on default simulator
|
|
139
|
+
> ti build -p ios -T simulator
|
|
140
|
+
> ```
|
|
141
|
+
>
|
|
142
|
+
> Using `--no-prompt` incorrectly:
|
|
143
|
+
> ```bash
|
|
144
|
+
> # Still may prompt for device selection if not specific
|
|
145
|
+
> ti build -p ios --no-prompt
|
|
146
|
+
> ```
|
|
147
|
+
>
|
|
148
|
+
> Always specify target:
|
|
149
|
+
> ```bash
|
|
150
|
+
> # Clear target specification
|
|
151
|
+
> ti build -p ios -T simulator --no-prompt
|
|
152
|
+
> ```
|
|
153
|
+
>
|
|
154
|
+
> **Common patterns:**
|
|
155
|
+
> ```bash
|
|
156
|
+
> # iOS Simulator (most common during development)
|
|
157
|
+
> ti build -p ios -T simulator
|
|
158
|
+
>
|
|
159
|
+
> # iOS Device (requires UDID)
|
|
160
|
+
> ti build -p ios -T device -V <udid>
|
|
161
|
+
>
|
|
162
|
+
> # Android Emulator
|
|
163
|
+
> ti build -p android -T emulator
|
|
164
|
+
>
|
|
165
|
+
> # Build only (don't run)
|
|
166
|
+
> ti build -p ios -T simulator --build-only
|
|
167
|
+
> ```
|
|
169
168
|
|
|
170
169
|
### i18n-extract
|
|
171
170
|
|
|
@@ -56,9 +56,8 @@ if (!ENV_PROD) {
|
|
|
56
56
|
|
|
57
57
|
Alloy separates business logic (controllers) from UI definition (XML/TSS). A common challenge is showing or hiding content based on app state (for example, login status).
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
The samples below assume some additional TSS: views and windows use a vertical layout, and the `View` tag has a default height and width of `Ti.UI.SIZE`.
|
|
61
|
-
:::
|
|
59
|
+
> **💡 TSS defaults**
|
|
60
|
+
> The samples below assume some additional TSS: views and windows use a vertical layout, and the `View` tag has a default height and width of `Ti.UI.SIZE`.
|
|
62
61
|
|
|
63
62
|
### Problems with traditional approaches
|
|
64
63
|
|
|
@@ -154,4 +153,4 @@ Define custom methods in models and render based on those methods:
|
|
|
154
153
|
</Alloy>
|
|
155
154
|
```
|
|
156
155
|
|
|
157
|
-
See
|
|
156
|
+
See `VIEWS_STYLES.md` in the `alloy-guides` skill (Custom Query Styles section) for more details.
|