audit-ui-thread-safety

tarafından flutter

Kullanıcı arayüzü donmalarını önleyin ve iş parçacığı kurallarını doğrulayıp engelleyici çağrıları Olay Dağıtım İş Parçacığından (EDT) taşıyarak duyarlı bir kullanıcı deneyimi sağlayın.

npx skills add https://github.com/flutter/flutter-intellij --skill audit-ui-thread-safety

Skill: UI Thread Safety & Responsiveness

You are tasked with preventing UI freezes and ensuring a responsive user experience by validating threading rules.

Objective

Prevent UI freezes and ensure a responsive user experience by validating threading rules.

Workflow Instructions

1. Baseline

  • Run ./gradlew test and ./gradlew verifyPlugin to ensure the project is in a good state before refactoring.

2. Audit EDT Usage

  • Search for usages of runInEdt, invokeLater, and invokeAndWait.

3. Identify Blocking Calls

  • Ensure no I/O operations (file access, network calls) or heavy computations occur within these UI blocks.

4. Migrate to Background

  • Refactor heavy tasks to run on background threads using Task.Backgroundable or ReadAction.nonBlocking.

5. Check Modality

  • Verify that modal dialogs do not block the UI thread unnecessarily.

6. Verify

  • Run ./gradlew testClasses to ensure safe refactoring.
  • Run ./gradlew test and ./gradlew verifyPlugin to ensure no regressions.
  • Run the plugin in a sandbox (./gradlew runIde) and perform key actions while monitoring for UI freezes.
  • Suggest manual test steps: Check the code changes made and write test steps for a user to execute that will trigger the code paths that have changed. If needed, add logging statements to verify that the code paths have successfully run.

7. Report & Review

  • Summarize the threading fixes.
  • Test Location: Explicitly state where in the IDE the user should go to test the changed functionality (e.g., "Go to Preferences > Languages & Frameworks > Flutter").
  • Action: Ask the user to review the changes closely to ensure no deadlocks or UI freezes are introduced.
  • Do not commit or push.
  • Provide a suggested Git commit message (e.g., "Fix UI freeze: Move heavy computation to background task").

flutter tarafından daha fazla skill

dart-modern-features
flutter
Modernizasyon için adayları bulmak amacıyla:
flutter-fix-layout-issues
flutter
Flutter düzen hatalarını (taşmalar, sınırsız kısıtlamalar) Dart ve Flutter MCP araçlarını kullanarak düzeltir. "RenderFlex overflowed", "Vertical…" sorunlarını giderirken kullanın.
adding-release-notes
flutter
Kullanıcıya yönelik değişiklik açıklamalarını DevTools sürüm notlarına ekler. NEXT_RELEASE_NOTES.md dosyasında iyileştirmeleri, düzeltmeleri veya yeni özellikleri belgelemek için kullanın.
reviewing-devtools-prs
flutter
DevTools deposuna özgü, DevTools stil kurallarını ve yaygın inceleme desenlerini uygulayan PR inceleme iş akışı. … içindeki pull request'leri incelerken kullanın.
dart-use-primary-constructors
flutter
Kullanıcıların Dart'ta sözdizimsel ve anlamsal olarak doğru birincil constructor'lar yazmasına yardımcı olun ve yeni constructor sözdizimine, boş gövdeli noktalı virgül sözdizimine geçiş yapın/kullanın,…
code-documentation
flutter
Etkili kod dokümantasyonu yazma rehberi; docstring'ler, JSDoc, dartdoc ve uygulama yorumları dahil. Yeni kod yazarken, eklerken…
api-review
flutter
Belirtilen kodu, kanonik API Tasarım yönergelerine göre inceler. Kullanıcı bir API incelemesi istediğinde veya kodun API tasarımına uygunluğunu kontrol etmek istediğinde bu beceriyi kullanın…
flutter-accessibility
flutter
Flutter uygulamalarında WCAG 2 ve EN 301 549 erişilebilirlik standartları ile uyarlanabilir düzenleri uygular. Mobil, web ve masaüstü platformlarında anlamsal açıklamaları, dokunma hedef boyutlarını (minimum 48x48 dp) ve metin kontrast oranlarını (küçük metin için 4.5:1, büyük metin için 3:1) zorunlu kılar. Web anlambilimi başlatma, etkileşimli widget sarma, ekran boyutuna dayalı düzen değiştirme ve klavye/fare giriş işleme için karar mantığı sağlar. FocusTraversalGroup ve... aracılığıyla odak geçiş yönetimini içerir.