GenericJam
Mob 0.9.29 has been released.
Added
on_touch: per-finger touch on any node, with the position inside it.
on_touch: {pid, tag}delivers{:touch, tag, %{phase, pointer_id, x, y, width, height, ts}}for every finger that lands on the node::down,
:upor:cancel, plus:movewithmoves: true(throttled per finger,
16 ms / 1 dp by default,throttle:anddelta:to tune). A finger
belongs to the node it landed on until it lifts, so sliding onto another
on_touchnode sends that node nothing; several fingers on several nodes
are independent, and every:downgets exactly one:upor:cancel
however often the screen re-renders. The down isn’t delayed by slop or a
double-tap wait, and it observes without consuming, soon_tap, long
press, press in/out and scrolling keep working.Mob.Event.Touch,
Mob.Test.touch/4andMob.ScreenCase.render_touch/4build the same
message for tests. See the components guide, “Per-finger touch”, and
decisions/2026-11-12-per-node-multi-pointer-on-touch.md. Checked on a
Moto G Power 2021 (Android 11: two fingers on two nodes, two on one node,
drag capture, taps, cancel) and an iPhone SE (two real fingers on two
nodes, drag capture, taps). (MOB-518)
Changed
- A tap on a node that also declares
on_touchresolves
identity-tolerantly, as a press node’s already does: the touch-down
usually re-renders the screen, and the strict lookup dropped the tap whose
handle came from the render before (seen on an iPhone SE). (MOB-518)
Upgrading
on_touchneeds iOS 18 or newer (iOS 17 ignores it and logs once). On
Android it needs theMobBridge.kt/beam_jni.cfrom themob_new
release that includes MOB-518; an app generated earlier must port those
changes (listed in mob_new’s CHANGELOG). (MOB-518)
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
Popcorn, the library that runs Elixir code in the browser, is now stable :popcorn:
This is possible because it now builds on a very stab...
New
Hologram UI is in the works - the official component library for Hologram - and the waiting list is now open.
A common reaction when I m...
New
This thread is for updates on the Hologram website (docs, new pages, roadmap, feature status, etc.).
You can watch this thread to get no...
New
Stampede 1.2 is out, and I finally got to try it at a bigger scale.
What’s new
--find-limit: instead of a fixed number of users, it add...
New
Hey Elixir folks,
I’ve been working on Xenia 0.2.0, and it’s nearly ready.
This release focuses on performance, easier integration, and...
New
Hi all,
I’ve just released Sake 0.5.0, and I want to explain better what it’s for, because I think many Phoenix apps can use it now.
Wh...
New
I’m working to make Potions the easiest way to deploy Elixir applications, and the next step in that journey is live: you can now bring y...
New
Other Trending Topics
Mishka CMS Migration is an extension for Mishka CMS that reads WordPress and other CMS dependent system site and writes it into the CMS: ...
New
Hey there,
I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first.
...
New
Hi everyone :waving_hand:
I wanted to share something I’ve been building — NowBlind, a random chat app designed to help people discover ...
New
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
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly)
AI dream has many faces, but general...
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
- #code-sync
- #discussion
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #ai
- #umbrella
- #elixirconf-us
- #full-time-contract
- #podcasts-by-brainlid
- #blog-post
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #elixirconf-eu
- #processes
- #security
- #api
- #forms
- #performance










