r/Kotlin • • 10h ago

Jetbrains has effectively abandoned Koog

Post image
49 Upvotes

The team has not been responsive in the Slack and commits are grinding to a halt. The framework is lagging behind in the lightning-fast speed of AI development. I feel sorry for the people who spent several thousand dollars to attend the agent sessions at Kotlin conf. I'm using Koog minimally in one of my projects and will begin ripping it out.


r/Kotlin • • 13h ago

kiit-codes: General purpose status codes, now with RFC 9457 support

0 Upvotes

Hey r/Kotlin, I posted kiit-codes a while back (original post). The feedback was useful and included a bug report that went out as a fix, so thanks.

Overview

A quick recap: Think HTTP style status codes, but not tied to HTTP. Status β†’ Group β†’ Code, where the first two are fixed and Code is open for your own domain. Use them in any layer of your app (services, background jobs, workers) and convert to HTTP or gRPC at the boundary. See the original post or the docs for the benefits. It’s implemented in Kotlin Multiplatform, with a native TypeScript port in beta, so TypeScript gets idiomatic, exhaustive matching.

What's new

RFC 9457 Problem Details for HTTP APIs output. I had designed kiit-codes with consideration for this RFC 9457 early on, but it wasn't really complete or formalized until a comment on the Kotlin Slack and a couple of other discussions pushed me to tighten this up. See examples below

kiit-codes overview

RFC 9457

Here is an example of a validation error with a custom code:

val OUT_OF_STOCK = Rejected(
    name = "OUT_OF_STOCK",
    title = "Item out of stock",
    origin = "shop.example.com",
    scope = "orders.items",
)

val errors = Err.ErrorList(
    listOf(Err.on("quantity", "only 2 in stock")),
    "Your order could not be completed",
)
val problem = ProblemConverter().convert(OUT_OF_STOCK, errors)

JSON: Converted to JSON for an API response, it looks like this :

{
  "type": "https://shop.example.com/docs/codes/orders/items/Failed/Rejected/OUT_OF_STOCK",
  "title": "Item out of stock",
  "detail": "Your order could not be completed",
  "code": "shop.example.com:orders.items:Failed:Rejected:OUT_OF_STOCK",
  "status": 409,
  "errors": [
    { "field": "quantity", "message": "only 2 in stock" }
  ]
}

Links

  1. GitHub: https://github.com/kiitdev/kiit-codes
  2. Site Docs: https://www.kiit.dev/docs/kiit-codes
  3. RFC Docs: https://www.kiit.dev/docs/kiit-codes#rfc-9457

A few small breaking changes came with it (see the changelog).

Feedback welcome, especially from anyone building HTTP APIs.

Best!

-K


r/Kotlin • • 11h ago

Kotlin-Native on linux arm64 is possible.

Post image
0 Upvotes

So seriously Jetbrains, when are you going to stop slacking off and actually provide support for users to run kotlin on arm64?


r/Kotlin • • 18h ago

Google published an article about me and my apps after I helped people on reddit about Admob and Android in general

Thumbnail
1 Upvotes

r/Kotlin • • 5h ago

Reading git sync status on Android without running git

2 Upvotes

My Android git sync client kept failing silently, so I built a home screen widget that shows when my notes last synced. No git binary needed, everything is plain text in `.git`:

- `logs/HEAD`: last commit/pull and its time

- `FETCH_HEAD` mtime: last time the client reached the remote

- `refs/remotes/origin/<branch>` vs local tip: unpushed commits

- `MERGE_HEAD`, `rebase-merge/`: a stuck merge or rebase

Gotcha: SAF only grants a subtree, so I search every granted folder for `.git`. And check `packed-refs`, branch files vanish after `git gc`.

Kotlin + Jetpack Glance, parsers are pure Kotlin and unit tested. Code (GPL-3.0): https://github.com/marfolog/notes-widget-for-markdown


r/Kotlin • • 5h ago

How do you decide between Native (Swift/Kotlin) and Cross-Platform (Flutter/React Native) for long-term client projects?

4 Upvotes

Cross-platform frameworks have improved significantly, especially regarding UI rendering speed and bridge efficiency. For 80% of business applications, e.g., e-commerce, booking platforms, CRM dashboards, they save significant time and budget.

However, when an app requires heavy background processing, deep Bluetooth/IoT hardware integration, or real-time camera/AR rendering, native code often becomes necessary to avoid performance bottlenecks.

For mobile developers and product managers:
- What hardware or framework limitation forced you to rewrite a cross-platform app natively?
- How do you manage long-term framework maintenance and dependency updates for clients?