@maccesar/titools 5.2.5 → 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.
Files changed (138) hide show
  1. package/CONTRIBUTING.md +1 -1
  2. package/README.md +58 -97
  3. package/agents/ti-pro.md +4 -2
  4. package/commands/ti-audit.md +7 -5
  5. package/docs/examples.md +24 -13
  6. package/docs/knowledge-index.md +2 -1
  7. package/lib/config.js +1 -0
  8. package/package.json +1 -1
  9. package/skills/alloy-guides/SKILL.md +18 -179
  10. package/skills/alloy-guides/references/CLI_TASKS.md +17 -216
  11. package/skills/alloy-guides/references/CONCEPTS.md +27 -162
  12. package/skills/alloy-guides/references/CONTROLLERS.md +38 -236
  13. package/skills/alloy-guides/references/MODELS.md +47 -723
  14. package/skills/alloy-guides/references/MODELS_ADVANCED.md +21 -482
  15. package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +12 -222
  16. package/skills/alloy-guides/references/VIEWS_STYLES.md +39 -358
  17. package/skills/alloy-guides/references/VIEWS_XML.md +36 -552
  18. package/skills/alloy-guides/references/WIDGETS.md +49 -127
  19. package/skills/alloy-howtos/SKILL.md +14 -169
  20. package/skills/alloy-howtos/references/best_practices.md +9 -113
  21. package/skills/alloy-howtos/references/cli_reference.md +18 -223
  22. package/skills/alloy-howtos/references/config_files.md +50 -133
  23. package/skills/alloy-howtos/references/debugging_troubleshooting.md +19 -63
  24. package/skills/alloy-howtos/references/samples.md +21 -138
  25. package/skills/ti-api/SKILL.md +10 -2
  26. package/skills/ti-api/references/api-android.md +36 -2
  27. package/skills/ti-api/references/api-app-platform.md +39 -3
  28. package/skills/ti-api/references/api-core.md +50 -18
  29. package/skills/ti-api/references/api-data-network.md +49 -35
  30. package/skills/ti-api/references/api-media.md +45 -27
  31. package/skills/ti-api/references/api-services.md +39 -9
  32. package/skills/ti-api/references/api-ui-android.md +33 -13
  33. package/skills/ti-api/references/api-ui-extras.md +41 -15
  34. package/skills/ti-api/references/api-ui-ios-animator.md +42 -26
  35. package/skills/ti-api/references/api-ui-ios.md +74 -2
  36. package/skills/ti-api/references/api-ui-lists.md +32 -16
  37. package/skills/ti-api/references/api-ui-text-input.md +34 -17
  38. package/skills/ti-api/references/api-ui-views.md +27 -1
  39. package/skills/ti-api/references/api-ui-windows-navigation.md +32 -18
  40. package/skills/ti-api/references/api-xml-global.md +66 -16
  41. package/skills/ti-create-release/SKILL.md +98 -0
  42. package/skills/ti-create-release/references/module-discovery.md +69 -0
  43. package/skills/ti-expert/references/adaptive-layouts.md +1 -1
  44. package/skills/ti-guides/SKILL.md +37 -76
  45. package/skills/ti-guides/references/advanced-data-and-images.md +122 -126
  46. package/skills/ti-guides/references/android-manifest.md +24 -83
  47. package/skills/ti-guides/references/app-distribution.md +31 -377
  48. package/skills/ti-guides/references/application-frameworks.md +127 -335
  49. package/skills/ti-guides/references/cli-reference.md +184 -633
  50. package/skills/ti-guides/references/commonjs-advanced.md +81 -231
  51. package/skills/ti-guides/references/compatibility-matrix.md +36 -75
  52. package/skills/ti-guides/references/hello-world.md +95 -70
  53. package/skills/ti-guides/references/hyperloop-native-access.md +52 -448
  54. package/skills/ti-guides/references/resources.md +174 -142
  55. package/skills/ti-guides/references/sdk-release-notes.md +28 -71
  56. package/skills/ti-guides/references/tiapp-config.md +222 -598
  57. package/skills/ti-howtos/SKILL.md +23 -123
  58. package/skills/ti-howtos/references/cross-platform-development.md +119 -324
  59. package/skills/ti-howtos/references/debugging-profiling.md +77 -445
  60. package/skills/ti-howtos/references/extending-titanium.md +199 -673
  61. package/skills/ti-howtos/references/local-data-sources.md +87 -300
  62. package/skills/ti-howtos/references/location-and-maps.md +86 -213
  63. package/skills/ti-howtos/references/media-apis.md +103 -223
  64. package/skills/ti-howtos/references/notification-services.md +86 -506
  65. package/skills/ti-howtos/references/remote-data-sources.md +97 -316
  66. package/skills/ti-howtos/references/using-modules.md +77 -133
  67. package/skills/ti-synthengine/SKILL.md +62 -111
  68. package/skills/ti-synthengine/assets/example/README.md +50 -59
  69. package/skills/ti-synthengine/assets/example/app.js +67 -65
  70. package/skills/ti-synthengine/assets/example/lib/sequenceOwner.js +39 -40
  71. package/skills/ti-synthengine/assets/example/lib/soundPreset.js +34 -0
  72. package/skills/ti-synthengine/assets/index.d.ts +122 -2
  73. package/skills/ti-synthengine/references/advanced-examples.md +4 -4
  74. package/skills/ti-synthengine/references/api.md +40 -18
  75. package/skills/ti-synthengine/references/audio-engine.md +15 -57
  76. package/skills/ti-synthengine/references/examples.md +63 -6
  77. package/skills/ti-synthengine/references/guide.md +61 -57
  78. package/skills/ti-synthengine/references/instruments-and-effects.md +15 -15
  79. package/skills/ti-synthengine/references/native-variation.md +53 -14
  80. package/skills/ti-synthengine/references/recipes-interaction.md +25 -20
  81. package/skills/ti-synthengine/references/recipes.md +19 -16
  82. package/skills/ti-synthengine/references/recommendations.md +12 -12
  83. package/skills/ti-synthengine/references/sound-api.md +197 -0
  84. package/skills/ti-synthengine/references/sound-design.md +7 -7
  85. package/skills/ti-synthengine/references/source-notes.md +62 -172
  86. package/skills/ti-synthengine/references/troubleshooting.md +17 -19
  87. package/skills/ti-synthengine/references/upgrade-2.0.0.md +40 -0
  88. package/skills/ti-ui/SKILL.md +28 -143
  89. package/skills/ti-ui/references/icons-and-splash-screens.md +74 -403
  90. package/skills/ti-ui/references/layouts-and-positioning.md +175 -402
  91. package/skills/ti-ui/references/listviews-and-performance.md +100 -703
  92. package/skills/ti-ui/references/platform-conventions.md +180 -0
  93. package/skills/ti-ui/references/user-interface.md +43 -0
  94. package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +0 -102
  95. package/skills/alloy-howtos/references/custom_tags.md +0 -148
  96. package/skills/ti-guides/references/coding-best-practices.md +0 -149
  97. package/skills/ti-guides/references/javascript-primer.md +0 -414
  98. package/skills/ti-guides/references/reserved-words.md +0 -36
  99. package/skills/ti-guides/references/style-and-conventions.md +0 -103
  100. package/skills/ti-howtos/references/android-platform-deep-dives.md +0 -624
  101. package/skills/ti-howtos/references/automation-fastlane-appium.md +0 -96
  102. package/skills/ti-howtos/references/buffer-codec-streams.md +0 -162
  103. package/skills/ti-howtos/references/google-maps-v2.md +0 -172
  104. package/skills/ti-howtos/references/ios-map-kit.md +0 -149
  105. package/skills/ti-howtos/references/ios-platform-deep-dives.md +0 -611
  106. package/skills/ti-howtos/references/tutorials.md +0 -565
  107. package/skills/ti-howtos/references/web-content-integration.md +0 -287
  108. package/skills/ti-howtos/references/webpack-build-pipeline.md +0 -124
  109. package/skills/ti-synthengine/references/android-sim80-correction-evidence.zip +0 -0
  110. package/skills/ti-synthengine/references/android-sim80-correction.json +0 -162
  111. package/skills/ti-synthengine/references/audio-pipeline-validation.md +0 -19
  112. package/skills/ti-synthengine/references/bypass-physical-recheck-evidence.zip +0 -0
  113. package/skills/ti-synthengine/references/frontier-android-evidence.zip +0 -0
  114. package/skills/ti-synthengine/references/frontier-ipad-evidence.zip +0 -0
  115. package/skills/ti-synthengine/references/frontier-physical-validation.json +0 -1918
  116. package/skills/ti-synthengine/references/native-tone-repetition-validation.md +0 -59
  117. package/skills/ti-synthengine/references/native-variation-proposal.md +0 -182
  118. package/skills/ti-synthengine/references/native-variation-validation.md +0 -63
  119. package/skills/ti-synthengine/references/performance-review-evidence.zip +0 -0
  120. package/skills/ti-synthengine/references/performance-review.json +0 -1146
  121. package/skills/ti-synthengine/references/physical-validation.json +0 -1457
  122. package/skills/ti-synthengine/references/source-snapshot.json +0 -542
  123. package/skills/ti-synthengine/references/stats-performance.json +0 -2992
  124. package/skills/ti-synthengine/references/stats-performance.md +0 -82
  125. package/skills/ti-synthengine/references/studio-validation.json +0 -6202
  126. package/skills/ti-synthengine/references/unified-bypass-performance.json +0 -22425
  127. package/skills/ti-synthengine/references/unified-validation.json +0 -314
  128. package/skills/ti-ui/references/accessibility-deep-dive.md +0 -288
  129. package/skills/ti-ui/references/animation-and-matrices.md +0 -569
  130. package/skills/ti-ui/references/application-structures.md +0 -626
  131. package/skills/ti-ui/references/custom-fonts-styling.md +0 -549
  132. package/skills/ti-ui/references/event-handling.md +0 -401
  133. package/skills/ti-ui/references/gestures.md +0 -448
  134. package/skills/ti-ui/references/orientation.md +0 -374
  135. package/skills/ti-ui/references/platform-ui-android.md +0 -727
  136. package/skills/ti-ui/references/platform-ui-ios.md +0 -576
  137. package/skills/ti-ui/references/scrolling-views.md +0 -288
  138. 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
- > Represents an attribute of an [Element](Titanium.XML.Element).
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
- > 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](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.
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
- > A single node in the [Document](Titanium.XML.Document) tree.
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
- *(See full overview in titanium-docs)*
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.getString). |
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.md](../../ti-ui/references/orientation.md).
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 configuration (`tiapp.xml`, `timodule.xml`), CommonJS modules, Hyperloop native access, app distribution (App Store / Google Play, certificates, provisioning), Titanium CLI usage, memory management, bridge optimization, SQLite transactions, image memory, coding standards, the compatibility matrix (which JDK, Node.js, Xcode or Android SDK a given Titanium SDK needs), or what changed in a Titanium SDK release. Triggers include `tiapp.xml` in the project root, for either Alloy (`app/`) or Classic (`Resources/`) Titanium projects.'
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
- ## Overview
9
-
10
- Reference for Titanium SDK fundamentals: project configuration, distribution, native access via Hyperloop, CommonJS module patterns, memory and bridge optimization, and TiDev coding standards. Applies to both Alloy and Classic projects.
11
-
12
- ## When to use
13
-
14
- Use this skill when:
15
-
16
- - The project contains `tiapp.xml` (definitive Titanium project indicator)
17
- - Configuring `tiapp.xml` or `timodule.xml`
18
- - Setting up app distribution (App Store / Google Play, certificates, provisioning, AAB / IPA)
19
- - Using Hyperloop to call native APIs (Objective-C / Swift / Java)
20
- - Optimizing memory: removing global listeners, caching native properties, image memory footprints
21
- - Working with the Titanium CLI (`ti build`, `ti sdk install`, `ti sdk select`)
22
- - Checking which JDK, Node.js, Xcode or Android SDK a Titanium SDK version requires
23
- - Finding out what changed in a Titanium SDK release and whether it affects existing code
24
- - Writing CommonJS modules (stateful caching, ES6+ patterns, antipatterns)
25
- - Authoring `AndroidManifest.xml` overrides
26
- - Following TiDev style and naming conventions
27
-
28
- Do NOT use for:
29
-
30
- - Alloy MVC concepts, controllers, models (use `alloy-guides`)
31
- - Alloy CLI usage and configuration files (use `alloy-howtos`)
32
- - Looking up specific Titanium API surfaces (use `ti-api`)
33
- - Native module dependency updates (use `ti-module-update`)
34
-
35
- ## Quick reference
36
-
37
- | Topic | Reference |
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 | Use this skill |
82
- |---|---|
83
- | Alloy MVC concepts, controllers, models, data binding | `alloy-guides` |
84
- | Alloy CLI, `alloy.jmk`, `config.json`, debugging | `alloy-howtos` |
85
- | Titanium API lookup (Ti.UI, Ti.Network, modules) | `ti-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` |