Subscribe Now
Trending News
Tools

Balík 17 skillů pro AI agenty spojuje sady pro Kotlin Multiplatform a SwiftUI a přidává chybějící návod na místo, kde Swift volá kotlinový kód.

Balík 17 skillů pro AI agenty spojuje sady pro Kotlin Multiplatform a SwiftUI a přidává chybějící návod na místo, kde Swift volá kotlinový kód.

Pro Kotlin Multiplatform i pro SwiftUI existují hotové sady skillů, podle kterých AI agent píše kód. Obě končí na stejném místě: tam, kde iOS aplikace ve Swiftu volá sdílený modul zkompilovaný z Kotlinu. Chyby na tomhle rozhraní se přitom často ukážou až za běhu aplikace. Kotlinová výjimka, kterou funkce nedeklaruje anotací @Throws, ve Swiftu nevyhodí chybu. Ukončí celý proces.

Repozitář kotlin-kmp-swiftui-skills na GitHubu tuhle mezeru zaplňuje jedním novým skillem a k němu přibaluje obě původní sady. Patnáct skillů pro Kotlin Multiplatform a Compose Multiplatform pochází od Mariana Mianiho, swiftui-expert-skill napsali Antoine van der Lee a Omar Elsayed. Obě sady jsou převzaté beze změny. Sedmnáctý skill, kotlin-platform-swift-interop, je nový. Balík sestavil Valentino Hesse.

Co se děje na hranici

Skill vysvětluje, jak Swift vidí kotlinové konstrukce a kde to vývojáře zaskočí. Suspend funkce se do Swiftu dostane jako metoda s completion handlerem; volání přes async/await od Swiftu 5.5 sice funguje, reference ale tuhle cestu označuje za experimentální a jako výchozí doporučuje completion handler. Flow ve Swiftu ekvivalent nemá, takže u každé funkce, která ho vrací, je třeba předem zvolit tvar: callback s možností zrušení, čtení poslední hodnoty ze StateFlow, nebo knihovnu třetí strany, která vygeneruje AsyncSequence či Combine. Sealed class přijde do Swiftu jako obyčejná hierarchie tříd. Kompilátor tedy nepohlídá, jestli switch pokrývá všechny případy, a skill radí řetězec if/else zakončený fatalError, případně mapovací funkci na kotlinové straně. Value classes hranici nepřekročí vůbec. Primitivní typy v lambdách se balí, takže z (Int) -> Unit je ve Swiftu (KotlinInt) -> KotlinUnit.

Druhá polovina se týká vláken a stavu. Oficiální dokumentace neurčuje, na kterém vlákně přijde callback do Swiftu, proto to má zaručit sdílený modul, typicky přepnutím na hlavní vlákno. Stav vlastní Kotlin. Na iOS 17 a novějším ho do SwiftUI předává tenký obal s @Observable, který odebírá StateFlow a nesmí si vést vlastní kopii.

Rozcestník pro sedmnáct skillů

Skill zároveň funguje jako rozcestník. Nejdřív rozliší, jestli projekt kreslí UI v Compose Multiplatform na obou platformách, nebo sdílí jen logiku a na iOS má nativní SwiftUI. Pak agentovi podle tabulky řekne, co načíst: datová vrstva jde do kotlin-data-kmp-data-layer, nativní obrazovky do swiftui-expert-skill. Následuje šestikrokový postup pro feature, která zasahuje do obou platforem, a osmibodový checklist pro samotnou hranici. Kdo otevře jen hlavní SKILL.md, uvidí hlavně tabulku a checklist. Technické detaily leží ve dvou referenčních souborech, které si agent načte až podle potřeby. Ten o balení rozebírá pět oficiálních způsobů, jak dostat framework do Xcode, od Gradle tasku embedAndSignAppleFrameworkForXcode volaného při každém buildu až po XCFramework distribuovaný jako vzdálený balíček pro SwiftPM nebo CocoaPods.

Nejvíc mě zaujala nenápadná sekce na konci reference. Upozorňuje, že interop mezi Kotlinem a Swiftem se mění s verzemi, část funkcí vychází nejdřív jako experimentální a novější Swift export může změnit, kolik mapování se píše ručně. Před produkčním rozhodnutím proto radí ověřit každé tvrzení proti aktuální dokumentaci na kotlinlang.org.

Instalace znamená zkopírovat obsah složky skills do .claude/skills/ v KMP projektu. Formát Agent Skills čtou Claude Code i další kompatibilní agenti. Licence se liší po částech: kotlinové skilly včetně nového jsou pod Apache-2.0, SwiftUI skill pod MIT. Orchestraci z Mianiho původního balíku, tedy pět agentů od plánovače po opraváře, autor vynechal záměrně, protože nejde o znalostní skill. Kdo ji chce, nainstaluje ji přes npx kotlin-kmp-agent-skills. Projekt je čerstvý a k 11. říjnu 2026 má jeden commit. Zdrojová SwiftUI sada má na GitHubu přes 3 400 hvězdiček, Mianiho původní repozitář 56.

Pro tým se sdílenou logikou v Kotlinu a nativním SwiftUI je z celého balíku nejcennější právě ten jediný nový skill.

Zdroje:

Related posts