@maccesar/titools 5.3.0 → 5.4.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/CONTRIBUTING.md +1 -1
- package/README.md +31 -60
- package/agents/ti-pro.md +3 -1
- package/commands/ti-audit.md +6 -4
- package/docs/examples.md +9 -0
- package/docs/knowledge-index.md +2 -1
- package/lib/config.js +1 -0
- package/package.json +1 -1
- package/skills/alloy-guides/SKILL.md +18 -179
- package/skills/alloy-guides/references/CLI_TASKS.md +17 -216
- package/skills/alloy-guides/references/CONCEPTS.md +27 -162
- package/skills/alloy-guides/references/CONTROLLERS.md +38 -236
- package/skills/alloy-guides/references/MODELS.md +47 -723
- package/skills/alloy-guides/references/MODELS_ADVANCED.md +21 -482
- package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +12 -222
- package/skills/alloy-guides/references/VIEWS_STYLES.md +39 -358
- package/skills/alloy-guides/references/VIEWS_XML.md +36 -552
- package/skills/alloy-guides/references/WIDGETS.md +49 -127
- package/skills/alloy-howtos/SKILL.md +14 -169
- package/skills/alloy-howtos/references/best_practices.md +9 -113
- package/skills/alloy-howtos/references/cli_reference.md +18 -223
- package/skills/alloy-howtos/references/config_files.md +50 -133
- package/skills/alloy-howtos/references/debugging_troubleshooting.md +19 -63
- package/skills/alloy-howtos/references/samples.md +21 -138
- package/skills/ti-api/SKILL.md +10 -2
- package/skills/ti-api/references/api-android.md +36 -2
- package/skills/ti-api/references/api-app-platform.md +39 -3
- package/skills/ti-api/references/api-core.md +50 -18
- package/skills/ti-api/references/api-data-network.md +49 -35
- package/skills/ti-api/references/api-media.md +45 -27
- package/skills/ti-api/references/api-services.md +39 -9
- package/skills/ti-api/references/api-ui-android.md +33 -13
- package/skills/ti-api/references/api-ui-extras.md +41 -15
- package/skills/ti-api/references/api-ui-ios-animator.md +42 -26
- package/skills/ti-api/references/api-ui-ios.md +74 -2
- package/skills/ti-api/references/api-ui-lists.md +32 -16
- package/skills/ti-api/references/api-ui-text-input.md +34 -17
- package/skills/ti-api/references/api-ui-views.md +27 -1
- package/skills/ti-api/references/api-ui-windows-navigation.md +32 -18
- package/skills/ti-api/references/api-xml-global.md +66 -16
- package/skills/ti-create-release/SKILL.md +98 -0
- package/skills/ti-create-release/references/module-discovery.md +69 -0
- package/skills/ti-expert/references/adaptive-layouts.md +1 -1
- package/skills/ti-guides/SKILL.md +37 -76
- package/skills/ti-guides/references/advanced-data-and-images.md +122 -126
- package/skills/ti-guides/references/android-manifest.md +24 -83
- package/skills/ti-guides/references/app-distribution.md +31 -377
- package/skills/ti-guides/references/application-frameworks.md +127 -335
- package/skills/ti-guides/references/cli-reference.md +184 -633
- package/skills/ti-guides/references/commonjs-advanced.md +81 -231
- package/skills/ti-guides/references/compatibility-matrix.md +36 -75
- package/skills/ti-guides/references/hello-world.md +95 -70
- package/skills/ti-guides/references/hyperloop-native-access.md +52 -448
- package/skills/ti-guides/references/resources.md +174 -142
- package/skills/ti-guides/references/sdk-release-notes.md +28 -71
- package/skills/ti-guides/references/tiapp-config.md +222 -598
- package/skills/ti-howtos/SKILL.md +23 -123
- package/skills/ti-howtos/references/cross-platform-development.md +119 -324
- package/skills/ti-howtos/references/debugging-profiling.md +77 -445
- package/skills/ti-howtos/references/extending-titanium.md +199 -673
- package/skills/ti-howtos/references/local-data-sources.md +87 -300
- package/skills/ti-howtos/references/location-and-maps.md +86 -213
- package/skills/ti-howtos/references/media-apis.md +103 -223
- package/skills/ti-howtos/references/notification-services.md +86 -506
- package/skills/ti-howtos/references/remote-data-sources.md +97 -316
- package/skills/ti-howtos/references/using-modules.md +77 -133
- package/skills/ti-ui/SKILL.md +28 -143
- package/skills/ti-ui/references/icons-and-splash-screens.md +74 -403
- package/skills/ti-ui/references/layouts-and-positioning.md +175 -402
- package/skills/ti-ui/references/listviews-and-performance.md +100 -703
- package/skills/ti-ui/references/platform-conventions.md +180 -0
- package/skills/ti-ui/references/user-interface.md +43 -0
- package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +0 -102
- package/skills/alloy-howtos/references/custom_tags.md +0 -148
- package/skills/ti-guides/references/coding-best-practices.md +0 -149
- package/skills/ti-guides/references/javascript-primer.md +0 -414
- package/skills/ti-guides/references/reserved-words.md +0 -36
- package/skills/ti-guides/references/style-and-conventions.md +0 -103
- package/skills/ti-howtos/references/android-platform-deep-dives.md +0 -624
- package/skills/ti-howtos/references/automation-fastlane-appium.md +0 -96
- package/skills/ti-howtos/references/buffer-codec-streams.md +0 -162
- package/skills/ti-howtos/references/google-maps-v2.md +0 -172
- package/skills/ti-howtos/references/ios-map-kit.md +0 -149
- package/skills/ti-howtos/references/ios-platform-deep-dives.md +0 -611
- package/skills/ti-howtos/references/tutorials.md +0 -565
- package/skills/ti-howtos/references/web-content-integration.md +0 -287
- package/skills/ti-howtos/references/webpack-build-pipeline.md +0 -124
- package/skills/ti-ui/references/accessibility-deep-dive.md +0 -288
- package/skills/ti-ui/references/animation-and-matrices.md +0 -569
- package/skills/ti-ui/references/application-structures.md +0 -626
- package/skills/ti-ui/references/custom-fonts-styling.md +0 -549
- package/skills/ti-ui/references/event-handling.md +0 -401
- package/skills/ti-ui/references/gestures.md +0 -448
- package/skills/ti-ui/references/orientation.md +0 -374
- package/skills/ti-ui/references/platform-ui-android.md +0 -727
- package/skills/ti-ui/references/platform-ui-ios.md +0 -576
- package/skills/ti-ui/references/scrolling-views.md +0 -288
- package/skills/ti-ui/references/tableviews.md +0 -542
|
@@ -32,6 +32,8 @@
|
|
|
32
32
|
<!-- TOC-END -->
|
|
33
33
|
|
|
34
34
|
## Ti.XML
|
|
35
|
+
> Full released contract: [Titanium.XML](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML)
|
|
36
|
+
|
|
35
37
|
> The top level XML module. The XML module is used for parsing and processing XML-based content.
|
|
36
38
|
> Extends Ti.Module
|
|
37
39
|
> Platforms: both
|
|
@@ -48,13 +50,15 @@ Both iOS and Android lack DTD support.
|
|
|
48
50
|
| Method | Returns | Platform | Description |
|
|
49
51
|
|--------|---------|----------|-------------|
|
|
50
52
|
| parseString(xml) | Ti.XML.Document | both | Parses an XML string into a <Titanium.XML.Document> object. |
|
|
51
|
-
| serializeToString(node) | String | both | Serializes a [Node](Titanium.XML.Node) object into a string. |
|
|
53
|
+
| serializeToString(node) | String | both | Serializes a [Node](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Node) object into a string. |
|
|
52
54
|
|
|
53
55
|
|
|
54
56
|
---
|
|
55
57
|
|
|
56
58
|
## Ti.XML.Attr
|
|
57
|
-
>
|
|
59
|
+
> Full released contract: [Titanium.XML.Attr](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Attr)
|
|
60
|
+
|
|
61
|
+
> Represents an attribute of an [Element](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Element).
|
|
58
62
|
> Extends Ti.XML.Node
|
|
59
63
|
> Platforms: both
|
|
60
64
|
|
|
@@ -74,6 +78,8 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
74
78
|
---
|
|
75
79
|
|
|
76
80
|
## Ti.XML.CDATASection
|
|
81
|
+
> Full released contract: [Titanium.XML.CDATASection](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.CDATASection)
|
|
82
|
+
|
|
77
83
|
> Used to include blocks of literal text containing characters that would otherwise need to be escaped.
|
|
78
84
|
> Extends Ti.XML.Text
|
|
79
85
|
> Platforms: both
|
|
@@ -86,6 +92,8 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
86
92
|
---
|
|
87
93
|
|
|
88
94
|
## Ti.XML.CharacterData
|
|
95
|
+
> Full released contract: [Titanium.XML.CharacterData](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.CharacterData)
|
|
96
|
+
|
|
89
97
|
> An interface extending <Titanium.XML.Node> with a set of attributes and methods for accessing character data in the DOM. Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-FF21A306) on Android and iOS. For reasons of compatibility with the JavaScript engine, text is represented by UTF-8 instead of UTF-16 on Android and iOS.
|
|
90
98
|
> Extends Ti.XML.Node
|
|
91
99
|
> Platforms: both
|
|
@@ -110,6 +118,8 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
110
118
|
---
|
|
111
119
|
|
|
112
120
|
## Ti.XML.Comment
|
|
121
|
+
> Full released contract: [Titanium.XML.Comment](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Comment)
|
|
122
|
+
|
|
113
123
|
> Represents the contents of an XML comment.
|
|
114
124
|
> Extends Ti.XML.CharacterData
|
|
115
125
|
> Platforms: both
|
|
@@ -122,6 +132,8 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
122
132
|
---
|
|
123
133
|
|
|
124
134
|
## Ti.XML.DOMImplementation
|
|
135
|
+
> Full released contract: [Titanium.XML.DOMImplementation](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.DOMImplementation)
|
|
136
|
+
|
|
125
137
|
> The <Titanium.XML.DOMImplementation> interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490) on Android and iOS.
|
|
126
138
|
> Extends Ti.Proxy
|
|
127
139
|
> Platforms: both
|
|
@@ -138,6 +150,8 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
138
150
|
---
|
|
139
151
|
|
|
140
152
|
## Ti.XML.Document
|
|
153
|
+
> Full released contract: [Titanium.XML.Document](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Document)
|
|
154
|
+
|
|
141
155
|
> The DOM Document returned from <Titanium.XML.parseString>.
|
|
142
156
|
> Extends Ti.XML.Node
|
|
143
157
|
> Platforms: both
|
|
@@ -153,7 +167,7 @@ This has been reported as [Android Issue #7395](http://code.google.com/p/android
|
|
|
153
167
|
|----------|------|---------|----------|-------------|
|
|
154
168
|
| doctype | Ti.XML.DocumentType | — | both | An interface to the list of entities that are defined for the document, such as… |
|
|
155
169
|
| documentElement | Ti.XML.Element | — | both | Root element of this document. |
|
|
156
|
-
| implementation | Ti.XML.DOMImplementation | — | both | [DOMImplementation](Titanium.XML.DOMImplementation) object associated with this… |
|
|
170
|
+
| implementation | Ti.XML.DOMImplementation | — | both | [DOMImplementation](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.DOMImplementation) object associated with this… |
|
|
157
171
|
|
|
158
172
|
|
|
159
173
|
### Methods (14)
|
|
@@ -161,15 +175,15 @@ This has been reported as [Android Issue #7395](http://code.google.com/p/android
|
|
|
161
175
|
|--------|---------|----------|-------------|
|
|
162
176
|
| createAttribute(name) | Ti.XML.Attr | both | Creates an attribute with the given name. |
|
|
163
177
|
| createAttributeNS(namespaceURI, name) | Ti.XML.Attr | both | Creates an attribute with the given name and namespace. |
|
|
164
|
-
| createCDATASection(data) | Ti.XML.CDATASection | both | Creates and returns a [CDATASection](Titanium.XML.CDATASection). |
|
|
165
|
-
| createComment(data) | Ti.XML.Comment | both | Creates a [Comment](Titanium.XML.Comment) with the supplied string data. |
|
|
166
|
-
| createDocumentFragment(—) | Ti.XML.DocumentFragment | both | Creates an empty [DocumentFragment](Titanium.XML.DocumentFragment). |
|
|
178
|
+
| createCDATASection(data) | Ti.XML.CDATASection | both | Creates and returns a [CDATASection](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.CDATASection). |
|
|
179
|
+
| createComment(data) | Ti.XML.Comment | both | Creates a [Comment](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Comment) with the supplied string data. |
|
|
180
|
+
| createDocumentFragment(—) | Ti.XML.DocumentFragment | both | Creates an empty [DocumentFragment](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.DocumentFragment). |
|
|
167
181
|
| createElement(tagName) | Ti.XML.Element | both | Creates an element with the given tag name. |
|
|
168
182
|
| createElementNS(namespaceURI, name) | Ti.XML.Element | both | Create a new element with the given namespace and name. |
|
|
169
|
-
| createEntityReference(name) | Ti.XML.EntityReference | both | Creates an [EntityReference](Titanium.XML.EntityReference) with the given name. |
|
|
183
|
+
| createEntityReference(name) | Ti.XML.EntityReference | both | Creates an [EntityReference](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.EntityReference) with the given name. |
|
|
170
184
|
| createProcessingInstruction(target, data) | Ti.XML.ProcessingInstruction | both | Creates a processing instruction for inserting into the DOM tree. |
|
|
171
185
|
| createTextNode(data) | Ti.XML.Text | both | Creates a text node. |
|
|
172
|
-
| getElementById(elementId) | Ti.XML.Element | both | Returns an [Element](Titanium.XML.Element) that has an ID attribute with the gi… |
|
|
186
|
+
| getElementById(elementId) | Ti.XML.Element | both | Returns an [Element](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Element) that has an ID attribute with the gi… |
|
|
173
187
|
| getElementsByTagName(tagname) | Ti.XML.NodeList | both | Returns a node list of elements in the document which have the given tag. |
|
|
174
188
|
| getElementsByTagNameNS(namespaceURI, localname) | Ti.XML.NodeList | both | Returns a node list of elements in the document which belong to the given names… |
|
|
175
189
|
| importNode(importedNode, deep) | Ti.XML.Node | both | Imports a node from another document to this document, without altering or remo… |
|
|
@@ -178,6 +192,8 @@ This has been reported as [Android Issue #7395](http://code.google.com/p/android
|
|
|
178
192
|
---
|
|
179
193
|
|
|
180
194
|
## Ti.XML.DocumentFragment
|
|
195
|
+
> Full released contract: [Titanium.XML.DocumentFragment](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.DocumentFragment)
|
|
196
|
+
|
|
181
197
|
> A lightweight document object used as a container for a group of nodes.
|
|
182
198
|
> Extends Ti.XML.Node
|
|
183
199
|
> Platforms: both
|
|
@@ -192,6 +208,8 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
192
208
|
---
|
|
193
209
|
|
|
194
210
|
## Ti.XML.DocumentType
|
|
211
|
+
> Full released contract: [Titanium.XML.DocumentType](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.DocumentType)
|
|
212
|
+
|
|
195
213
|
> Each <Titanium.XML.Document> has a `doctype` attribute whose value is either 'null' or a <Titanium.XML.DocumentType> object.
|
|
196
214
|
> Extends Ti.XML.Node
|
|
197
215
|
> Platforms: both
|
|
@@ -216,7 +234,9 @@ As of version 3.1, Android still does not truly support DTDs. A document with a
|
|
|
216
234
|
---
|
|
217
235
|
|
|
218
236
|
## Ti.XML.Element
|
|
219
|
-
>
|
|
237
|
+
> Full released contract: [Titanium.XML.Element](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Element)
|
|
238
|
+
|
|
239
|
+
> Represents an element in a DOM document, a <Titanium.XML.Node> defined by a start-tag and end-tag (or an empty tag). Elements may have [attributes](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Attr) associated with them. Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-745549614) on Android and iOS with some non-standard extensions.
|
|
220
240
|
> Extends Ti.XML.Node
|
|
221
241
|
> Platforms: both
|
|
222
242
|
|
|
@@ -251,6 +271,8 @@ As of version 3.1, Android still does not truly support DTDs. A document with a
|
|
|
251
271
|
---
|
|
252
272
|
|
|
253
273
|
## Ti.XML.Entity
|
|
274
|
+
> Full released contract: [Titanium.XML.Entity](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Entity)
|
|
275
|
+
|
|
254
276
|
> This interface represents an entity, either parsed or unparsed, in an XML document. Note that this models the entity itself not the entity declaration. The nodeName attribute that is inherited from Node contains the name of the entity. An Entity node does not have any parent. Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-527DCFF2) on Android and iOS.
|
|
255
277
|
> Extends Ti.XML.Node
|
|
256
278
|
> Platforms: both
|
|
@@ -268,6 +290,8 @@ As of version 3.1, Android still does not truly support DTDs. A document with a
|
|
|
268
290
|
---
|
|
269
291
|
|
|
270
292
|
## Ti.XML.EntityReference
|
|
293
|
+
> Full released contract: [Titanium.XML.EntityReference](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.EntityReference)
|
|
294
|
+
|
|
271
295
|
> Represents an XML entity reference.
|
|
272
296
|
> Extends Ti.XML.Node
|
|
273
297
|
> Platforms: both
|
|
@@ -280,6 +304,8 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
280
304
|
---
|
|
281
305
|
|
|
282
306
|
## Ti.XML.NamedNodeMap
|
|
307
|
+
> Full released contract: [Titanium.XML.NamedNodeMap](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.NamedNodeMap)
|
|
308
|
+
|
|
283
309
|
> A key-value paired map that maps String objects to <Titanium.XML.Node> objects. Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1780488922) on Android and iOS.
|
|
284
310
|
> Extends Ti.Proxy
|
|
285
311
|
> Platforms: both
|
|
@@ -305,13 +331,15 @@ Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.htm
|
|
|
305
331
|
---
|
|
306
332
|
|
|
307
333
|
## Ti.XML.Node
|
|
308
|
-
>
|
|
334
|
+
> Full released contract: [Titanium.XML.Node](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Node)
|
|
335
|
+
|
|
336
|
+
> A single node in the [Document](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Document) tree.
|
|
309
337
|
> Extends Ti.Proxy
|
|
310
338
|
> Platforms: both
|
|
311
339
|
|
|
312
340
|
Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247) on Android and iOS.
|
|
313
341
|
|
|
314
|
-
Note that on iOS, only [Element](Titanium.XML.Element) nodes are mutable. This means that the methods `appendChild`, `insertBefore`, `removeChild`, and `replaceChild` only work on `Element` objects. If one of these methods is called on another type of node, it throws an exception.
|
|
342
|
+
Note that on iOS, only [Element](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Element) nodes are mutable. This means that the methods `appendChild`, `insertBefore`, `removeChild`, and `replaceChild` only work on `Element` objects. If one of these methods is called on another type of node, it throws an exception.
|
|
315
343
|
|
|
316
344
|
### Properties (unique: 16/31)
|
|
317
345
|
| Property | Type | Default | Platform | Description |
|
|
@@ -365,6 +393,8 @@ Note that on iOS, only [Element](Titanium.XML.Element) nodes are mutable. This m
|
|
|
365
393
|
---
|
|
366
394
|
|
|
367
395
|
## Ti.XML.NodeList
|
|
396
|
+
> Full released contract: [Titanium.XML.NodeList](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.NodeList)
|
|
397
|
+
|
|
368
398
|
> A list of <Titanium.XML.Node> objects. Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-536297177) on Android and iOS.
|
|
369
399
|
> Extends Ti.Proxy
|
|
370
400
|
> Platforms: both
|
|
@@ -384,6 +414,8 @@ Note that on iOS, only [Element](Titanium.XML.Element) nodes are mutable. This m
|
|
|
384
414
|
---
|
|
385
415
|
|
|
386
416
|
## Ti.XML.Notation
|
|
417
|
+
> Full released contract: [Titanium.XML.Notation](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Notation)
|
|
418
|
+
|
|
387
419
|
> Represents a notation declared in the DTD. Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-5431D1B9) on Android and iOS.
|
|
388
420
|
> Extends Ti.Proxy
|
|
389
421
|
> Platforms: both
|
|
@@ -400,6 +432,8 @@ Note that on iOS, only [Element](Titanium.XML.Element) nodes are mutable. This m
|
|
|
400
432
|
---
|
|
401
433
|
|
|
402
434
|
## Ti.XML.ProcessingInstruction
|
|
435
|
+
> Full released contract: [Titanium.XML.ProcessingInstruction](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.ProcessingInstruction)
|
|
436
|
+
|
|
403
437
|
> A way to keep processor-specific information in the text of the document. Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1004215813) on Android and iOS.
|
|
404
438
|
> Extends Ti.Proxy
|
|
405
439
|
> Platforms: both
|
|
@@ -416,6 +450,8 @@ Note that on iOS, only [Element](Titanium.XML.Element) nodes are mutable. This m
|
|
|
416
450
|
---
|
|
417
451
|
|
|
418
452
|
## Ti.XML.Text
|
|
453
|
+
> Full released contract: [Titanium.XML.Text](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.XML.Text)
|
|
454
|
+
|
|
419
455
|
> Represents the textual content of an <Titanium.XML.Element> or <Titanium.XML.Attr> Implements the [DOM Level 2 API](https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1312295772) on Android and iOS.
|
|
420
456
|
> Extends Ti.XML.CharacterData
|
|
421
457
|
> Platforms: both
|
|
@@ -435,6 +471,8 @@ Note that on iOS, only [Element](Titanium.XML.Element) nodes are mutable. This m
|
|
|
435
471
|
---
|
|
436
472
|
|
|
437
473
|
## Global
|
|
474
|
+
> Full released contract: [Global](https://titaniumsdk.com/docs/sdk/13.4.1/Global)
|
|
475
|
+
|
|
438
476
|
> The APIs that reside in the global scope, which may be called without a namespace prefix.
|
|
439
477
|
> Extends Object
|
|
440
478
|
> Platforms: both
|
|
@@ -444,24 +482,24 @@ Titanium provides a number of global built-in objects, detailed below.
|
|
|
444
482
|
|
|
445
483
|
### String Utilities
|
|
446
484
|
|
|
447
|
-
Titanium includes several extra utility functions for formatting text, attached to the global [String](Global.String) object.
|
|
485
|
+
Titanium includes several extra utility functions for formatting text, attached to the global [String](https://titaniumsdk.com/docs/sdk/13.4.1/Global.String) object.
|
|
448
486
|
|
|
449
487
|
### console
|
|
450
488
|
|
|
451
|
-
Titanium provides [console](Global.Console) support familiar to many JavaScript developers for logging at the toplevel, in addition to the [Titanium](Titanium.API) logging facilities.
|
|
489
|
+
Titanium provides [console](https://titaniumsdk.com/docs/sdk/13.4.1/Global.Console) support familiar to many JavaScript developers for logging at the toplevel, in addition to the [Titanium](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.API) logging facilities.
|
|
452
490
|
|
|
453
491
|
### Timers
|
|
454
492
|
|
|
455
493
|
Titanium has built-in support for one-off and repeating timers:
|
|
456
494
|
|
|
457
|
-
|
|
495
|
+
Complete overview, setup, examples and version restrictions: [official Global API](https://titaniumsdk.com/docs/sdk/13.4.1/Global).
|
|
458
496
|
|
|
459
497
|
### Properties (unique: 4/16)
|
|
460
498
|
| Property | Type | Default | Platform | Description |
|
|
461
499
|
|----------|------|---------|----------|-------------|
|
|
462
500
|
| console | Global.Console | — | both | Console logging facilities. |
|
|
463
501
|
| global | Global | — | both | Reference to the global object itself. |
|
|
464
|
-
| Buffer | buffer.Buffer | — | both | a global reference to the [Buffer](buffer.Buffer) class. |
|
|
502
|
+
| Buffer | buffer.Buffer | — | both | a global reference to the [Buffer](https://titaniumsdk.com/docs/sdk/13.4.1/buffer.Buffer) class. |
|
|
465
503
|
| process | process | — | both | Reference to the global `process` object. |
|
|
466
504
|
|
|
467
505
|
### Constants (12)
|
|
@@ -479,7 +517,7 @@ Titanium has built-in support for one-off and repeating timers:
|
|
|
479
517
|
| clearTimeout(timerId) | void | both | Cancels a one-time timer. |
|
|
480
518
|
| decodeURIComponent(encodedURI) | String | both | Replaces each escape sequence in the specified string, created using the `encod… |
|
|
481
519
|
| encodeURIComponent(string) | String | both | Replaces each special character in the specified string with the equivalent URI… |
|
|
482
|
-
| L(key, hint) | String | both | An alias for [Titanium.Locale.getString](Titanium.Locale
|
|
520
|
+
| L(key, hint) | String | both | An alias for [Titanium.Locale.getString](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.Locale). |
|
|
483
521
|
| require(moduleId) | any | both | Loads either a native Titanium module or a CommonJS module. |
|
|
484
522
|
| setInterval(function, delay) | Number | both | Executes a function repeatedly with a fixed time delay between each call to tha… |
|
|
485
523
|
| setTimeout(function, delay) | Number | both | Executes code or a function after a delay. |
|
|
@@ -527,6 +565,8 @@ Titanium has built-in support for one-off and repeating timers:
|
|
|
527
565
|
---
|
|
528
566
|
|
|
529
567
|
## Global.Console
|
|
568
|
+
> Full released contract: [Global.Console](https://titaniumsdk.com/docs/sdk/13.4.1/Global.Console)
|
|
569
|
+
|
|
530
570
|
> Console logging facilities.
|
|
531
571
|
> Extends Object
|
|
532
572
|
> Platforms: both
|
|
@@ -560,6 +600,8 @@ Note that `console` does not currently implement the complete [Console](https://
|
|
|
560
600
|
---
|
|
561
601
|
|
|
562
602
|
## Global.Intl
|
|
603
|
+
> Full released contract: [Global.Intl](https://titaniumsdk.com/docs/sdk/13.4.1/Global.Intl)
|
|
604
|
+
|
|
563
605
|
> Namespace providing JavaScript's standard internationalization APIs.
|
|
564
606
|
> Extends Object
|
|
565
607
|
> Platforms: both
|
|
@@ -579,6 +621,8 @@ For more detail, see the MDN website about [Intl](https://developer.mozilla.org/
|
|
|
579
621
|
---
|
|
580
622
|
|
|
581
623
|
## Global.Intl.Collator
|
|
624
|
+
> Full released contract: [Global.Intl.Collator](https://titaniumsdk.com/docs/sdk/13.4.1/Global.Intl.Collator)
|
|
625
|
+
|
|
582
626
|
> Immutable object used to perform language sensitive string comparisons.
|
|
583
627
|
> Extends Object
|
|
584
628
|
> Platforms: both
|
|
@@ -619,6 +663,8 @@ For more detail, see the MDN website about [Intl.Collator](https://developer.moz
|
|
|
619
663
|
---
|
|
620
664
|
|
|
621
665
|
## Global.Intl.DateTimeFormat
|
|
666
|
+
> Full released contract: [Global.Intl.DateTimeFormat](https://titaniumsdk.com/docs/sdk/13.4.1/Global.Intl.DateTimeFormat)
|
|
667
|
+
|
|
622
668
|
> Immutable object used to generate localized date and time formatted strings.
|
|
623
669
|
> Extends Object
|
|
624
670
|
> Platforms: both
|
|
@@ -672,6 +718,8 @@ For more detail, see the MDN website about [Intl.DateTimeFormat](https://develop
|
|
|
672
718
|
---
|
|
673
719
|
|
|
674
720
|
## Global.Intl.NumberFormat
|
|
721
|
+
> Full released contract: [Global.Intl.NumberFormat](https://titaniumsdk.com/docs/sdk/13.4.1/Global.Intl.NumberFormat)
|
|
722
|
+
|
|
675
723
|
> Immutable object used to convert numbers to localized numeric strings.
|
|
676
724
|
> Extends Object
|
|
677
725
|
> Platforms: both
|
|
@@ -717,6 +765,8 @@ For more detail, see the MDN website about [Intl.NumberFormat](https://developer
|
|
|
717
765
|
---
|
|
718
766
|
|
|
719
767
|
## Global.String
|
|
768
|
+
> Full released contract: [Global.String](https://titaniumsdk.com/docs/sdk/13.4.1/Global.String)
|
|
769
|
+
|
|
720
770
|
> The JavaScript built-in String type.
|
|
721
771
|
> Extends Object
|
|
722
772
|
> Platforms: both
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ti-create-release
|
|
3
|
+
description: 'Use when preparing or publishing a GitHub release of a Titanium native module, building its platform ZIPs, checking release tags and assets, or configuring repository metadata for discovery in the Titanium module directory. Does not apply to App Store/Google Play releases or publishing Titanium SDK itself.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Release a Titanium native module
|
|
7
|
+
|
|
8
|
+
Publish the requested platform packages from a verified source commit, following the repository's release conventions. Also check its discoverability at titaniumsdk.com/modules. This workflow applies to any maintainer's module, including single-platform modules and maintained forks.
|
|
9
|
+
|
|
10
|
+
## Scope and authorization
|
|
11
|
+
|
|
12
|
+
Inspect the user's request before acting. A release-readiness review is read-only; preparing notes/artifacts does not imply publishing. An explicit release request authorizes its scoped publication and accurate discovery metadata updates without another generic confirmation. Resolve concrete ambiguities before the affected mutation, while completing independent preparation.
|
|
13
|
+
|
|
14
|
+
Do not publish app-store builds, Titanium SDK releases or a new TiTools version through this skill. Do not require an unrelated skill or a particular author's repository layout.
|
|
15
|
+
|
|
16
|
+
## 1. Establish the source and release convention
|
|
17
|
+
|
|
18
|
+
Read the repository instructions, README, platform manifests, build scripts/CI and recent releases. Identify the intended GitHub remote, default/release branch, requested platforms, version per platform and known build prerequisites.
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
SLUG=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
|
|
22
|
+
gh api "repos/$SLUG" --jq '{full_name,default_branch,private,archived,fork}'
|
|
23
|
+
gh release list --repo "$SLUG" --limit 10
|
|
24
|
+
git status --short
|
|
25
|
+
git remote -v
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Inspect a representative prior release's tag, title, notes and asset names. Reuse a consistent established convention: some modules release each platform separately; others attach several platform ZIPs to one release. Neither pattern is universal. First releases need a concrete proposed convention grounded in the module's versions and requested scope.
|
|
29
|
+
|
|
30
|
+
Build from the intended merged default branch unless the user or repository specifies a release branch/commit. Fetch and inspect before switching or fast-forwarding. Preserve unrelated work; never reset, stash or commit it automatically. Use an isolated checkout/worktree when necessary to build the agreed commit without disturbing current work.
|
|
31
|
+
|
|
32
|
+
Record the full commit SHA before building. A movable branch name is not sufficient provenance. If a later tracked source edit is needed, commit it within authorization, select the resulting SHA and rebuild before release.
|
|
33
|
+
|
|
34
|
+
## 2. Check directory readiness
|
|
35
|
+
|
|
36
|
+
Read [Module discovery](references/module-discovery.md) before changing metadata. It covers current official discovery rules, additive topics, English About descriptions, GitHub search verification and human Community review.
|
|
37
|
+
|
|
38
|
+
A valid fork release may remain excluded from automatic discovery. Report that separately; directory exclusion alone does not block an otherwise valid authorized release. Do not detach forks, change visibility or fabricate native-platform folders to bypass filters.
|
|
39
|
+
|
|
40
|
+
## 3. Build and inspect the requested packages
|
|
41
|
+
|
|
42
|
+
Use the repository's documented build command and selected SDK/toolchain. Custom scripts may be required for Catalyst destinations, headers or package cleanup. Do not replace them with a guessed generic command. Standard module builds commonly run `ti build -p ios --build-only` or `ti build -p android --build-only` in the matching platform directory, but verify the installed builder and repository first.
|
|
43
|
+
|
|
44
|
+
- Build only the requested/supported platforms. Single-platform releases and independently versioned Android/iOS packages are valid when intended.
|
|
45
|
+
- Confirm fresh output from the recorded source SHA, rather than trusting an existing `dist/` ZIP. Serialize builds when they share generated inputs or output.
|
|
46
|
+
- Inspect ZIP integrity, packaged manifest, module ID, platform, version, minimum SDK and required native payload. Match the manifest inside the ZIP to the intended release, not just the filename.
|
|
47
|
+
- Apple packages conventionally use `iphone` in filenames even when the repository directory is `ios`. Preserve the actual builder output and platform scope, including Catalyst-only restrictions.
|
|
48
|
+
- Record each exact artifact path and SHA-256. Avoid wildcard uploads that can include stale versions.
|
|
49
|
+
|
|
50
|
+
If one requested build fails, fix it before publishing the affected release. Do not silently reduce scope, upload a stale platform package or claim that unbuilt platforms were released.
|
|
51
|
+
|
|
52
|
+
## 4. Prepare notes and resolve tag state
|
|
53
|
+
|
|
54
|
+
Follow the repository's established notes style. Describe the shipped platform changes, version/minimum-SDK changes and compatibility limits; link the relevant PR/commit when one exists. Do not require a PR for a direct committed release, mandate checkbox bullets or invent upstream dependency changes.
|
|
55
|
+
|
|
56
|
+
Write the exact notes to a temporary UTF-8 file and use `--notes-file`. Keep release history out of skill resources.
|
|
57
|
+
|
|
58
|
+
Distinguish an existing **Git tag** from an existing **GitHub release**. A release may legitimately be created for an existing tag, but first verify its remote peeled commit matches the built SHA. An existing release needs a separately authorized update; do not overwrite its assets or move tags as part of creating a new release. If immutable releases are enabled, published tags/assets cannot be replaced.
|
|
59
|
+
|
|
60
|
+
Choose draft/prerelease/latest behavior from the user's intent, semantic version and repository convention. Do not mark a beta stable or replace a newer stable Latest unintentionally. Check `gh release create --help` for the installed CLI behavior.
|
|
61
|
+
|
|
62
|
+
## 5. Publish the agreed release
|
|
63
|
+
|
|
64
|
+
Before publication, have the exact source SHA, tag/title, notes file, platform artifact paths/hashes and release flags ready. Publish only within the existing authorization. For a new tag, target the full built commit SHA. For an already verified remote tag, use `--verify-tag`.
|
|
65
|
+
|
|
66
|
+
Example shell invocation using prepared values and an explicit artifact list:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
gh release create "$RELEASE_TAG" "${RELEASE_ASSETS[@]}" \
|
|
70
|
+
--repo "$SLUG" \
|
|
71
|
+
--target "$RELEASE_COMMIT" \
|
|
72
|
+
--title "$RELEASE_TITLE" \
|
|
73
|
+
--notes-file "$RELEASE_NOTES_FILE"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Set `RELEASE_ASSETS` to the exact requested ZIP paths. Add `--draft`, `--prerelease`, `--latest=false` or `--verify-tag` when the prepared plan requires them. Use one invocation per release grouping established above, rather than forcing one release per platform.
|
|
77
|
+
|
|
78
|
+
If an API/upload fails, inspect the resulting release and assets before retrying: failure does not prove that no remote release was created. Do not create a second tag or replace an existing artifact to hide a partial upload. Report a genuine permission/build/publication blocker with the prepared details.
|
|
79
|
+
|
|
80
|
+
## 6. Verify and report
|
|
81
|
+
|
|
82
|
+
Read the resulting release back. Verify its public/draft status, exact tag commit, requested asset names/sizes and downloaded SHA-256 against the built packages. Authentication may hide a private release's availability to strangers; report visibility accurately.
|
|
83
|
+
|
|
84
|
+
Follow [discovery verification](references/module-discovery.md#verify-discovery). Report these outcomes separately:
|
|
85
|
+
|
|
86
|
+
- Release URL(s), platforms/versions, source SHA and verified assets.
|
|
87
|
+
- Metadata changes, GitHub search eligibility and observed directory inclusion.
|
|
88
|
+
- Any build, visibility, indexing or upstream refresh limitation that remains.
|
|
89
|
+
|
|
90
|
+
A topic update or successful ZIP upload is not proof that the module is already listed or endorsed by TiDev. Do not trigger an upstream refresh or send a maintainer message without task authorization.
|
|
91
|
+
|
|
92
|
+
## Sources
|
|
93
|
+
|
|
94
|
+
- [GitHub CLI release creation](https://cli.github.com/manual/gh_release_create)
|
|
95
|
+
- [GitHub CLI release inspection](https://cli.github.com/manual/gh_release_view)
|
|
96
|
+
- [Titanium module discovery and curation](https://github.com/tidev/titaniumsdk.com/blob/main/docs/module-curation.md)
|
|
97
|
+
|
|
98
|
+
Repository build/release instructions determine module-specific commands and artifacts; the linked discovery reference routes to the current generator and filters.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Automatic discovery in the Titanium module directory
|
|
2
|
+
|
|
3
|
+
Use this during a native-module release or an explicit discovery-readiness task. The directory at [titaniumsdk.com/modules](https://titaniumsdk.com/modules) discovers repositories through GitHub search; it has no Showcase-style submission process.
|
|
4
|
+
|
|
5
|
+
## Check current rules
|
|
6
|
+
|
|
7
|
+
Consult the current official [curation policy](https://github.com/tidev/titaniumsdk.com/blob/main/docs/module-curation.md), [generator](https://github.com/tidev/titaniumsdk.com/blob/main/scripts/generate-community-modules.ts), [exclusion filter](https://github.com/tidev/titaniumsdk.com/blob/main/scripts/lib/community-filter.ts) and [refresh workflow](https://github.com/tidev/titaniumsdk.com/blob/main/.github/workflows/refresh-community-modules.yml). Recheck them when behavior changes; do not assume a past badge, author allowlist or schedule remains current.
|
|
8
|
+
|
|
9
|
+
The current automatic filters are:
|
|
10
|
+
|
|
11
|
+
- A public, non-archived repository that is not a fork.
|
|
12
|
+
- At least one GitHub topic: `titanium`, `titanium-module` or `titanium-sdk`.
|
|
13
|
+
- A language matching the generator's queries: Objective-C (`objc`), Swift, Java, Kotlin or JavaScript.
|
|
14
|
+
- At least one recognized directory at the default branch root: `android`, `ios` or legacy `iphone`. The generator tests these paths through the GitHub contents API.
|
|
15
|
+
- No match in the blocked or already-curated repository sets. An already-curated module uses its existing official listing rather than getting a duplicate community listing.
|
|
16
|
+
|
|
17
|
+
Descriptions improve the generated listing but are not an automatic inclusion filter. Release ZIPs, manifest quality and license are human-review criteria, not extra filters in the current automatic scrape.
|
|
18
|
+
|
|
19
|
+
Do not fabricate platform folders, add misleading language/topics, detach a fork or change visibility to make a repository pass. An Alloy widget without native platform directories does not meet this native-module discovery test. Report such cases for a maintainer decision instead of promising that topics fix them.
|
|
20
|
+
|
|
21
|
+
## Inspect and complete metadata
|
|
22
|
+
|
|
23
|
+
Resolve the intended repository from its remote before changing metadata:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
SLUG=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
|
|
27
|
+
gh api "repos/$SLUG" --jq '{full_name,description,topics,private,archived,fork,language,default_branch}'
|
|
28
|
+
gh api "repos/$SLUG/contents" --jq '.[] | select(.type == "dir") | .name'
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
For an authorized release/discovery task, add missing accurate topics. Adding all three Titanium topics makes the purpose explicit; any one is sufficient for discovery. `--add-topic` preserves existing topics:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
gh repo edit "$SLUG" --add-topic titanium --add-topic titanium-module --add-topic titanium-sdk
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Add a few truthful feature/platform topics when useful. A Mac Catalyst-only module should say `mac-catalyst` and `macos`, rather than implying that it runs on iPhone merely because its package lives under `ios/`.
|
|
38
|
+
|
|
39
|
+
Check GitHub's About description separately from the README. If empty or inaccurate, write a concise English sentence grounded in the README and released functionality: what the module does, its Titanium context and important platform limits. Preserve an existing accurate description. Apply the resulting sentence with `gh repo edit "$SLUG" --description "$DESCRIPTION"`, then read it back. Do not invent capabilities or fill an unknown description with generic marketing text.
|
|
40
|
+
|
|
41
|
+
For example: “Native macOS open and save panels for Titanium SDK apps running on Mac Catalyst.” Use the actual module's capabilities, not this example for every release. A homepage is optional; set one only when an appropriate public documentation/product URL is known and the task calls for it.
|
|
42
|
+
|
|
43
|
+
## Verify discovery
|
|
44
|
+
|
|
45
|
+
1. Read repository metadata back and verify the resulting topics/description. Confirm the default-branch platform paths exist remotely; local unpushed folders do not qualify.
|
|
46
|
+
2. Check GitHub search using the generator's topic and language filters. Scope by owner to keep the result readable, and verify the exact repository is returned:
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
REPO_OWNER=${SLUG%%/*}
|
|
50
|
+
gh api --method GET search/repositories -f "q=titanium in:topics language:objc language:swift language:java language:kotlin language:javascript user:$REPO_OWNER" -f per_page=100 --jq '{incomplete_results, repositories: [.items[].full_name]}'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Repeat with `titanium-module` or `titanium-sdk` when those are the topics used. Paginate if needed; an incomplete/truncated search is not evidence that a missing repository is excluded. A newly added topic may take time to reach GitHub search. Record a pending search result without repeatedly rewriting correct metadata.
|
|
54
|
+
|
|
55
|
+
3. Check current blocked/curated lists if the repository passes search but not the generator. A fork or archived repository remains excluded regardless of topic matches. Do not edit generated `registry/modules/community.json` by hand.
|
|
56
|
+
4. Distinguish **metadata ready**, **found by GitHub search**, **eligible for the scrape**, and **observed in the live directory**. The refresh workflow currently runs daily; wait for its successful regeneration and deployment before claiming the final state. Do not trigger an upstream workflow, open an issue/PR or contact maintainers without task authorization.
|
|
57
|
+
|
|
58
|
+
The generator labels any `ios/` or `iphone/` directory as iOS. For a Catalyst-only module, keep its actual runtime restriction prominent in the description and README; that badge alone does not establish iPhone compatibility.
|
|
59
|
+
|
|
60
|
+
## Human review and release readiness
|
|
61
|
+
|
|
62
|
+
Automatic discovery starts in **Unverified**, unless a maintainer's existing curation entry changes its tier. **Community** requires a person to review the repository against the current policy:
|
|
63
|
+
|
|
64
|
+
- Public GitHub releases with packaged ZIP assets.
|
|
65
|
+
- Parseable per-platform manifests containing `moduleid`, `version` and `minsdk`.
|
|
66
|
+
- An OSI-approved license.
|
|
67
|
+
- Evidence of maintenance within two years, or an explicit statement that the module is finished and works.
|
|
68
|
+
|
|
69
|
+
Check these as release-quality information and report gaps. Do not change curation/author allowlists or claim TiDev endorsement. **Official** means TiDev maintains the module; publishing your own release does not grant that status.
|
|
@@ -560,4 +560,4 @@ aapt2 dump xmltree --file AndroidManifest.xml <apk> | grep -A2 "E: activity"
|
|
|
560
560
|
| Spacing | `left`/`top` as offset from previous sibling in horizontal/vertical |
|
|
561
561
|
| Batch updates | `view.applyProperties({...})` to reduce bridge overhead |
|
|
562
562
|
|
|
563
|
-
For detailed layout APIs, see the `ti-ui` skill's [layouts-and-positioning.md](../../ti-ui/references/layouts-and-positioning.md) and [orientation
|
|
563
|
+
For detailed layout APIs, see the `ti-ui` skill's [layouts-and-positioning.md](../../ti-ui/references/layouts-and-positioning.md) and the released [Window orientation API](https://titaniumsdk.com/docs/sdk/13.4.1/Titanium.UI.Window).
|
|
@@ -1,86 +1,47 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ti-guides
|
|
3
|
-
description: 'Use when working on Titanium SDK fundamentals: project
|
|
3
|
+
description: 'Use when working on current Titanium SDK fundamentals: environment setup, Classic or Alloy project creation and structure, tiapp.xml or timodule.xml configuration, native modules and npm dependencies, Hyperloop, app signing/distribution, Titanium CLI commands/configuration, local persistence, editor integration, released SDK compatibility and release notes. Applies when a project contains tiapp.xml, with Alloy app/ or Classic Resources/ sources. Use ti-api for individual API contracts, alloy-guides for MVC, and ti-howtos for native integrations.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# ti-guides
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- Alloy
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|---|---|
|
|
39
|
-
| Project creation, structure, getting started (Alloy or Classic) | [hello-world.md](references/hello-world.md) |
|
|
40
|
-
| JavaScript fundamentals, learning resources, ES6+ features | [javascript-primer.md](references/javascript-primer.md) |
|
|
41
|
-
| Alloy vs Classic Titanium, framework selection | [application-frameworks.md](references/application-frameworks.md) |
|
|
42
|
-
| Memory leaks, bridge efficiency, event naming, security, lazy loading | [coding-best-practices.md](references/coding-best-practices.md) |
|
|
43
|
-
| Stateful modules, caching, ES6+ support, antipatterns | [commonjs-advanced.md](references/commonjs-advanced.md) |
|
|
44
|
-
| SQLite transactions and image memory optimization | [advanced-data-and-images.md](references/advanced-data-and-images.md) |
|
|
45
|
-
| Hyperloop: Objective-C / Swift / Java syntax, casting, debugging, XIB / Storyboards | [hyperloop-native-access.md](references/hyperloop-native-access.md) |
|
|
46
|
-
| Naming standards and formatting rules | [style-and-conventions.md](references/style-and-conventions.md) |
|
|
47
|
-
| ECMAScript, iOS, and Alloy reserved keywords to avoid | [reserved-words.md](references/reserved-words.md) |
|
|
48
|
-
| Custom `AndroidManifest.xml`, permissions, manifest merge | [android-manifest.md](references/android-manifest.md) |
|
|
49
|
-
| Google Play (APK / AAB), App Store (IPA), certificates, provisioning, deployment | [app-distribution.md](references/app-distribution.md) |
|
|
50
|
-
| Complete `tiapp.xml` and `timodule.xml` reference | [tiapp-config.md](references/tiapp-config.md) |
|
|
51
|
-
| Titanium CLI commands, options, tasks, configuration, build processes | [cli-reference.md](references/cli-reference.md) |
|
|
52
|
-
| JDK, Node.js, Xcode and Android SDK versions each Titanium SDK supports | [compatibility-matrix.md](references/compatibility-matrix.md) |
|
|
53
|
-
| What changed per 13.x release, and which changes affect your code | [sdk-release-notes.md](references/sdk-release-notes.md) |
|
|
54
|
-
| Community support, modules, sample code, Slack, learning materials | [resources.md](references/resources.md) |
|
|
55
|
-
|
|
56
|
-
## Core practices
|
|
57
|
-
|
|
58
|
-
1. Validate that the project follows a modular pattern (CommonJS or Alloy).
|
|
59
|
-
2. Ensure global listeners are removed and heavy objects are nulled during cleanup.
|
|
60
|
-
3. Cache frequently accessed native properties to reduce bridge crossings.
|
|
61
|
-
4. Use Hyperloop for specialized native functionality and handle casting and threading correctly.
|
|
62
|
-
5. Use transactions for database work and manage image memory footprints.
|
|
63
|
-
|
|
64
|
-
## Procedural rules
|
|
65
|
-
|
|
66
|
-
- Always remove `Ti.App` and `Ti.Geolocation` listeners during controller cleanup.
|
|
67
|
-
- Do not access `Ti.Platform` or `Ti.DisplayCaps` inside loops. Store values in local variables.
|
|
68
|
-
- Concatenate Hyperloop selectors accurately (for example, `addAttribute:value:range:` → `addAttributeValueRange`).
|
|
69
|
-
- Close result sets and database handles after every transaction block.
|
|
70
|
-
|
|
71
|
-
## Response format
|
|
72
|
-
|
|
73
|
-
When answering Titanium SDK questions:
|
|
74
|
-
|
|
75
|
-
1. **Technical recommendation** — cite the specific TiDev best practice.
|
|
76
|
-
2. **Optimized implementation** — provide modern ES6+ code.
|
|
77
|
-
3. **Rationale** — briefly explain the performance or memory impact.
|
|
8
|
+
Use current official guides maintained in [tidev/titaniumsdk.com](https://github.com/tidev/titaniumsdk.com). Discover routes through [llms.txt](https://titaniumsdk.com/llms.txt); append `.md` to guide routes. API routes can be pinned, for example `https://titaniumsdk.com/docs/sdk/13.4.1`. Read rendered compatibility Markdown because raw source uses generated includes.
|
|
9
|
+
|
|
10
|
+
This skill covers the released SDK 13.4.1.GA baseline. Verify version-specific contracts against the selected SDK's declarations and implementation; do not treat SDK `main`, an unversioned API page, or SDK 14-only site guidance as released behavior. Current guides can contain errors. Explain a verified discrepancy instead of copying an invalid example.
|
|
11
|
+
|
|
12
|
+
## Routes
|
|
13
|
+
|
|
14
|
+
| Task | Reference |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| Toolchains, setup, Classic/Alloy creation, first run and hardware | [hello-world.md](references/hello-world.md) |
|
|
17
|
+
| Source versus generated files, asset/native paths, framework choice | [application-frameworks.md](references/application-frameworks.md) |
|
|
18
|
+
| Native module installation/declaration and npm runtime compatibility | [commonjs-advanced.md](references/commonjs-advanced.md) |
|
|
19
|
+
| Properties, app files, SQLite cursors, async queries and seed migration | [advanced-data-and-images.md](references/advanced-data-and-images.md) |
|
|
20
|
+
| Hyperloop setup, platform guards, native require paths and bridge costs | [hyperloop-native-access.md](references/hyperloop-native-access.md) |
|
|
21
|
+
| Android manifest elements, merge behavior and release inspection | [android-manifest.md](references/android-manifest.md) |
|
|
22
|
+
| Signing, AAB/archive/IPA workflows, review and code encryption | [app-distribution.md](references/app-distribution.md) |
|
|
23
|
+
| Current tiapp.xml elements, ignored/removed settings and timodule.xml | [tiapp-config.md](references/tiapp-config.md) |
|
|
24
|
+
| Current CLI commands, automation and machine configuration | [cli-reference.md](references/cli-reference.md) |
|
|
25
|
+
| Released toolchain requirements and host/platform support | [compatibility-matrix.md](references/compatibility-matrix.md) |
|
|
26
|
+
| Current registry release notes for SDK 13.4.1 | [sdk-release-notes.md](references/sdk-release-notes.md) |
|
|
27
|
+
| VS Code, Pulsar and JetBrains integration | [resources.md](references/resources.md) |
|
|
28
|
+
|
|
29
|
+
## Working rules
|
|
30
|
+
|
|
31
|
+
- Confirm Classic versus Alloy source ownership before editing. Alloy generates `Resources/`; edit `app/` instead.
|
|
32
|
+
- Pin SDK/module dependencies where reproducibility matters. Separate CLI requirements, SDK declarations and native-module compatibility.
|
|
33
|
+
- A native module needs unpacking, declaration and a require. A JavaScript dependency must fit Titanium's actual runtime/API subset rather than assuming full Node.js or browser support.
|
|
34
|
+
- Close SQLite cursors and database handles on success and failure. Await asynchronous work before closing resources.
|
|
35
|
+
- Properties and encrypted JavaScript are not secure credential storage. Keep server secrets off the device.
|
|
36
|
+
- Verify the final release manifest, privacy manifest placement, signing identity and actual exported artifact before submission.
|
|
37
|
+
- For official guide examples use modern JavaScript, semicolons, braces and spaces. Preserve a regular function when callback behavior depends on its native `this` receiver.
|
|
78
38
|
|
|
79
39
|
## Related skills
|
|
80
40
|
|
|
81
|
-
| Task |
|
|
82
|
-
|
|
83
|
-
| Alloy
|
|
84
|
-
| Alloy CLI,
|
|
85
|
-
| Titanium API
|
|
41
|
+
| Task | Skill |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| Alloy controllers, views, styles, models, collections and widgets | `alloy-guides` |
|
|
44
|
+
| Alloy CLI, build configuration, debugging and localization | `alloy-howtos` |
|
|
45
|
+
| Individual Titanium API properties, methods and event contracts | `ti-api` |
|
|
46
|
+
| Media, notifications, maps, location and other native integrations | `ti-howtos` |
|
|
86
47
|
| Native module dependency updates | `ti-module-update` |
|