Skip to main content

ti-ui

Use when working with, reviewing, analyzing, or examining Titanium SDK UI/UX patterns and components — Titanium layouts, ListView/TableView performance optimization, event handling and bubbling, gestures (swipe, pinch), animations, accessibility (VoiceOver/TalkBack), orientation changes, custom fonts/icons, app icons/splash screens, or platform-specific UI (Action Bar, Navigation Bar). AUTO-DETECT: If tiapp.xml exists, invoke BEFORE creating or modifying any UI view, window, or layout. Titanium layouts (composite, vertical, horizontal) differ from web/CSS — never assume web layout behavior.

معلومات المصدر

المستودع
macCesar/titools
آخر نشاط في المصدر
١٢ سبتمبر ٢٠٢٦ في ٠٠:٥٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
15 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
ti-ui
description
Use when working with, reviewing, analyzing, or examining Titanium SDK UI/UX patterns and components — Titanium layouts, ListView/TableView performance optimization, event handling and bubbling, gestures (swipe, pinch), animations, accessibility (VoiceOver/TalkBack), orientation changes, custom fonts/icons, app icons/splash screens, or platform-specific UI (Action Bar, Navigation Bar). AUTO-DETECT: If tiapp.xml exists, invoke BEFORE creating or modifying any UI view, window, or layout. Titanium layouts (composite, vertical, horizontal) differ from web/CSS — never assume web layout behavior.
argument-hint
[component]
allowed-tools
Read, Grep, Glob, Edit, Write, Bash(node *)
# Titanium SDK UI expert A practical guide to Titanium SDK UI. Covers layouts, event handling, animations, performance, and platform-specific components for iOS and Android. > **When "new UI" means new files, run the `ti-reuse-first` skill first.** A new window, panel or dialog is often an existing one that needs a parameter, and a layout computed in JavaScript is often a TSS condition. This guide covers how to build whatever survives that question. ## Project detection > **️ℹ️ auto-detects titanium projects** > This skill detects Titanium projects and provides UI guidance. > > Detection happens automatically. You do not need to run a command. > > Titanium project indicator: > - `tiapp.xml` (required for all Titanium projects) > > Applicable to both: > - Alloy projects (app/ folder structure) > - Classic projects (Resources/ folder) > > Behavior based on detection: > - Titanium detected: Provide UI guidance for Alloy and Classic, ListView/TableView patterns, and platform differences > - Not detected: State this is for Titanium projects only and skip UI guidance ## Quick reference | Topic | Reference | | -------------------------------- | ----------------------------------------------------------------------- | | App structures | [application-structures.md](references/application-structures.md) | | Layouts, positioning, units | [layouts-and-positioning.md](references/layouts-and-positioning.md) | | Events, bubbling, lifecycle | [event-handling.md](references/event-handling.md) | | ScrollView vs ScrollableView | [scrolling-views.md](references/scrolling-views.md) | | TableView | [tableviews.md](references/tableviews.md) | | ListView templates, performance | [listviews-and-performance.md](references/listviews-and-performance.md) | | Touch, swipe, pinch, gestures | [gestures.md](references/gestures.md) | | Orientation handling | [orientation.md](references/orientation.md) | | Custom fonts, attributed strings | [custom-fonts-styling.md](references/custom-fonts-styling.md) | | Animations, 2D/3D matrices | [animation-and-matrices.md](references/animation-and-matrices.md) | | Icons, splash screens, densities | [icons-and-splash-screens.md](references/icons-and-splash-screens.md) | | Android action bar, themes | [platform-ui-android.md](references/platform-ui-android.md) | | iOS navigation, 3D Touch | [platform-ui-ios.md](references/platform-ui-ios.md) | | VoiceOver, TalkBack, a11y | [accessibility-deep-dive.md](references/accessibility-deep-dive.md) | ## Critical rules ### Performance - Do not use `Ti.UI.SIZE` in ListViews. It causes jerky scrolling. Use fixed heights. - Prefer ListView over TableView for new apps with large datasets. - Batch updates with `applyProperties` to reduce bridge overhead. - Avoid WebView inside TableView. It kills scrolling performance. ### iOS accessibility - Do not set accessibility properties on container views. It blocks child interaction. - Do not set `accessibilityLabel` on text controls on Android. It overrides visible text. ### Layout - Use `dp` units for cross-platform consistency. - Android ScrollView is vertical or horizontal, not both. Set `scrollType`. ### Platform-specific properties > **🚨 critical: platform-specific properties require modifiers** > Using `Ti.UI.iOS.*` or `Ti.UI.Android.*` properties without platform modifiers will crash cross-platform compilation. > > Example of the damage: > ```javascript > // Wrong: adds Ti.UI.iOS to an Android build > const win = Ti.UI.createWindow({ > statusBarStyle: Ti.UI.iOS.StatusBar.LIGHT_CONTENT > }) > ``` > > Correct approaches: > > Option 1: TSS modifier (Alloy projects): > ```tss > "#mainWindow[platform=ios]": { > statusBarStyle: Ti.UI.iOS.StatusBar.LIGHT_CONTENT > } > ``` > > Option 2: Conditional code: > ```javascript > if (OS_IOS) { > $.mainWindow.statusBarStyle = Ti.UI.iOS.StatusBar.LIGHT_CONTENT > } > ``` > > Properties that always require platform modifiers: > - iOS: `statusBarStyle`, `modalStyle`, `modalTransitionStyle`, any `Ti.UI.iOS.*` > - Android: `actionBar` config, any `Ti.UI.Android.*` constant > > For platform-specific UI patterns, see [platform-ui-ios.md](references/platform-ui-ios.md) and [platform-ui-android.md](references/platform-ui-android.md). ### Event management - Remove global listeners (`Ti.App`, `Ti.Gesture`, `Ti.Accelerometer`) on pause to save battery. - Input events bubble up. System events do not. ### App architecture - Limit tabs to 4 or fewer for better UX across platforms. - Use NavigationWindow for iOS hierarchical navigation. - Handle `androidback` to prevent unexpected exits. ## Platform differences summary | Feature | iOS | Android | | ---------------------- | ---------------------------- | ----------------------- | | 3D Matrix | Full support | No support | | Pinch gesture | Full support | Limited | | ScrollView | Bidirectional | Unidirectional | | TableView | Full support | Full support | | ListView | Full support | Full support | | Default template image | Left side | Right side | | ListView action items | Swipe actions | No | | Modal windows | Fills screen, covers tab bar | No effect (always full) | | Navigation pattern | NavigationWindow | Back button + Menu | ## UI design workflow 1. Choose app structure: tab-based or window-based 2. Pick a layout mode: composite, vertical, or horizontal 3. Decide sizing: `SIZE` or `FILL` based on component defaults 4. Plan events: bubbling, app-level events, lifecycle 5. Optimize performance: templates, batch updates 6. Apply accessibility per platform 7. Add motion: animations, 2D/3D transforms, transitions ## Searching references When you need specific patterns, grep these terms in the reference files: - App structure: `TabGroup`, `NavigationWindow`, `modal`, `execution context`, `androidback` - Layouts: `dp`, `Ti.UI.SIZE`, `Ti.UI.FILL`, `composite`, `vertical`, `horizontal` - Events: `addEventListener`, `cancelBubble`, `bubbling`, `Ti.App.fireEvent` - TableView: `TableView`, `TableViewRow`, `setData`, `appendRow`, `className` - ListView: `ItemTemplate`, `bindId`, `setItems`, `updateItemAt`, `marker` - Gestures: `swipe`, `pinch`, `longpress`, `shake`, `accelerometer` - Animation: `animate`, `create2DMatrix`, `create3DMatrix`, `autoreverse` - Fonts: `fontFamily`, `PostScript`, `createAttributedString`, `ATTRIBUTE_` - Icons/splash: `DefaultIcon`, `appicon`, `nine-patch`, `drawable`, `splash`, `iTunesArtwork`, `adaptive` - Android: `Action Bar`, `onCreateOptionsMenu`, `theme`, `Material3`, `talkback` - iOS: `3D Touch`, `Popover`, `SplitWindow`, `badge`, `NavigationWindow` - Accessibility: `accessibilityLabel`, `VoiceOver`, `TalkBack`, `accessibilityHidden` ## Related skills For work beyond UI components, use these skills: | Task | Use this skill | | ----------------------------------------------- | -------------- | | Project architecture, services, memory cleanup | `ti-expert` | | Native features (camera, location, push, media) | `ti-howtos` | | Alloy MVC, data binding, widgets | `alloy-guides` |
عرض على GitHub