@maccesar/titools 2.2.4 → 2.2.8

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 (96) hide show
  1. package/README.md +23 -23
  2. package/lib/commands/update.js +4 -12
  3. package/package.json +1 -1
  4. package/skills/alloy-guides/SKILL.md +31 -31
  5. package/skills/alloy-guides/references/CONCEPTS.md +3 -3
  6. package/skills/alloy-guides/references/CONTROLLERS.md +1 -1
  7. package/skills/alloy-guides/references/MODELS.md +6 -6
  8. package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +1 -1
  9. package/skills/alloy-guides/references/VIEWS_XML.md +1 -1
  10. package/skills/alloy-guides/references/WIDGETS.md +1 -1
  11. package/skills/alloy-howtos/SKILL.md +27 -27
  12. package/skills/alloy-howtos/references/best_practices.md +9 -9
  13. package/skills/alloy-howtos/references/cli_reference.md +14 -14
  14. package/skills/alloy-howtos/references/config_files.md +16 -16
  15. package/skills/alloy-howtos/references/custom_tags.md +16 -16
  16. package/skills/alloy-howtos/references/debugging_troubleshooting.md +11 -15
  17. package/skills/alloy-howtos/references/samples.md +19 -19
  18. package/skills/purgetss/SKILL.md +11 -1
  19. package/skills/purgetss/references/animation-system.md +1 -1
  20. package/skills/purgetss/references/cli-commands.md +3 -3
  21. package/skills/purgetss/references/customization-deep-dive.md +1 -1
  22. package/skills/purgetss/references/dynamic-component-creation.md +1 -1
  23. package/skills/purgetss/references/icon-fonts.md +4 -0
  24. package/skills/purgetss/references/installation-setup.md +8 -1
  25. package/skills/purgetss/references/migration-guide.md +4 -0
  26. package/skills/purgetss/references/tikit-components.md +193 -204
  27. package/skills/purgetss/references/ui-ux-design.md +1 -1
  28. package/skills/ti-expert/SKILL.md +78 -118
  29. package/skills/ti-expert/references/alloy-builtins.md +18 -18
  30. package/skills/ti-expert/references/alloy-structure.md +21 -21
  31. package/skills/ti-expert/references/anti-patterns.md +15 -15
  32. package/skills/ti-expert/references/cli-expert.md +15 -15
  33. package/skills/ti-expert/references/code-conventions.md +38 -38
  34. package/skills/ti-expert/references/contracts.md +8 -8
  35. package/skills/ti-expert/references/controller-patterns.md +14 -14
  36. package/skills/ti-expert/references/error-handling.md +11 -11
  37. package/skills/ti-expert/references/examples.md +12 -12
  38. package/skills/ti-expert/references/migration-patterns.md +24 -24
  39. package/skills/ti-expert/references/patterns.md +10 -10
  40. package/skills/ti-expert/references/performance-listview.md +16 -16
  41. package/skills/ti-expert/references/performance-optimization.md +41 -41
  42. package/skills/ti-expert/references/security-device.md +22 -22
  43. package/skills/ti-expert/references/security-fundamentals.md +19 -19
  44. package/skills/ti-expert/references/state-management.md +33 -33
  45. package/skills/ti-expert/references/testing-e2e-ci.md +25 -25
  46. package/skills/ti-expert/references/testing-unit.md +24 -24
  47. package/skills/ti-expert/references/theming.md +15 -15
  48. package/skills/ti-guides/SKILL.md +58 -60
  49. package/skills/ti-guides/references/advanced-data-and-images.md +33 -33
  50. package/skills/ti-guides/references/android-manifest.md +15 -15
  51. package/skills/ti-guides/references/app-distribution.md +70 -166
  52. package/skills/ti-guides/references/application-frameworks.md +96 -114
  53. package/skills/ti-guides/references/cli-reference.md +294 -294
  54. package/skills/ti-guides/references/coding-best-practices.md +42 -33
  55. package/skills/ti-guides/references/commonjs-advanced.md +57 -51
  56. package/skills/ti-guides/references/hello-world.md +36 -36
  57. package/skills/ti-guides/references/hyperloop-native-access.md +66 -66
  58. package/skills/ti-guides/references/javascript-primer.md +83 -101
  59. package/skills/ti-guides/references/reserved-words.md +9 -9
  60. package/skills/ti-guides/references/resources.md +75 -83
  61. package/skills/ti-guides/references/style-and-conventions.md +35 -28
  62. package/skills/ti-guides/references/tiapp-config.md +110 -74
  63. package/skills/ti-howtos/SKILL.md +88 -92
  64. package/skills/ti-howtos/references/android-platform-deep-dives.md +104 -104
  65. package/skills/ti-howtos/references/automation-fastlane-appium.md +39 -39
  66. package/skills/ti-howtos/references/buffer-codec-streams.md +60 -60
  67. package/skills/ti-howtos/references/cross-platform-development.md +115 -136
  68. package/skills/ti-howtos/references/debugging-profiling.md +167 -181
  69. package/skills/ti-howtos/references/extending-titanium.md +121 -121
  70. package/skills/ti-howtos/references/google-maps-v2.md +84 -82
  71. package/skills/ti-howtos/references/ios-map-kit.md +65 -60
  72. package/skills/ti-howtos/references/ios-platform-deep-dives.md +123 -123
  73. package/skills/ti-howtos/references/local-data-sources.md +79 -78
  74. package/skills/ti-howtos/references/location-and-maps.md +116 -120
  75. package/skills/ti-howtos/references/media-apis.md +87 -86
  76. package/skills/ti-howtos/references/notification-services.md +250 -260
  77. package/skills/ti-howtos/references/remote-data-sources.md +98 -93
  78. package/skills/ti-howtos/references/tutorials.md +226 -216
  79. package/skills/ti-howtos/references/using-modules.md +73 -102
  80. package/skills/ti-howtos/references/web-content-integration.md +101 -103
  81. package/skills/ti-howtos/references/webpack-build-pipeline.md +52 -44
  82. package/skills/ti-ui/SKILL.md +85 -85
  83. package/skills/ti-ui/references/accessibility-deep-dive.md +57 -57
  84. package/skills/ti-ui/references/animation-and-matrices.md +79 -79
  85. package/skills/ti-ui/references/application-structures.md +96 -99
  86. package/skills/ti-ui/references/custom-fonts-styling.md +99 -99
  87. package/skills/ti-ui/references/event-handling.md +58 -58
  88. package/skills/ti-ui/references/gestures.md +62 -64
  89. package/skills/ti-ui/references/icons-and-splash-screens.md +88 -88
  90. package/skills/ti-ui/references/layouts-and-positioning.md +87 -97
  91. package/skills/ti-ui/references/listviews-and-performance.md +107 -107
  92. package/skills/ti-ui/references/orientation.md +87 -88
  93. package/skills/ti-ui/references/platform-ui-android.md +87 -81
  94. package/skills/ti-ui/references/platform-ui-ios.md +63 -61
  95. package/skills/ti-ui/references/scrolling-views.md +29 -29
  96. package/skills/ti-ui/references/tableviews.md +56 -56
@@ -2,22 +2,22 @@
2
2
 
3
3
  ## 1. Overview
4
4
 
5
- TableView is a scrolling list component that displays rows of data. While ListView is the recommended modern API for most use cases, TableView remains useful for:
5
+ TableView is a scrolling list component that displays rows of data. ListView is the recommended modern API for most cases, but TableView is still useful for:
6
6
  - Complex row animations
7
7
  - Direct child view access
8
8
  - Legacy code compatibility
9
- - UI patterns requiring direct row manipulation
9
+ - UI patterns that need direct row manipulation
10
10
 
11
11
  ## 2. TableView vs ListView
12
12
 
13
13
  | Feature | TableView | ListView |
14
14
  | ------------------- | ------------------------------- | ---------------------------- |
15
- | **Recommended for** | Legacy apps, complex animations | New apps, large datasets |
16
- | **Data binding** | Direct row object access | Template-based binding |
17
- | **Performance** | Good for small datasets | Optimized for large datasets |
18
- | **Row access** | Direct children access | Virtual, data-only updates |
19
- | **Animations** | Full row animation support | Limited |
20
- | **Complexity** | Simpler for basic needs | More setup required |
15
+ | Recommended for | Legacy apps, complex animations | New apps, large datasets |
16
+ | Data binding | Direct row object access | Template-based binding |
17
+ | Performance | Good for small datasets | Optimized for large datasets |
18
+ | Row access | Direct children access | Virtual, data-only updates |
19
+ | Animations | Full row animation support | Limited |
20
+ | Complexity | Simpler for basic needs | More setup required |
21
21
 
22
22
  ## 3. Creating a TableView
23
23
 
@@ -40,7 +40,7 @@ win.add(table);
40
40
  ...
41
41
  ## 4. Creating rows
42
42
 
43
- ### Object Literal Rows (Simple)
43
+ ### Object literal rows (simple)
44
44
 
45
45
  ```javascript
46
46
  const data = [
@@ -56,7 +56,7 @@ const table = Ti.UI.createTableView({
56
56
  win.add(table);
57
57
  ```
58
58
 
59
- ### Explicit TableViewRow Objects
59
+ ### Explicit TableViewRow objects
60
60
 
61
61
  ```javascript
62
62
  const row = Ti.UI.createTableViewRow({
@@ -87,11 +87,11 @@ for (let i = 0; i < 100; i++) {
87
87
  }
88
88
  ```
89
89
 
90
- **Best Practice**: Use `setData()` for multiple rows. `appendRow()` is significantly slower.
90
+ Best practice: use `setData()` for multiple rows. `appendRow()` is significantly slower.
91
91
 
92
- ## 5. Row Properties
92
+ ## 5. Row properties
93
93
 
94
- ### Built-in Row Properties
94
+ ### Built-in row properties
95
95
 
96
96
  | Property | Description |
97
97
  | ----------------- | --------------------------------- |
@@ -107,7 +107,7 @@ for (let i = 0; i < 100; i++) {
107
107
  | `header` | Section header text |
108
108
  | `footer` | Section footer text |
109
109
 
110
- ### Styled Rows Example
110
+ ### Styled rows example
111
111
 
112
112
  ```javascript
113
113
  const data = [
@@ -119,7 +119,7 @@ const data = [
119
119
  const table = Ti.UI.createTableView({ data: data });
120
120
  ```
121
121
 
122
- ### Row Indicators
122
+ ### Row indicators
123
123
 
124
124
  Row indicators provide visual cues:
125
125
 
@@ -134,9 +134,9 @@ Row indicators provide visual cues:
134
134
  { title: 'Selected', hasCheck: true } // checkmark
135
135
  ```
136
136
 
137
- ## 6. Custom Rows
137
+ ## 6. Custom rows
138
138
 
139
- ### Adding Child Views
139
+ ### Add child views
140
140
 
141
141
  ```javascript
142
142
  const data = [];
@@ -175,13 +175,13 @@ for (let i = 0; i < 10; i++) {
175
175
  const table = Ti.UI.createTableView({ data: data });
176
176
  ```
177
177
 
178
- ### Performance Warning
178
+ ### Performance warning
179
179
 
180
- **Warning**: Complex rows have performance implications. Each unique UI element adds resource requirements multiplied by the number of rows. Test on device and scale back if necessary.
180
+ Warning: complex rows have performance costs. Each extra UI element multiplies resource use across rows. Test on device and simplify if needed.
181
181
 
182
- ## 7. Headers and Footers
182
+ ## 7. Headers and footers
183
183
 
184
- ### Table-Level Headers/Footers
184
+ ### Table-level headers and footers
185
185
 
186
186
  ```javascript
187
187
  const table = Ti.UI.createTableView({
@@ -191,7 +191,7 @@ const table = Ti.UI.createTableView({
191
191
  });
192
192
  ```
193
193
 
194
- ### Custom Header/Footer Views
194
+ ### Custom header and footer views
195
195
 
196
196
  ```javascript
197
197
  function createCustomView(title) {
@@ -217,7 +217,7 @@ const table = Ti.UI.createTableView({
217
217
  });
218
218
  ```
219
219
 
220
- ### Section Headers/Footers
220
+ ### Section headers and footers
221
221
 
222
222
  ```javascript
223
223
  const data = [
@@ -231,7 +231,7 @@ const data = [
231
231
  const table = Ti.UI.createTableView({ data: data });
232
232
  ```
233
233
 
234
- ## 8. Grouped Table Style (iOS)
234
+ ## 8. Grouped table style (iOS)
235
235
 
236
236
  ```javascript
237
237
  const data = [
@@ -248,7 +248,7 @@ const table = Ti.UI.createTableView({
248
248
  });
249
249
  ```
250
250
 
251
- ## 9. Editing Mode
251
+ ## 9. Editing mode
252
252
 
253
253
  ```javascript
254
254
  table.editing = true;
@@ -263,9 +263,9 @@ const data = [
263
263
  ];
264
264
  ```
265
265
 
266
- ## 10. TableView Events
266
+ ## 10. TableView events
267
267
 
268
- ### Click Event
268
+ ### Click event
269
269
 
270
270
  ```javascript
271
271
  table.addEventListener('click', (e) => {
@@ -279,7 +279,7 @@ table.addEventListener('click', (e) => {
279
279
  });
280
280
  ```
281
281
 
282
- ### Delete Event
282
+ ### Delete event
283
283
 
284
284
  ```javascript
285
285
  table.addEventListener('delete', (e) => {
@@ -287,7 +287,7 @@ table.addEventListener('delete', (e) => {
287
287
  });
288
288
  ```
289
289
 
290
- ### Scroll Events
290
+ ### Scroll events
291
291
 
292
292
  ```javascript
293
293
  table.addEventListener('scroll', (e) => {
@@ -314,9 +314,9 @@ const table = Ti.UI.createTableView({
314
314
  });
315
315
  ```
316
316
 
317
- ## 12. Updating Table Data
317
+ ## 12. Updating table data
318
318
 
319
- ### Appending Rows
319
+ ### Append rows
320
320
 
321
321
  ```javascript
322
322
  table.appendRow({ title: 'New Row' });
@@ -328,14 +328,14 @@ table.appendRow([
328
328
  ]);
329
329
  ```
330
330
 
331
- ### Inserting Rows
331
+ ### Insert rows
332
332
 
333
333
  ```javascript
334
334
  table.insertRowBefore(2, { title: 'Inserted at index 2' });
335
335
  table.insertRowAfter(5, { title: 'Inserted after index 5' });
336
336
  ```
337
337
 
338
- ### Deleting Rows
338
+ ### Delete rows
339
339
 
340
340
  ```javascript
341
341
  table.deleteRow(3); // Delete row at index 3
@@ -346,7 +346,7 @@ table.setData([]);
346
346
  // Use table.setData([]) or table.data = [] to clear
347
347
  ```
348
348
 
349
- ### Updating Specific Row
349
+ ### Update a specific row
350
350
 
351
351
  ```javascript
352
352
  const data = table.data;
@@ -354,9 +354,9 @@ data[2].title = 'Updated Title';
354
354
  table.setData(data);
355
355
  ```
356
356
 
357
- ## 13. TableView Sections
357
+ ## 13. TableView sections
358
358
 
359
- ### Creating Sections
359
+ ### Create sections
360
360
 
361
361
  ```javascript
362
362
  const section1 = Ti.UI.createTableViewSection({
@@ -378,7 +378,7 @@ const table = Ti.UI.createTableView({
378
378
  });
379
379
  ```
380
380
 
381
- ### Custom Section Headers
381
+ ### Custom section headers
382
382
 
383
383
  ```javascript
384
384
  const section = Ti.UI.createTableViewSection({
@@ -386,7 +386,7 @@ const section = Ti.UI.createTableViewSection({
386
386
  });
387
387
  ```
388
388
 
389
- ## 14. Performance Optimization
389
+ ## 14. Performance optimization
390
390
 
391
391
  ### Use className
392
392
 
@@ -404,26 +404,26 @@ const row2 = Ti.UI.createTableViewRow({
404
404
  });
405
405
  ```
406
406
 
407
- `className` enables OS to reuse scrolled-out rows for faster rendering.
407
+ `className` lets the OS reuse scrolled-out rows for faster rendering.
408
408
 
409
- ### Avoid Too Many Rows
409
+ ### Avoid too many rows
410
410
 
411
411
  If you have thousands of rows, consider:
412
412
  - Pagination
413
413
  - ListView instead
414
- - Filtering mechanism
414
+ - Filtering
415
415
  - Drill-down interface
416
416
 
417
- ### Optimize Custom Rows
417
+ ### Optimize custom rows
418
418
 
419
419
  - Test on device
420
420
  - Use simple layouts
421
421
  - Minimize child views per row
422
422
  - Avoid nested ScrollViews
423
423
 
424
- ## 15. Common Patterns
424
+ ## 15. Common patterns
425
425
 
426
- ### Detail View Navigation
426
+ ### Detail view navigation
427
427
 
428
428
  ```javascript
429
429
  table.addEventListener('click', (e) => {
@@ -441,12 +441,12 @@ table.addEventListener('click', (e) => {
441
441
  });
442
442
  ```
443
443
 
444
- ### Row Actions (Swipe to Delete)
444
+ ### Row actions (swipe to delete)
445
445
 
446
446
  ```javascript
447
447
  table.setEditable(true);
448
448
 
449
- table.addEventListener('delete', (e) => {
449
+ table.addEventListener('delete', () => {
450
450
  // Confirm deletion
451
451
  const dialog = Ti.UI.createAlertDialog({
452
452
  title: 'Delete',
@@ -465,7 +465,7 @@ table.addEventListener('delete', (e) => {
465
465
  });
466
466
  ```
467
467
 
468
- ### Refresh Control
468
+ ### Refresh control
469
469
 
470
470
  ```javascript
471
471
  const table = Ti.UI.createTableView({
@@ -482,7 +482,7 @@ table.refreshControl.addEventListener('refreshstart', () => {
482
482
  });
483
483
  ```
484
484
 
485
- ## 16. Platform Differences
485
+ ## 16. Platform differences
486
486
 
487
487
  ### iOS
488
488
  - Supports `GROUPED` style
@@ -500,7 +500,7 @@ table.refreshControl.addEventListener('refreshstart', () => {
500
500
 
501
501
  When to migrate:
502
502
  - New app development
503
- - Large datasets (>100 rows)
503
+ - Large datasets (more than 100 rows)
504
504
  - Performance issues
505
505
  - Need modern features (templates, binding)
506
506
 
@@ -508,11 +508,11 @@ Key differences:
508
508
  - TableView: `data` property with row objects
509
509
  - ListView: `sections` property with templates
510
510
 
511
- ## Best Practices
511
+ ## Best practices
512
512
 
513
- 1. **Use ListView for new apps** - Better performance and features
514
- 2. **Use className** - Enables row reuse
515
- 3. **Batch updates** - Use `setData()` instead of multiple `appendRow()`
516
- 4. **Test on device** - Simulator performance differs
517
- 5. **Limit row complexity** - Fewer children = better scrolling
518
- 6. **Consider pagination** - Don't show thousands of rows at once
513
+ 1. Use ListView for new apps - better performance and features
514
+ 2. Use className to enable row reuse
515
+ 3. Batch updates with `setData()` instead of many `appendRow()` calls
516
+ 4. Test on device; simulator performance differs
517
+ 5. Limit row complexity; fewer children means better scrolling
518
+ 6. Consider pagination; avoid showing thousands of rows at once