swift-concurrency
Ekspertna pomoc w Swift Concurrency: async/await, aktorzy, bezpieczeństwo danych i migracja na Swift 6
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill wspiera programistów Swift w diagnozowaniu i rozwiązywaniu problemów z konkurencją. Pomaga konwertować kod oparty na callbackach na async/await, wdrażać izolację aktorów, rozwiązywać problemy Sendable i migrować projekty na Swift 6. Analizuje Package.swift i konfigurację projektu, identyfikuje granice izolacji oraz proponuje strukturalne rozwiązania zamiast zaimprowizowanych obejść. Szczególnie przydatny przy debugowaniu wyścigów danych, ostrzeżeniach linterów i optymalizacji architektur współbieżnych.
Jak używać
Uruchom skill, gdy pracujesz nad kodem Swift zawierającym async/await, aktorów, zadania (tasks) lub gdy chcesz migrować projekt na Swift 6. Skill automatycznie aktywuje się, jeśli wspomniasz o Swift Concurrency, problemach z bezpieczeństwem wątków lub izolacji danych.
Przygotuj informacje o swoim projekcie: otwórz Package.swift lub plik projektu (.pbxproj) i sprawdź wersję Swift (5.x czy 6). Skill będzie analizować tę konfigurację, aby dać Ci właściwe porady.
Opisz konkretny problem: podaj komunikat błędu kompilatora, nazwę symbolu, który sprawia kłopot, oraz kontekst kodu (czy jest to kod związany z interfejsem użytkownika, czy ogólna logika aplikacji).
Skill zidentyfikuje granicę izolacji w Twoim kodzie — czy używasz @MainActor, niestandardowego aktora, czy domyślnej izolacji — i zaproponuje rozwiązanie dostosowane do Twojej sytuacji. Nie będzie ślepo stosować @MainActor, ale uzasadni, dlaczego jest to właściwy wybór.
Jeśli skill zasugeruje użycie @preconcurrency, @unchecked Sendable lub nonisolated(unsafe), będzie wymagać dokumentacji bezpieczeństwa i zaproponuje śledzenie zmian w przyszłości, aby usunąć te obejścia.
Dla prac migracyjnych skill będzie kierować Cię małymi, łatwymi do przejrzenia zmianami: kompiluj, naprawiaj błędy, kompiluj ponownie, przechodzisz dalej tylko gdy kod się buduje bez błędów.