kotlinx-datetime
swift-evolution
kotlinx-datetime | swift-evolution | |
---|---|---|
4 | 131 | |
2,436 | 15,399 | |
0.9% | 0.3% | |
8.0 | 9.7 | |
4 days ago | 5 days ago | |
Kotlin | Markdown | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kotlinx-datetime
-
Why should I use kotlinx.serialization?
Kotlin multiplatform types often come with their own serializers. https://github.com/Kotlin/kotlinx-datetime and https://github.com/hfhbd/kotlinx-uuid do, for example.
- Datas no Kotlin
-
Kotlin Team AMA #3: Ask Us Anything
But we do have such plans for our kotlinx-datetime library and expect to provide at least a partial solution during the course of the year
-
What's the best way to calculate the number of days between two dates in Kotlin?
It depends, time has a complex and native bound legacy. But I bet you want this https://github.com/Kotlin/kotlinx-datetime and DateTimePeriod.
swift-evolution
-
Prioritize Work at the Task Level
More reading about how the Swift Task API utilizes and propagates QoS is in the proposal doc.
https://github.com/swiftlang/swift-evolution/blob/main/propo...
-
Swift 6
I think your link got cut off. Here’s the direct link to the section on when to use typed throws. I hadn’t read this before, and it changes how I’ll approach them. Thanks for pointing it out!
https://github.com/swiftlang/swift-evolution/blob/main/propo...
- Integer Generic Parameters
- Objective-C Implementations in Swift
-
Swift's native Clocks are inefficient
According to their changelog[0], Clock was added to the standard library with Swift 5.7, which shipped in 2022, at the same time as iOS 16. It looks like static linking by default was approved[1] but development stalled[2].
I expect that it's as simple as that: It's supported on iOS 16+ because it's dynamically linked by default, against a system-wide version of the standard library. You can probably try to statically link newer versions on old OS versions, or maybe ship a newer version of the standard library and dynamically link against that, but I have no idea how well those paths are supported.
0. https://github.com/apple/swift/blob/main/CHANGELOG.md
1. https://github.com/apple/swift-evolution/blob/main/proposals...
2. https://github.com/apple/swift-package-manager/pull/3905
-
Byte-Sized Swift: Building Tiny Games for the Playdate
[A Vision for Embedded Swift](https://github.com/apple/swift-evolution/blob/main/visions/e...) has the details on this new build mode and is quite interesting.
> Effectively, there will be two bottom layers of Swift, and the lower one, “non-allocating” Embedded Swift, will necessarily be a more restricted compilation mode (e.g. classes will be disallowed as they fundamentally require heap allocations) and likely to be used only in very specialized use cases. “Allocating” Embedded Swift should allow classes and other language facilities that rely on the heap (e.g. indirect enums).
Also, this seems to maybe hint at the Swift runtime eventually being reimplemented in non-allocating Embedded Swift rather than the C++ (?) that it uses now:
> The Swift runtime APIs will be provided as an implementation that’s optimized for small codesize and will be available as a static library in the toolchain for common CPU architectures. Interestingly, it’s possible to write that implementation in “non-allocating” Baremetal Swift.
-
Borrow Checking Without Lifetimes
I may be out of my depth here as I've only casually used Rust, but this seems similar to Swift's proposed lifetime dependencies[1]. They're not in the type system formally so maybe they're closer to poloneius work
[1]: https://github.com/apple/swift-evolution/blob/3055becc53a3c3...
-
Functional Ownership Through Fractional Uniqueness
Swift recently adopted a region-based approach for safe concurrency that builds on Milano et al’s ideas: https://github.com/apple/swift-evolution/blob/main/proposals...
- Swift-evolution/proposals/0373-vars-without-limits-in-result-builders.md
What are some alternatives?
koda-time - Joda Time and Java 8 Time Extensions for Kotlin
compose-multiplatform - Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
klock - Multiplatform Date and time library for Kotlin
foundationdb - FoundationDB - the open source, distributed, transactional key-value store
kotlinx.serialization - Kotlin multiplatform / multi-format serialization
PeopleInSpace - Kotlin Multiplatform sample with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, and Compose for Web clients along with Ktor backend.
Kotlin-Multiplatform-Libraries - Kotlin Multiplatform Libraries. Welcome PR if you find or create new Kotlin Multiplatform Library.
okio - A modern I/O library for Android, Java, and Kotlin Multiplatform.
krangl - krangl is a {K}otlin DSL for data w{rangl}ing
swift - The Swift Programming Language
kbson - Mongo BSON support for kotlinx.serialization.
kotlin-wrappers - Kotlin wrappers for popular JavaScript libraries