https://kotlinlang.org logo
Docs
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
russian
  • s

    stask

    10/13/2020, 5:49 PM
    Добрый день. Хочу создать сервер на ktor с частью логики, вынесеной в miltuplatform для переиспользования на клиенте. Подскажите, пожалуйста, как лучше в IDEA создать проект? Создать kotlin проект, добавить miltuplatform модуль или в другом порядке?
    a
    a
    • 3
    • 2
  • a

    aleksey.tomin

    10/23/2020, 2:11 PM
    Не знаю, куда писать- пишу сюда 🙂 Есть data-class, который хранит некоторые данные и timestamp (время, когда данные были получены). Т.к. эти данные хранятся в БД (андроида) и передаются через сеть (kotlin-serialization), так что timestamp надо хранить. При этом для сравнения его использовать не надо. Сейчас я сделал в каждом классе equals/hashCode без этого поля. Но это плохо, т.к. когда-нибудь можем добавить поле, а в equals добавить забудем. Можно ли просто исключить поле из equals/hashCode и при этом не сломать Serializable?
    a
    b
    +2
    • 5
    • 16
  • a

    aleksey.tomin

    11/20/2020, 6:05 AM
    А где можно спросит про kotless? Канала нет, в general странно, а куда ещё писать?
    a
    • 2
    • 2
  • a

    aleksey.tomin

    12/03/2020, 2:01 PM
    Кстати, о логерах. Я тут подумал - удобнее будет, если стандартный логер будет принимать лямбду https://jira.qos.ch/browse/SLF4J-504 http://mailman.qos.ch/pipermail/slf4j-dev/2020-December/005484.html https://github.com/qos-ch/slf4j/pull/253 Если у кого есть желание- поддержите, что ли 🙂 Тогда любой логер для котлина в jvm будет выглядеть проще. PS: оказывается есть https://github.com/qos-ch/slf4j/pull/252 - но там автор немного ошибся, плюс не создал ни таску в джире, ни тред в рассылке.
    r
    i
    a
    • 4
    • 11
  • a

    aleksey.tomin

    12/10/2020, 9:23 AM
    Возникла такая мысль. Что скажите? Пока пишу KEEP, но может зря... Рассмотрим как пример библиотеку kotlinx.serializaion 1. Разницы между
    @Serializable
    и
    data class
    в целом никакой нет. Но первое это библиотека + плагин, второе- часть языка. 2. После подключения
    @Serializable
    очень сложно понять, что за код там получился- надо отрезать исходники и смотреть декомпилированный файл (или можно проще? Скажите, интересно). 3. Глядя в реализацию плагина я вижу 3 части - jvm/js/native хотя в целом там должно быть всё одинаково. 4. Плагин надо брать версии kotlin а саму библиотеку- другой версии. И можно (в теории, мне не попадалось) выбрать несовместимые варианты. Мне давно уж казалось, что в подходе “аннотация+плагин” есть принципиальный изъян. И язык forth не давал покоя 🙂 Наконец в голове сложился пазл “как должно быть“: 1. Аннотация типа
    @Serializable
    должна быть специального типа - не
    public annotation class Serializable
    а
    public plugin class Serializable
    (имя неважно) и располагаться в compile-only-time библиотеке. 2. Класс аннотации должен выполнять работу над кодом, но не IR и т.п. а над PSI или FIR - см. новый frontend compiler, например

    https://youtu.be/S2--aYB2GiE?t=1442▾

    3. После выполнения плагина надо FIR превратить обратно в исходный код и сложить в какую-то папку, типа автогенерированных классов. 4. Понятно, что в рантайме не должно быть завязки на плагин-аннотацию, но хвостик должен остаться. Что получится? 1. Легко можно увидеть (поддержать в IDEA легко) результат применения аннотаций-плагинов, со всеми комментариями. И в дебаге можно видеть реальный код. 2. Разработка аннотаций-плагинов на порядок проще, чем обычных плагинов на основе аннотаций. 3. Т.к. IDEA всё равно должна строить FIR а аннотации-плагины не должны долго работать- IDEA будет “знать” результаты работы аннотации-плагина. 4. Если в скомпилированном коде будет “хвост” аннотации-плагина, то это позволит выполнять работу над классами-потомками - например для корректной реализации контрактов (в настоящий момент это нельзя сделать никак). 5. Можно изменять в том числе комментарий - и, соответственно, документацию.
    👍 3
    i
    a
    +2
    • 5
    • 49
  • v

    voddan

    02/01/2021, 10:02 PM
    Привет! Кто-нибудь пробовал преподавать Котлин в школе?
    a
    • 2
    • 2
  • e

    Eugen Martynov

    02/12/2021, 10:47 AM
    Есть ли смысл в операторе
    1 + listOf(2,3) = [1,2,3]
    в стандартной библиотеке?
    a
    i
    t
    • 4
    • 9
  • e

    Eugen Martynov

    02/20/2021, 9:17 AM
    Есть ли смысл добавить в стд либ
    fun Set.toggle(element) = if (contains(element)) this - element else this + element
    ?
    a
    • 2
    • 5
  • e

    Eugen Martynov

    03/02/2021, 9:42 AM
    Есть ли смысл сделать рейнж инамов итеративным?
    i
    i
    • 3
    • 4
  • c

    caffeine

    03/13/2021, 3:32 PM
    Всем привет! Подскажите пожалуйста, можно ли сохранить (серелизовать) корутину. Ну и позже восстановить (дисерелезовать). Я понимаю, что не все можно серелизовать, что корутина может захватить всякое разное в свой контекст. Темнимение мб есть способ какого-то доступа до переменных стека корутины, их чтение и установка, запуск корутины с уже заданным состоянием
    a
    e
    • 3
    • 8
  • e

    Eugen Martynov

    03/24/2021, 11:00 AM
    Официальный релиз?
    s
    • 2
    • 9
  • m

    M S

    05/07/2021, 2:43 PM
    Сегодня решил посмотреть на некоторые вещи из версии 1.5. Надеялся, что компилятор станет немного умнее в отношении inline(value) class, но посмотрев в декомпилированный код понял, что компилятор по прежнему продолжает делает операцию boxing, хотя упакованое значение уже и так есть. Используя inline(value) class в некоторых случах мы не то чтобы остаемся по затратам на уровне с обычными классами, но даже проигрываем.
    a
    i
    +2
    • 5
    • 15
  • e

    Eugen Martynov

    05/18/2021, 12:29 PM
    Привет а есть проблемы у котлина на JDK 12+? У меня класс и функция имеют похожее имя, но отличаются только регистром одной буквы
    com.android.tools.r8.errors.b: Class content provided for type descriptor commander.screens.booking_flow.creating.CreateAppointment$Effects$LoadAvailableDaysAndTimeSlots$1 actually defines class commander.screens.booking_flow.creating.CreateAppointment$Effects$loadAvailableDaysAndTimeSlots$1
    a
    • 2
    • 4
  • z

    zaleslaw

    05/25/2021, 10:45 AM
    https://habr.com/ru/company/JetBrains/blog/558618/ - вышла статья на habr про KotlinDL 0.2, если у вас есть там возможность голосовать, буду благодарен за лайк
    ✔️ 2
    👍 1
    a
    • 2
    • 1
  • c

    caffeine

    07/12/2021, 11:19 PM
    Всем привет. Есть у меня
    interface I1
    class C1:I1
    class C2
    Нужно реализовать функцию, которая принимает два класса (
    KClass<out Any>
    ). Функция должна вернуть является ли один класс предком другого класса. На данном примере результат будет такой
    isChild(I1::class,C1:class) = true
    isChild(I1::class, C2::class) = false
    Сделать это нужно в рамках kotlin/common. Лучшее что нашел - это
    KClass.isInstance(...)
    , но экземпляров классов у меня на руках нет :( Подскажите пожалуйста
    g
    b
    • 3
    • 6
  • e

    Eugen Martynov

    08/17/2021, 8:24 AM
    Блин, почему так сложно писать тесты на корутины и флоу?
    b
    a
    +2
    • 5
    • 12
  • r

    ruwinmike

    08/24/2021, 4:22 PM
    Вопрос по сериализации sealed классов. Такой пример работает
    private fun test() {
            val string = """{ "type": "a", "value": "Hello"}"""
            val result = Json.decodeFromString(Test.serializer(), string)
            println(">>> result $result")
        }
    
        @Serializable
        sealed class Test {
            abstract val type: String
    
            @SerialName("a")
            @Serializable
            data class A(
                override val type: String,
                val value: String
            ) : Test()
        }
    но можно переопределить type на другое значение? Пытаюсь вот так вот
    private fun test() {
            val string = """{ "fieldType": "a", "value": "Hello"}"""
            val result = Json.decodeFromString(Test.serializer(), string)
            println(">>> result $result")
        }
    
        @Serializable
        sealed class Test {
            @SerialName("fieldType")
            abstract val type: String
    
            @SerialName("a")
            @Serializable
            data class A(
                override val type: String,
                val value: String
            ) : Test()
        }
    Но получаю ошибку
    Polymorphic serializer was not found for missing class discriminator ('null')
    • 1
    • 1
  • a

    Alex

    08/26/2021, 2:29 PM
    Кто-нибудь вкурсе
    value
    классы работают в Exposed?
    i
    a
    i
    • 4
    • 34
  • u

    umar

    08/31/2021, 6:21 PM
    Добрый день всем! Ищу наставника для обучения Kotlin и работы на реальных проектах. Есть базовые знания по Kotlin, Java, Html, Css и Js
    a
    • 2
    • 1
  • c

    caffeine

    09/24/2021, 9:00 PM
    Всем привет. Подскажите пожалуйста как опубликовать мультиплатформенную библиотеку вместе с исходниками. Причем так, чтобы в последствии подключая эту библиотеку к common проекту идея могла найти исходники
    i
    • 2
    • 11
  • e

    Eugen Martynov

    11/05/2021, 3:48 PM
    Как не хватает git rebase --onto в иде в проекте со сквошами
    • 1
    • 1
  • c

    caffeine

    12/04/2021, 2:50 PM
    всем привет? у вас github работает?
    n
    • 2
    • 2
  • v

    Vlad Zotov

    12/09/2021, 3:18 PM
    Привет. Накидайте пожалуйста материалов почитать как и во что компилится код котлина. Во что компилятся корутины, делегаты, котлин проперти. Вот прям про кишочки почитать хочется.
    i
    r
    +3
    • 6
    • 13
  • e

    Eugen Martynov

    12/23/2021, 4:02 PM
    Зависит ли компиляция котлина от JDK на машине? Я вчера переехал с 11 на 15 и у меня object наследующий interface с дефолтными имплементациями кидает
    java.lang.AbstractMethodError
    a
    • 2
    • 4
  • e

    Eugen Martynov

    01/12/2022, 5:23 PM
    И опять я, никак не могу понять как сериализовать sealed класс дескриминатором строкой
    insurance_type
    @kotlinx.serialization.Serializable
    @SerialName("insurance_type")
    sealed class InsuranceInfo : Serializable {
    
        @kotlinx.serialization.Serializable
        @SerialName("public")
        data class Public(
            @SerialName("company_name") val companyName: String? = null,
            @SerialName("company_id") val companyId: String,
            @SerialName("insurance_number") val insuranceNumber: String,
    
            @SerialName("insurance_end_date") @Contextual val insuranceEndDate: LocalDate,
    
            @SerialName("insurance_status") val insuranceStatus: InsuranceStatus
        ) : InsuranceInfo(), Serializable
    
        @kotlinx.serialization.Serializable
        @SerialName("private")
        object Private : InsuranceInfo(), Serializable
    
        @kotlinx.serialization.Serializable
        @SerialName("self-paid")
        object SelfPaid : InsuranceInfo(), Serializable
    }
    Никак не нащупаю решения и не могу найти решения в лоб
    открыть объект, записать елемент дескриминатора, записать все поля силд класса, закрыть объект
    ✅ 1
    • 1
    • 1
  • c

    caffeine

    03/18/2022, 1:08 PM
    Всем привет. У меня есть код типа такого
    expect value class .... {
        var value: Boolean
    }
    В
    actual
    я использую
    get
    и
    set
    для этого поля, однако это не мешает компилятору ругаться на этот
    expect
    класс:
    Inline property cannot have backing field
    и
    Inline class cannot have properties with backing fields
    Как это исправить?
    m
    • 2
    • 1
  • a

    aleksey.tomin

    04/05/2022, 3:49 AM
    Кто администратор этого слак-пространства? Я создал случайно 3 экземпляра себя и хотел бы удалить дубли (там ничего нужного). Лучше в DM наверное
    a
    • 2
    • 1
  • d

    Dmitry

    08/06/2022, 11:58 AM
    Всем привет, я хотел бы уточнить у вас, мне стоит делать репо по Kotlin'у или это избыточно? https://github.com/evitwilly/KotlinBasics
    a
    • 2
    • 3
  • q

    qwert_ukg

    12/09/2022, 9:47 AM
    всем привет
  • q

    qwert_ukg

    12/09/2022, 9:47 AM
    есть где то канал по JB Space
    a
    • 2
    • 2
Powered by Linen
Title
q

qwert_ukg

12/09/2022, 9:47 AM
есть где то канал по JB Space
a

altavir

12/24/2022, 2:50 PM
Есть в слаке разработки плагинов для Idea
https://plugins.jetbrains.com/slack
View count: 11