GenericJam
Mob 0.9.22 has been released.
Added
Mob.Speech.voices/0: the text-to-speech voices installed on the
device, as{:ok, [%{id, name, language, quality, network}]}sorted by
language, then best quality, then name, on-device before network (iOS
AVSpeechSynthesisVoice.speechVoices, AndroidTextToSpeech.getVoices,
leaving out voices whose data isn’t downloaded).qualityis
:very_low | :low | :normal | :high | :very_highon both platforms. It
blocks the caller (on Android until the engine starts, at most 5 s) and
returns{:error, :unavailable}when the engine didn’t start or
{:error, :unsupported}off device or on an older native build or bridge.speak/3’s:voicetakes a voice id fromvoices/0as well as a
BCP-47 language tag. An exact id match wins; otherwise it’s a language tag;
a value that’s neither speaks with the system default voice.- End-of-speech events (part of MOB-453). The process that called
speak/3gets{:speech, :done}when its utterance finishes,
{:speech, :cancelled}whenstop_speaking/1interrupts it, and on Android
{:speech, :failed}when the engine can’t speak it. - Upgrading: the iOS half is in
ios/mob_nif.mand the Android NIF in
android/jni/mob_nif.zig, so rebuild natively (mix mob.deploy --native).
Android also needs theMobBridge.kttext-to-speech block from mob_new
0.6.14 (ttsSpeakFor,ttsVoices, the reworkedttsSpeak/ttsStop, and
thettsAppContextline inMobBridge.init; mob_new’s CHANGELOG has the
steps) and
anandroid.intent.action.TTS_SERVICEentry in the manifest’s<queries>;
without that entry, API 30+ hides the TTS engine from the app. With an
older bridge,voices/0returns{:error, :unsupported}andspeak/3
still speaks, with:voiceas a language tag only and no events.
Changed
- Android:
:rate,:pitchand:voiceapply to one utterance, as on
iOS (with mob_new 0.6.14’s bridge).TextToSpeechkept them between calls,
so aspeak/3without:voiceused whatever voice the previous call chose.
Options left out now use the user’s text-to-speech settings.
Documentation
:scroll’saxisprop is in the components guide (#212). Horizontal
scrolling worked on both platforms but the:scrollreference called it a
vertical container and leftaxis(andshow_indicator) out of its prop
table. The table now lists them, with an example and which props are
vertical-only; the guides use the string form"horizontal"throughout.
Link: Release 0.9.22 · GenericJam/mob · GitHub
Mob Info
Classification: Hybrid Mobile Framework
Description: BEAM-on-device mobile framework for Elixir. OTP runs inside your iOS and Android apps — embedded directly in the app bundle, no server required. Screens are GenServers; the UI is rendered by Compose and SwiftUI via a thin NIF.
Forum/tag: mob
Click here to view Mob’s main announcement thread.
Trending in News & Updates
Doggo 0.18.3 has been released.
Added
tabs: Add a disabled attribute to the :panel slot. A disabled tab can be focused with the arrow k...
New
Hologram v0.12 is out! This one is for the big apps. Evo Store, Hologram’s Performance Sponsor, has an app with over 9,000 Elixir modules...
New
ReqLLM v1.28.0 has been released.
Features:
add StepFun chat and audio providers (#1087) by mikehostetler
openai: honour image deta...
New
Mob 0.9.18 has been released.
Added
anchor: "bottom" on :scroll, for chat logs (MOB-481). The scroll
opens at the end of its content. ...
New
Nerves v2.0.0-pre.4 and v2.0.0-pre.3 has been released.
Changes
Fix typo preventing SOURCE_DATE_EPOCH from propogating through the
fi...
New
Mob 0.9.17, 0.9.16 and 0.9.15 has been released.
Added
Async work in screens, the LiveView way. Mob.Socket.start_async/3 runs
a functi...
New
Finitomata v1.0.0-rc.0 and v0.43.0 has been released.
Published to Hex.pm: finitomata | Hex
Documentation: Finitomata v1.0.0-rc.0 — Doc...
New
Other Trending Topics
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #ai
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #hex









