m

    Marc Knaup

    2 years ago
    What kinds of libraries do you miss most in multiplatform?
    Nick

    Nick

    2 years ago
    While there is #koin, it’s not currently working with kotlin 1.4 very well.
    aleksey.tomin

    aleksey.tomin

    2 years ago
    1. Standard logger 2. ktor-CIO client with SSL 3. ktor-CIO server (with SSL)
    b

    bsimmons

    2 years ago
    +1 for the standard logger
    m

    Marc Knaup

    2 years ago
    @Nick what about Kodein?
    Logging is a good point! Haven’t thought about that one.
    Nick

    Nick

    2 years ago
    kodein works on mpp?? I thought it was just for android 🤯
    m

    Marc Knaup

    2 years ago
    Yeah it’s multiplatform by now, thanks to
    typeOf()
    . I stopped using it though as I find it too heavy (esp. the API). I rarely need more logic than “give my an instance for this class”. No tagging, factories, providers, etc.
    OTOH writing DI properly isn’t too easy either 😅
    saket

    saket

    2 years ago
    It’d be great if we had a basic library for reading and writing to files.
    m

    Marc Knaup

    2 years ago
    @saket like the vision of
    kotlinx-io
    ?https://github.com/Kotlin/kotlinx-io
    saket

    saket

    2 years ago
    yes, but
    kotlinx-io
    doesn’t support files yet and the project looks abandoned
    m

    Marc Knaup

    2 years ago
    Yup, vision. Doesn’t seem to have a high priority indeed 😞
    saket

    saket

    2 years ago
    There’s also https://github.com/orangy/kotlinx-files but it hasn’t been updated in a while either.
    I’ve been keeping an eye on https://github.com/caffeine-mgn/pw.binom.io
    m

    Marc Knaup

    2 years ago
    Lot’s of stuff packed in one library 😮
    saket

    saket

    2 years ago
    that is exactly why I get overwhelmed by it lol
    Big Chungus

    Big Chungus

    2 years ago
    For logging there's logkat
    Thomas

    Thomas

    2 years ago
    Strings.kt
    m

    Marc Knaup

    2 years ago
    @Thomas what do you miss for Strings?
    Thomas

    Thomas

    2 years ago
    Multiplatform string resources. Currently I have a simple Gradle script that converts Android strings.xml to iOS localizable file, but a real multiplatform solution would be better
    m

    Marc Knaup

    2 years ago
    Ah, a string localization solution. You could help build one on top of this: https://github.com/fluidsonic/fluid-locale/blob/master/sources/common/LocalizedValueResolver.kt It’s basically for resolving a values based on a Locale w/ hierarchy in mind (
    zh-Hant-CN
    ->
    zh-Hant
    ->
    zh
    ->
    root
    ).
    You you could create a Gradle plugin to generate an even more efficient resolution like I do with country name localization:https://raw.githubusercontent.com/fluidsonic/fluid-i18n/master/modules/data-regions/sources/common/RegionNames_normal.generated.kt It’s fun 😄
    But we’d still have to add support for pluralization and placeholders based on Unicode standards & CLDR.
    gildor

    gildor

    2 years ago
    • Resources • Real compile-time DI (not service provider) • Files • Server • Logging • Good, official full-featured testing library, not kotlin-test
    m

    Marc Knaup

    2 years ago
    Regarding DI you basically mean a compile-time check for whether dependencies will properly resolve at runtime? Otherwise it's called parameters, isn't it?
    gildor

    gildor

    2 years ago
    right
    not sure what do you mean by “called parameters”
    m

    Marc Knaup

    2 years ago
    Basically passing the dependencies as function or constructor parameters. That’s most basic compile-time DI, isn’t it? 🙂
    gildor

    gildor

    2 years ago
    yes, manual dependency injection, you right
    saket

    saket

    2 years ago
    Someone is working on a DI library that uses KSP: https://github.com/evant/kotlin-inject
    m

    Marc Knaup

    2 years ago
    Haven't heard of ksp - sounds great! Maybe I can make my JSON library easily multiplatform by that 😃 I also need a multiplatform KAPT replacement for my graphql library.
    Orhan Tozan

    Orhan Tozan

    2 years ago
    For logging, I'm using https://github.com/AAkira/Napier for awhile now, works great.
    aleksey.tomin

    aleksey.tomin

    2 years ago
    I haven’t found macOS/minGW source code. Is it exists?
    r

    rocketraman

    1 year ago
    For logging, I started with Napier but switched to Kermit. Napier relies too much on objects (statics) and so was making things more difficult than necessary. https://github.com/touchlab/Kermit