KEEP
compose-jb
Our great sponsors
KEEP | compose-jb | |
---|---|---|
46 | 75 | |
2,899 | 10,128 | |
2.9% | 3.0% | |
5.8 | 9.7 | |
12 days ago | 6 days ago | |
Markdown | Kotlin | |
- | 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.
KEEP
-
Making Lenses Practical in Java
Lenses work today. And I think the value class feature will be awesome.
https://github.com/Kotlin/KEEP/blob/master/notes/value-class...
-
Adding Coeffect System to Java with Project Loom
Seems like Kotlin Context Receivers then (https://github.com/Kotlin/KEEP/blob/master/proposals/context-receivers.md).
-
Rust: A Critical Retrospective
Kotlin has value classes. Here's a good overview of how they work in Kotlin: https://github.com/Kotlin/KEEP/blob/master/notes/value-class...
That document is a few years old now and was intended as a design document. But Value classes shipped with Kotlin 1.5. Apparently they are compatible with the project Valhalla value objects that will be added to the JVM at some point. So, this stuff is coming.
I had to look it up because even though I write Kotlin a lot, value classes are not something I have used at all. Looks useful but not that big of a deal and doesn't really solve a problem I have. Data classes and records (in Java) are a bigger deal IMHO.
In practice, the way you deal with immutability in Kotlin is to keep most of your data structures immutable by default unless they need to be mutable. E.g. there's a List and a MutableList interface. Most lists are immutable unless you create a MutableList. Same with val vs. var variables. Val variables can't be reassigned and you kind of use var only by exception when you really have to. The compiler will actually warn you if you do it without good reason. A data class with only vals can't be modified. Java is a bit more sloppy when it comes to mutability semantics. It has records now but all the fields have setters by default. It has var but no val assignments (you can use final to force this but few people do). And so on.
Semantically this is not as strong as what Rust does of course but it's good enough to make e.g. concurrency a lot easier. Mostly, if you avoid having a lot of mutable shared state, that becomes a lot easier.
You could imagine a Kotlin like language with much stronger semantics implementing borrow checking instead of garbage collection. It wouldn't be the same language of course but I don't think it needs to be very different. Using it would not be a massively different.
-
Java record pattern matching in JDK 19
I'd be very interested in a comparison between scala 3 using/given and Kotlin new context receivers https://github.com/Kotlin/KEEP/blob/master/proposals/context...
- Why no one recommends the use of the standard library's Result class but a custom sealed class approach?
-
[Question][Kotlin] Dexter Runtime Permissions development has stopped, whats the alternative?
This will be furthermore simplified with multiple receivers coming very soon
-
Java 20 looks like it may be one of the biggest updates in years
Tfw no pattern matching. :(
-
JSpecify: Express specifications (initially, just nullness properties) in a machine-readable way
I'm aware that kotlin decided against this in kotlin itself, see https://github.com/Kotlin/KEEP/issues/82.
- State of Valhalla
-
I really enjoy the "scope" pattern that Kotlin uses. Where to learn more?
If you like the idea of CoroutineScope, CoroutineContext, suspend, you will like the Kotlin Coroutines Design proposal https://github.com/Kotlin/KEEP/blob/master/proposals/coroutines.md
compose-jb
-
Already experienced with Flutter. Best courses to learn Kotlin Android development?
I'd also recommend taking a look at the Compose Multiplatform repo. Compose is written in a way that the Kotlin team can partner with the Android team to take the Android code base and make it run on iOS, Desktop, and Web as well. iOS and Web are still in early preview, but we should see an alpha or a beta later this year.
-
Why compose multiplatform don't get more popular?
Android samples are great to learn Compose. And then everything you learn about compose is directly applicable to the compose UI in desktop and other platforms. You just read the documentation of https://github.com/JetBrains/compose-jb to get a UI showing on desktop and other platforms, and can go from there.
This has been brought up a few times. I'm not sure I get it. Go to https://github.com/JetBrains/compose-jb
-
Is there a way to make a multiplatform app with Kotlin only?
Yes https://github.com/JetBrains/compose-jb/tree/master/experimental/examples/falling-balls-mpp
- JetBrains invites developers to join the Fleet Public Preview Program
-
Announcing an Experimental Preview of Jetpack Multiplatform Libraries
This exists through Jetbrain's work on "Compose Multiplatform" (used to be called "Jetbrains Compose") https://github.com/JetBrains/compose-jb
-
My small multiplatform code to migrate from Google Authenticator
I was able to find only this https://github.com/JetBrains/compose-jb/blob/master/examples/falling-balls/build.gradle.kts and it is on JVM
-
I made an open source desktop app for investigating android logs
Yes I am using compose multiplatform!
-
Windows/Android Cross Platform UI Example
There are a bunch of great examples demonstrating various concepts here: https://github.com/JetBrains/compose-jb/tree/master/examples
-
Anyone else prefer Kotlin over Flutter etc.?
Actually, Compose is up and running on web and iOS. https://github.com/JetBrains/compose-jb
What are some alternatives?
skiko - Kotlin MPP bindings to Skia
javafx-gradle-plugin - Gradle plugin that makes it easy to work with JavaFX 11+
javafx-examples - A large collection of JavaFX examples demonstrating basic + advanced features of JavaFX.
tornadofx - Lightweight JavaFX Framework for Kotlin
tornadofx2 - TornadoFX 2.0
Jetpack-Compose-Playground - Community-driven collection of Jetpack Compose example code and tutorials :rocket: https://foso.github.io/compose
kotlinx.coroutines - Library support for Kotlin coroutines
kotlinx.serialization - Kotlin multiplatform / multi-format serialization
spring-fu - Configuration DSLs for Spring Boot
swift-evolution - This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.
Decompose - Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.), inspired by Badoos RIBs fork of the Uber RIBs framework
KorGE - KorGE Game Engine. Multiplatform Kotlin Game Engine & Korlibs