Image 1 — Looking for testers for a truly personal weather app that adapts itself to your comfort levels
Image 2 — Looking for testers for a truly personal weather app that adapts itself to your comfort levels
Image 3 — Looking for testers for a truly personal weather app that adapts itself to your comfort levels
▲ 0 r/myweatherstation+1 crossposts

Looking for testers for a truly personal weather app that adapts itself to your comfort levels

Hi everyone! I'm looking for testers for Jacket, a weather app that adapts its own forecast to how you interact with the weather.

I got the idea from noticing that I respond to weather differently than my friends and relatives do. For example, I could be overheating in the same weather where my parents would feel cold and need a sweater. Conventional weather apps are still too static to take this account – they just show numbers and even the "feels like" features aren't actually personalized.

Jacket's core goals are:

  1. Simplify your forecast. Jacket takes out all the fluff and gives you only what you need: Is it cold, is it windy, what do I need to wear?
  2. Allow you to review past weather forecasts for their accuracy. Based on your replies, Jacket's LLM layer will tune its weights to take your preferences into account and update your forecast.
  3. Stay private. Jacket is completely on-device for your preferences: personal data never leaves your phone.

It is released on the iOS app store already, with Android in beta testing and releasing soon. I would highly appreciate any feedback or suggestions! Check it out here: https://jacketweather.app/

Thanks!

u/adrianczuczka — 8 days ago
▲ 6 r/KotlinMultiplatform+1 crossposts

ondevice-ai: A multiplatform library for on-device LLMs

On-device AI is a very strong tool: it's private, fast, and works offline. Since Gemini Nano and Apple Foundation Models came out for Android and iOS respectively, they've become increasingly important. They're also great for KMP, since they're easy to set up and require no API key handling. However, KMP adoption is still behind.

That's why I created ondevice-ai.

  • Wraps Gemini Nano and Apple Foundation Models
  • Structured output
  • Easy to check whether the model is still downloading
  • OS completely owns and updates the models, no handling needed

Link: https://github.com/adrianczuczka/ondevice-ai

All suggestions are welcome. Thanks!

github.com
u/adrianczuczka — 8 days ago
▲ 9 r/KotlinMultiplatform+1 crossposts

[Library] audio-stream-player: A KMP library for playing low-latency audio, such as text-to-speech or realtime voice APIs

I built a KMP library specifically for playing audio streams, not URLs or files. With voice AI as big as it is now, handling bytes from an API is such an important topic, but KMP currently has no easy way to handle them.

That's why I built audio-stream-player. The usage is straightforward:

val player = AudioStreamPlayer(sampleRate = 24000) 
player.play() 
ttsResponse.collect { chunk -> player.feed(chunk) } 
player.endOfStream() // suspends until the last sample has played 
player.dispose() 

Feed PCM chunks of any length as they arrive, and playback starts immediately and plays gaplessly. The annoying parts are handled:

  • Frame alignment across chunk boundaries – API chunks rarely end on frame edges
  • ResamplingsampleRate/channels/format describe your data; the device side is handled natively
  • Underruns – if the buffer runs dry mid-stream, playback resumes automatically when more data arrives, with an event so you can show buffering UI
  • endOfStream() suspends until the last sample has actually played – no guessing when the TTS utterance is done
  • iOS audio session configured for you (playback/spokenAudio), opt-out if you manage it yourself

Under the hood, it uses AudioTrack in MODE_STREAM on Android and AVAudioEngine + AVAudioPlayerNode on iOS/macOS. Works on Android, iOS, and macOS.

implementation("com.adrianczuczka:audio-stream-player:0.1.0")

Repo: https://github.com/adrianczuczka/audio-stream-player-kmp

API feedback is very welcome. A web target via the Web Audio API is the likely 0.2.0 if there's interest.

u/adrianczuczka — 11 days ago

I built audio_stream_player – an audio player specifically built for low-latency audio streaming

I was building a chatbot and needed really fast audio streaming, but realized that most audio plugins rely on entire URLs or files, which makes it awkward if you need something more granular than that. There are some plugins that can handle raw uncompressed audio, but they're either single-instance or really heavyweight.

So I revived an old package of mine and made it specifically cater to low-latency continuous streaming. It works with any stream rate, allows for multiple instances playing at the same time, and is designed to be as lightweight as possible. If you're looking to build something with text-to-speech or you just need a clean player for raw audio, check it out!

Pub: https://pub.dev/packages/audio_stream_player

Github: https://github.com/adrianczuczka/audio_stream_player

u/adrianczuczka — 17 days ago