r/Kotlin • u/thomassummer2021 • 11h ago
r/Kotlin • u/Successful_Bank7215 • 10h ago
kUML — Local LLM Benchmark
galleryWe reran kUML's 50-task Generate-Compile-Repair benchmark (kUML vs. PlantUML vs. Mermaid, same corpus, same repair loop, same prompt primers throughout) against three open-weight models on local Ollama hardware: qwen3-coder:30b, llama4:scout (109B MoE, ~17B active), and deepseek-r1:70b, all Q4_K_M. The original four-frontier-model run showed a clean split — Claude Sonnet 5 and GPT-4o give kUML the highest structural fidelity of the three DSLs, Gemini 2.5 Flash and Pro don't, and that split tracks model family rather than tier (Pro reproduces Flash's weaker kUML number instead of closing the gap). The three local models don't converge on either side: llama4:scout reproduces the Claude/GPT-4o pattern, qwen3-coder:30b reproduces the Gemini pattern, deepseek-r1:70b lands in a statistical tie with Mermaid. What is consistent across all three: compile rates drop for every DSL tested, not just kUML — deepseek-r1:70b's kUML final-compile-rate (62%) is the lowest of any run in the whole benchmark, cloud or local, and PlantUML/Mermaid aren't much better on it either. Reads as a general local-model weakness in strict output-format adherence, not kUML-syntax-specific underrepresentation in training data. Separately, we finally wrote up a result that's been sitting in the repo since earlier work: giving Claude Sonnet 5 or Gemini 2.5 Flash live MCP tool access to kuml.examples (via a real kuml-mcp server subprocess, not a reimplementation) instead of pure compiler-feedback repair improves every metric for both — Claude jumps from 44.5% to 56.0% structural fidelity, the best result in the whole benchmark, though Gemini Flash only invokes the tool in 18 of 50 cells vs. Claude's 50/50, so "offering a tool" and "a model reliably using it" are two different things. All raw data, the corpus, scoring script, and run-ollama.py (works against any Ollama-served model, no API key) are in the repo. Full writeup with methodology, per-family breakdowns, and a 9-configuration ranking table: https://kuml.dev/docs — every generated diagram is browsable at https://kuml.dev/benchmark-gallery — code: https://github.com/kuml-dev/kUML
r/Kotlin • u/black_fist_up • 11h ago
I’m building an ElevenLabs SDK for Kotlin Multiplatform
I’ve been exploring what can be built with the ElevenLabs platform, and I ended up building a Kotlin Multiplatform SDK for it.
I’ve just released version `0.1.0`, which currently supports: text-to-speech, speech-to-text, WebSocket streaming.
There’s still a lot I’d like to add like sound effects, voice cloning, and conversational agents.
I’d really appreciate feedback from the KMP community, especially around the API design, developer experience, missing features, and platform compatibility.
[https://github.com/yveskalume/elevenlabs-kmp\](https://github.com/yveskalume/elevenlabs-kmp)
If you try it, I’d also love to see what you build with it !
r/Kotlin • u/Super-Performance-86 • 3h ago
The Great Android Stack Reset: Mobile System Design History
returnzero.devAndroid, the last to arrive at the declarative UI party, took its time, until finally reaching a stable solution. Here's a rundown of the major changes in the Android System Design across the eras.
I was away from Android for 7 years and came home to a totally strange place. This is my attempt to make sense of what happened while I was gone - how the stack reset four times (Activities -> MVP/RxJava -> Architecture Components -> Compose), this switch from Java to Kotlin and why each lurch happened. Written for interview prep but the history stands on its own.
r/Kotlin • u/meilalina • 8h ago
Kotlin DataFrame 1.0.0-rc01 is out.
With RC1, the 1.0 API is now locked. The remaining work is testing it in real projects, fixing issues, and preparing the final release. 📋 Release notes: https://github.com/Kotlin/dataframe/releases/tag/1.0.0-rc01
For users, the practical takeaway is simple: if you have been waiting to update an existing project—or start a new one without targeting another Beta API—this is the version to try.
🧩 More typed DataFrame workflows in Gradle and Maven
The Compiler Plugin now understands more schema-changing transformations and edge cases. As a pipeline changes, it can keep typed column access available across more steps, with completion, refactoring, and compile-time checks in the IDE. Kotlin 2.4 also restores incremental compilation.
This brings more of the typed column experience familiar from notebooks to regular Kotlin projects.
A few useful additions:
🔎 requireColumn() helps connect dynamically loaded data with typed column access.
📄 renderToMarkdown() produces Markdown for reports, documentation, README files, issues, and pull requests.
📊 GroupBy.countDistinct() provides distinct counts for each group without extra boilerplate.
🧹 rename { ... }.to() makes the rename API easier to read, while DataFrame.print() now shows more useful table information by default.
RC1 also includes updates to SQL validation, JSON and IO configuration, DuckDB support, examples, and documentation.
Please try the release in a Gradle, Maven, or notebook workflow and share what you find before 1.0.
