Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Nowe API Kotlina przyśpieszy przetwarzanie adnotacji

Google opublikował wersję alfa Kotlin Symbol Processing, czyli nowego API, które przyśpieszy proces budowania aplikacji w tym języku.
Nowe API Kotlina przyśpieszy przetwarzanie adnotacji

Google udostępnił właśnie Kotlin Symbol Processing (lub KSP) w wersji alfa. KSP to API, które służy do tworzenia lekkich wtyczek do kompilatorów w Kotlinie. Jego działanie przypomina inną wtyczkę o nazwie KAPT, z tą jednak różnicą, że Kotlin Symbol Processing jest nawet 2 razy szybszy i zapewnia bezpośredni dostęp do funkcji kompilatora w języku Kotlin. Co więcej, KSP jest tworzony z myślą o wieloplatformowości.

Samo API zostało zaimplementowane jako wtyczka kompilatora. Ma ono również na celu ukrywanie zmian w kompilatorze i minimalizowanie nakładów potrzebnych do utrzymania. 


Dlaczego KSP w ogóle powstał?

Dlaczego w ogóle zabrano się za tworzenie takiego narzędzia? W Kotlinie nie ma tak naprawdę natywnego procesora adnotacji - a adnotacji używa się w tym języku bardzo często (ogólnie adnotacji używa się często w developmencie na Androida) KSP pozwala właśnie na o wiele szybsze przetwarzanie adnotacji, przyspieszając jednocześnie proces budowania aplikacji.

Wielu programistów wykonuje naprawdę wiele iteracji po swoich aplikacjach, a więc długi czas budowania może tutaj naprawdę przyprawić o ból głowy. 

Spójrzmy teraz na to, jak KSP działa.


Kotlin Symbol Processing w akcji

Po pierwsze trzeba pobrać KSP playground z GitHuba. Oto co możemy tam znaleźć:

  • Bibliotekę test-processor, która implementuje wzorzec budowniczy jako KSP processor
  • Katalog workload, który pokazuje, jak z niego korzystać w prawdziwym projekcie z Kotlinem.


Cała logika znajduje się w test-processor, a jedyną różnicą między KAPT a KSP jest dwulinijkowa zmiana w build file:


I to jest właśnie to, w co KSP celuje: większość developerów Androida nie musi się już martwić o to, co się dzieje w środku; poza tą jedną zmianą, biblioteka obsługująca KSP wygląda jak normalny procesor adnotacji - tylko że o dwa razy szybszy.

Trzeba jednak uważać, bo korzystanie z KAPT i KSP w tym samym czasie prawdopodobnie na początku znacznie spowolni czas budowania - twórcy zalecają więc używanie tych dwóch narzędzi w oddzielnych modułach w obecnej fazie alfa.


Praca z KSP

Biblioteki, które obsługują KSP, przypominają normalne procesory adnotacji, aczkolwiek szybsze. Co więcej, twórcy twierdzą, że ponieważ coraz więcej procesów adnotacji zaczyna korzystać z KSP, to spodziewają się oni, iż większość modułów będzie w stanie używać KSP jako prawie bezpośredniego zamiennika KAPT.

Biblioteki, które obecnie korzystają z KSP to:


Więcej szczegółów tutaj.

Jeśli jesteś natomiast autorem biblioteki, która obecnie używa procesora adnotacji, to więcej informacji o tym, jak dostosować bibliotekę do KSP, możesz znaleźć tutaj i tutaj.


Podsumowanie

Kod źródłowy oraz dokumentacja KSP znajduje się na GitHubie. To API jest nadal rozwijane, więc możliwe jest, że trochę się jeszcze zmieni - nie zaleca się zatem korzystania z Kotlin Symbol Processing na produkcji. A to, co jeszcze się zmieni, zależy oczywiście od feedbacku developerów Kotlina.

Rozpocznij dyskusję

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 160 tysiącami naszych czytelników

Dowiedz się więcej