Подать заявку можно тут до 31 июля
Проекты получат гранты, если:
👉 Решают важную проблему в экосистеме Kotlin, особенно в KMP
👉 Быстро реагируют на баги, уязвимости и обновления Kotlin/библиотек
👉 Следуют лучшим практикам разработки библиотек
👉 Имеют понятный roadmap развития
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍4
Автор Kombinator рассказал о том как он делал архитектуру и реализацию библиотеки. Если кому интересно узнать про реализацию кодогенерации на KSP - читайте в статье(EN,6м).
🔗 Альтернативная ссылка
#kotlin
🔗 Альтернативная ссылка
#kotlin
👍9
Библиотека работает на основе генерации кода через KSP. Может быть полезна для тестов, чтобы проверять разные входные данные.
// Уровень класса @Kombine: Задает значения по умолчанию для свойств
// без аннотаций и без дефолтных значений property
@Kombine(
allPossibleIntParams = [100],
allPossibleStringParams = ["system"],
)
data class ScreenConfig(
// Аннотация на уровне свойства переопределяет уровень класса для 'theme'
@Kombine(allPossibleStringParams = ["light", "dark", "auto"])
val theme: String,
// Есть значение по умолчанию, Kombinator будет использовать ТОЛЬКО "portrait"
val orientation: String = "portrait",
// Нет аннотации @Kombine и значения по умолчанию.
// Будет использовать значение уровня класса: [100]
val padding: Int,
// Аннотация на уровне свойства переопределяет уровень класса для 'fontSize'
@Kombine(allPossibleIntParams = [12, 16, 20])
val fontSize: Int,
// Нет аннотации @Kombine и значения по умолчанию.
// Будет использовать значение уровня класса: ["system"]
val fontFamily: String,
)
#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🏆2