К основному содержанию
правило

nativescript — правило для Cursor: что делает и как установить

Правило задаёт практики для NativeScript-приложений на TypeScript, Vue и других поддержанных стеках. Пригодится для мобильного UI и нативного кода.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/nativescript.mdc
Открыть на GitHub

Что делает nativescript

Правило задаёт структуру NativeScript-кода: модульные компоненты и сервисы, отдельные файлы .ios.ts и .android.ts для платформенной логики, а также папку custom-native с общими типами и реализациями. Имена переменных для платформ получают префиксы ios или android.

Для UI оно требует TailwindCSS с @nativescript/tailwind и tailwindcss, предлагает GridLayout для сложных экранов и StackLayout для линейных блоков. Также правило охватывает @NativeClass(), делегаты iOS, условный код через __ANDROID__ и __APPLE__, очистку таймеров и работу со состоянием во фреймворках.

После изменений в App_Resources или package.json правило советует запускать ns clean. Если проект использует другой CSS-фреймворк, требование TailwindCSS станет конфликтующим ограничением.

Какие задачи решает

  • организовать платформенный код NativeScript
  • разделить iOS- и Android-реализации
  • настроить стили NativeScript через TailwindCSS
  • предотвратить утечки из-за таймеров
  • собрать адаптивный экран на GridLayout

Примеры запросов агенту

  • Организуй этот экран NativeScript через GridLayout и вынеси платформенный код в отдельные файлы.
  • Проверь компонент Vue на соответствие правилам NativeScript и замени глубокую вложенность layout-контейнеров.
  • Добавь делегат iOS для этого нативного класса и сохрани его экземпляр в области видимости класса.

Как установить nativescript

Вручную: положить файлы

.cursor/rules/nativescript.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о nativescript

Как установить nativescript в Cursor?

Добавьте правило в файл .cursor/rules/nativescript.mdc.

Что делает правило nativescript?

Оно задаёт практики для структуры NativeScript-кода, платформенных файлов, TailwindCSS, layout-контейнеров, делегатов iOS и управления таймерами.

Какие файлы обрабатывает nativescript?

Правило нацелено на файлы .tsx, .ts, .vue и .svelte, включая пути src/**/*.ts, app/**/*.ts, src/**/*.tsx, app/**/*.tsx, src/**/*.vue, app/**/*.vue, src/**/*.svelte.

Исходный текст

nativescript.mdc · CC0-1.0
---
description: "NativeScript best practices and patterns for mobile applications"
globs: **/*.tsx, **/*.ts, **/*.vue, **/*.svelte, src/**/*.ts, app/**/*.ts, src/**/*.tsx, app/**/*.tsx, src/**/*.vue, app/**/*.vue, src/**/*.svelte
alwaysApply: false
---
# NativeScript Best Practices

## Code Style and Structure
- Organize code using modular components and services for maintainability.
- Use platform-specific files (`.ios.ts`, `.android.ts`) when code exceeds 20 platform-specific lines.
- When creating custom native code, use a folder structure like `custom-native/index.ios.ts`, `custom-native/index.android.ts`, `custom-native/common.ts`, `custom-native/index.d.ts` to keep platform-specific code organized and easy to import with single import elsewhere, replacing `custom-native` with the name of the custom code.
  
## Naming Conventions
- Prefix platform-specific variables with `ios` or `android` (e.g., `iosButtonStyle`).
- Name custom components and styles descriptively (`primaryButtonStyle`, `userProfileView`).
 
## Usage
- Use `@NativeClass()` when extending native classes when needed
- For iOS, when extending native classes, always use `static ObjCProtocols = [AnyUIKitDelegate];` to declare custom delegates if a delegate is required or used.
- For iOS, always retain custom delegate instances to prevent garbage collection. For example, `let delegate = MyCustomDelegate.new() as MyCustomDelegate`, and ensure it is retained in the class scope.
- Favor `__ANDROID__` and `__APPLE__` for conditional platform code with tree-shaking.
- Track and clean up all timers (`setTimeout`, `setInterval`) to avoid memory leaks.

## UI and Styling
- Always TailwindCSS as the CSS Framework using `"@nativescript/tailwind": "^2.1.0"` for consistent styling paired with `"tailwindcss": "~3.4.0"`.
- Add ios: and android: style variants for platform-specific styling, addVariant('android', '.ns-android &'), addVariant('ios', '.ns-ios &');
- darkMode: ['class', '.ns-dark']
- Leverage `GridLayout` or `StackLayout` for flexible, responsive layouts. Place more emphasis on proper GridLayout usage for complex layouts but use StackLayout for simpler, linear arrangements.
- Use `visibility: 'hidden'` for elements that should not affect layout when hidden.
 
## Performance Optimization
- Try to avoid deeply nesting layout containers but instead use `GridLayout` wisely to setup complex layouts.
- Avoid direct manipulation of the visual tree during runtime to minimize rendering overhead.
- Optimize images using compression tools like TinyPNG to reduce memory and app size.
- Clean the project (`ns clean`) after modifying files in `App_Resources` or `package.json`.
 
## Key Conventions
- Reuse components and styles to avoid duplication.
- Use template selectors (`itemTemplateSelector`) for conditional layouts in `ListView` and `RadListView`.
- Minimize heavy computations in UI bindings or methods.
- Only if using plain xml bindings, use `Observable` or `ObservableArray` properties to reflect state changes efficiently.
- When using Angular, React, Solid, Svelte or Vue, always leverage their respective state management, lifecycle hooks, rendering optimizations and reactive bindings for optimal performance.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Всё по теме «Мобильная разработка» →

Из того же набора140

nextjs-material-ui-tailwind-css-cursorrules-prompt Правило задаёт стек Next.js с TypeScript, Tailwind CSS, Material UI и App Router. Подходит для проектов, где эти библиотеки уже выбраны. ★ 41 024звёзд репо nextjs-app-router-cursorrules-prompt-file Правило для Cursor, которое задаёт агенту привычки Next.js App Router: серверные компоненты по умолчанию, файловый роутинг, отдельные файлы для загрузки и ошибок. ★ 41 024звёзд репо network-troubleshoot Правило ведёт агента через безопасную диагностику сетевых сбоев: от сбора ошибки до проверки результата. ★ 41 024звёзд репо netlify-official-cursorrules-prompt-file Правило для Cursor, которое задаёт агенту официальные соглашения Netlify: типы функций, работа с окружением и запрет лишних CORS-заголовков. ★ 41 024звёзд репо nativescript-cursorrules-prompt-file Правило Cursor, которое задаёт агенту структуру проекта и стек для NativeScript: TypeScript, навигация, защищённое хранилище. ★ 41 024звёзд репо medusa Правило задаёт Cursor рамки для кода на Medusa: воркфлоу, модели данных, сервисы и админка пишутся по одному шаблону. ★ 41 024звёзд репо manifest-yaml-cursorrules-prompt-file Правило задаёт Cursor, как собирать лёгкий демо-бэкенд на Manifest: структура проекта, файл manifest/backend.yml и ограничения по сущностям. ★ 41 024звёзд репо laravel-tall-stack-best-practices-cursorrules-prom Правило задаёт практики для Laravel и TALL Stack в Cursor. Оно помогает писать PHP-код, Livewire-компоненты и интерфейсы на Alpine.js и Tailwind CSS. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой