KaMPKit VS kotlin-result

Compare KaMPKit vs kotlin-result and see what are their differences.

KaMPKit

KaMP Kit by Touchlab. A collection of code & tools designed to get your mobile team started quickly w/Kotlin Multiplatform (by touchlab)

kotlin-result

A multiplatform Result monad for modelling success or failure operations. (by michaelbull)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
KaMPKit kotlin-result
10 35
2,070 937
0.8% -
5.1 8.8
5 days ago 15 days ago
Kotlin Kotlin
Apache License 2.0 ISC License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

KaMPKit

Posts with mentions or reviews of KaMPKit. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • Is Kotlin Multiplatform the right answer ?
    2 projects | /r/Kotlin | 6 Dec 2023
    In KaMP Kit we actually use Koin to add the Application instance: https://github.com/touchlab/KaMPKit/blob/main/app/src/main/kotlin/co/touchlab/kampkit/android/MainApp.kt
    2 projects | /r/androiddev | 5 Dec 2023
    So yes I would recommend using KMP. If you already use kotlin then it's an easy transition, you just have to learn how all the pieces work together. If you're unsure about it start with a small module and import that into your android sample. You can also view some sample projects to get started like https://github.com/touchlab/KaMPKit and https://github.com/JetBrains/compose-multiplatform-template.
  • Kotlin Multiplatform Is Stable and Production-Ready
    2 projects | news.ycombinator.com | 2 Nov 2023
    I've been using Kotlin Multiplatform Mobile (KMM) heavily for the past 2 years on my current startup. I'm currently in the process of removing the entire thing.

    KMM is an alternative to a cross platform mobile library like Flutter, React Native, etc. The idea is that we could write all of our mobile app's business logic, networking layer, and caching layer in Kotlin, and KMM will codgen the matching iOS code. "We only need to write it once!" is the selling point. Then we get a blank canvas to build our UI using 100% native SwiftUI & Jetpack.

    In reality, the codegened iOS code gets you 90% of the way there, the but extra 10% is extremely frustrating to work with. Enums (Sealed Classes in Kotlin) get mangled in translation and you lose exhaustive switch statements. Basic data types like Bool and Int get wrapped so you can only access them using additional .boolValue or Int64(..) constructors. Entire companies are being built around solving the pain point of this last 10%: https://touchlab.co

    In my opinion, the fatal mistake the KMM team made was designing it to support Objective-C, instead of just Swift. So you're using a Kotlin layer -> mangled through Objective-C -> accessed from Swift. It's a confusing decision, as the only iOS teams still actively using Objective-C are legacy apps (like the Twitter app), which seems like the opposite target market for new mobile tech like KMM. Kotlin and Swift are both modern languages, and my gut says the interop between the two would be much better without Objective-C in the middle.

    Further discussion from Droidcon if you're interested: https://www.droidcon.com/2022/08/01/sdk-design-and-publishin...

    > As you progress beyond "POC" to integrating and shipping real production code, the design of the "SDK surface" becomes more complicated and nuanced (or, possibly, problematic)... An Android consumer can see all the richness of the Kotlin language, but the iOS side gets filtered through Objctive-C into Swift. Much can get lost along the way.

  • interesting git repos
    1 project | /r/KotlinMultiplatform | 8 Nov 2022
  • Add Kotlin/JS support to your KMM library
    1 project | dev.to | 4 Mar 2022
    You may check out this commit where I made these changes for the KaMPKit project
  • Getting Started With Kotlin Multiplatform Mobile
    7 projects | dev.to | 17 Feb 2022
    KaMPKit This one is really good, and is kinda a best practice starting point. Touchlab is a very active contributor to the KMM community and it's definitely worth keeping an eye on their blog linked above.
  • Kotlin Multiplatform Careers
    1 project | /r/kotlin_jobs | 21 Nov 2021
    Lovingly gathered by Touchlab. Subscribe to the weekly digest here: http://digest.kotlinmultiplatform.careers
  • KoMPose Kit: KaMP Kit goes Jetpack Compose
    3 projects | dev.to | 24 Aug 2021
    Hey folks, Brady from Touchlab here. I've only been at Touchlab since the beginning of the year, but KaMP Kit, our simple-but-not-too-simple sample project to help those considering Kotlin Multiplatform, started way back at the end of 2019. Back then, Jetpack Compose had just been announced in May. It was a time full of optimism about the modern mobile UI development experience, but also of wild instability. The first method of getting Jetpack Compose to work on your machine involved pulling down the AndroidX development toolchain, and running a special version of Android Studio via terminal commands. Eventually, preview, alpha, and beta version of Compose could be used in the canary version of Android Studio (more history). Starting July 28, 2021, Compose went stable, and a version of Android Studio Arctic Fox, which supports Compose, was released in the stable channel shortly thereafter. Now we can use a stable version of Compose with a stable version of Android Studio. We at Touchlab have been excited about Compose for a long time; you can watch us geek out about it here. And though the community has been interested in Compose for KaMP Kit since at least May 2020, we didn't want folks who are trying out Kotlin Multiplatform with KaMP Kit to also have to learn a changing Jetpack Compose API, and require them to use a special version of Android Studio. Now that these obstacles have been removed, we feel comfortable fully endorsing Jetpack Compose in KMM.
  • Google and Facebook Login on Android with Coroutines
    2 projects | dev.to | 30 Jul 2021
    I recently started using Google One Tap and Facebook login for some auth work for one of our clients at Touchlab, and wanted to make sure I was using the recommended best practices using coroutines and the new Activity Result API. This was trickier than I realized, because the docs for Google One Tap are out of date, and the API for Facebook login is out of date. So after figuring it out, I wanted to share some code snippets for my future self, and I hope you get something useful from it as well.
  • Encrypted Key-Value Store in Kotlin Multiplatform
    3 projects | dev.to | 7 Jun 2021
    Multiplatform Settings is a solid multiplatform key-value store, created by Touchlab's own Russell Wolf, used extensively at Touchlab, as well as in Jetbrains' KMM Production Sample. There is a Settings interface that is implemented for Android, iOS, MacOS, and JVM platforms. At first glance, it doesn't look like Multiplatform Settings offers any encrypted storage. But thanks to the abstraction that Android has built into SharedPreferences and Multiplatform Settings' support for saving to the iOS keychain, our work is pretty easy.

kotlin-result

Posts with mentions or reviews of kotlin-result. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-19.
  • JEP draft: Exception handling in switch
    6 projects | news.ycombinator.com | 19 Apr 2024
    Author here. I have no idea what you could possibly mean with this comment. The coroutineBinding implementation correctly uses the coroutines API for parallel decomposition of Result bindings, exactly how the Kotlin Corotines guide tells you to (backed by a [Mutex](https://github.com/michaelbull/kotlin-result/blob/master/kot...)). The coroutineBinding isn't even the main selling point of the library, you can use it without using this feature entirely.

    Please could you elaborate on what "looking thread safe" means to you? The only portion of the library that supports concurrency *is* thread safe - the unit tests prove it and the use of concurrency primitives such as Kotlin's Mutex are indicative of this. I truly have no idea how you've judged the entirely of the lbirary on whether it's "thread safe" when there is a single function that's related to concurrency and it is very clearly using concurrency primitives.

  • How do you define errors?
    1 project | /r/Kotlin | 17 Apr 2023
    Sealed classes in combination with a library like https://github.com/michaelbull/kotlin-result will get you what you need. Essentially at that point you'll be doing error handling the way you would in Rust, where a 1-level deep sealed class containing data classes as children act as the root error type and each of its variants. If you have errors coming from two different domains you just create a wrapper error type for each domain.
  • Result Class with Generic Type for both Success and Failure States
    5 projects | /r/Kotlin | 21 Mar 2023
    This is a great result lib: https://github.com/michaelbull/kotlin-result
  • Is runCatching in use in any of your projects ? My team is abusing it
    2 projects | /r/androiddev | 20 Mar 2023
    Lastly I do not like kotlin's Result and we use the kotlin-result library which is more expressive and not tied to Throwable (similar to Arrow's Either).
  • Struggling with software robustness with Kotlin
    2 projects | /r/Kotlin | 28 Feb 2023
    In my own code, I started to use explicit error handling. I'm currently experimenting with Result (from https://github.com/michaelbull/kotlin-result) and Raise (from https://arrow-kt.io/).
  • Thoughts on Kotlin Multiplatform?
    1 project | /r/androiddev | 2 Feb 2023
    un-related to multiplatform i've found it extremely helpful to wrap things in a Result type. If something can throw an error, it get's a Result return type. It sounds like that would help your use case too. The built in Result may be useful too
  • Programming with Result
    2 projects | /r/Kotlin | 29 Oct 2022
    This is a better impl.
  • It seems like I'm forced to make this choice at least once a day
    5 projects | /r/ProgrammerHumor | 25 Oct 2022
  • Are nearly all your functions suspend?
    1 project | /r/Kotlin | 18 Aug 2022
    Using a result type can help to differentiate quite nicely. https://github.com/michaelbull/kotlin-result
  • Kotlin Nitpicks: Language and Standard Library
    3 projects | /r/Kotlin | 14 Aug 2022
    kotlin-result

What are some alternatives?

When comparing KaMPKit and kotlin-result you can also consider the following projects:

kmm-production-sample - This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you can download it from the App Store and Google Play. It's been designed to demonstrate how KMM can be used in real production projects.

result4k

ReKotlin - Unidirectional Data Flow in Kotlin - Port of https://github.com/ReSwift/ReSwift to Kotlin

kotlin-monads - Monads for Kotlin

multiplatform-settings - A Kotlin Multiplatform library for saving simple key-value data

Result - The modelling for success/failure of operations in Kotlin and KMM (Kotlin Multiplatform Mobile)

realm-kotlin - Kotlin Multiplatform and Android SDK for the Realm Mobile Database: Build Better Apps Faster.

Arrow Meta - Functional companion to Kotlin's Compiler

facebook-android-sdk - Used to integrate Android apps with Facebook Platform.

Komprehensions - Do comprehensions for Kotlin and 3rd party libraries [STABLE]

PeopleInSpace - Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, Compose for Web and Kotlin/JS + React clients along with Ktor backend.

Kategory - Λrrow - Functional companion to Kotlin's Standard Library