GenericJam

GenericJam

Mob 0.9.27 has been released.

Added

  • Several windows of one app on iPad, one BEAM (MOB-245, iPad half). Each
    UIWindowScene gets its own Mob.Router, navigation and screens; the app’s
    root router keeps :mob_screen and renders to native’s default scene, so a
    single-window app runs the same path as before. New Mob.Scenes (scene
    registry and lifecycle), Mob.Scene (request_new/0, supported?/0,
    of/1), Mob.Test.screens/1, scene: on every Mob.Test helper that
    addresses the current screen, and Mob.Test.MultipleScenesError when
    several windows are live and no scene: is given. Native: a tap set and
    view model per scene, scene-routed back gesture, size class and alert
    results, scene-aware safe_area/1, size_class/1, alert_show/4,
    action_sheet_show/3, clear_taps/1, scenes/0, scene_request/0,
    scene_multiple_supported/0. Only application-role window scenes count,
    so an AirPlay or cable display is not a second window. An alert or action
    sheet appears in the window of the screen that showed it, even when another
    window is in front. Mob.WebView, the back gesture’s WebView history step
    and Mob.Keyboard.dismiss/1 act on the calling screen’s window
    (webview_* and dismiss_keyboard NIFs gained a scene arity; with window
    scenes attached, dismiss_keyboard/0 now looks only in the primary’s
    window, not in any visible one), and on
    that window’s shown WebView, never the previous screen’s parked one. A
    WebView’s messages and blocked URLs carry the scene its tree was built for,
    so they reach that window’s screen even before the view is in a window.
    Every window event with a known scene, the window-connected notice
    included, goes through Mob.Scenes, which drops one no router shows.
    scene: nil in Mob.Test addresses the window the app started in. Launch
    notifications and links (Mob.Link) go to the root router only, and to
    whichever router takes over :mob_screen. A frame in flight for a window
    that closes is dropped rather than shown in the window that takes over its
    tap set, and a closing window’s router is stopped without holding up the
    other windows’ events. A
    further window’s router mounts its root screen after starting, so a
    mount/3 may call Mob.Scene.list/0; :mob_screen moves to a remaining
    window before the closing primary stops; a new session takes over a kept
    window only when that window’s session is gone ({:mob_scene, :replaced, ...}), and a kept window whose session is discarded stops
    ({:mob_scene, :discarded, id}). The by-tag press helpers
    (press_in/3, press_out/3, hold/4) take scene: too. The reload
    mix mob.deploy sends to :mob_screen after a hot push repaints every
    window, not only the one whose router holds the name. Opt in with
    config :mob_dev, multi_window: true (mob_dev#114 stamps
    UIApplicationSupportsMultipleScenes). Needs a native rebuild. Run on the
    iPad and iPhone simulators, not yet on a physical iPad. See
    decisions/2026-10-02-one-router-per-window-scene.md.

Fixed

  • iOS release builds compile again (MOB-504). In 0.9.26, nif_dismiss_keyboard and
    the first-responder walk it uses were defined inside the debug-only test-harness block
    (#if !MOB_RELEASE), while their nif_funcs entries were not, so every iOS release
    build failed with “use of undeclared identifier ‘nif_dismiss_keyboard’”. Both now sit
    outside the harness block. CI now compiles ios/mob_nif.m in debug, release, and
    release with MOB_ENABLE_SCREENSHOT (make -C test/native ios-nif).

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.

Where Next? Top

Trending in News & Updates Top

mat-hek
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
woylie
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
GenericJam
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
danj
Some root certs are compromised, updates are needed to maintain TLS security. As reported by Mozilla the eMudhra intermediate CA privat...
New
woylie
Doggo 0.18.4 has been released. Fixed menu: Run phx-click-away bindings when an item is chosen. menu, menu_bar: Choose the focused item...
New
woylie
Doggo 0.18.2, 0.18.1 and 0.18.0 have been released. Fixed alert_dialog, modal: Show an open dialog as a modal again when a patch moves ...
New
schainks
SystemOneClient v0.3.0 has been released. Added images: option for image inputs with provider: :openai and provider: :cloudflare. Imag...
New

Other Trending Topics Top

dominicletz
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
mudasobwa
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
KristerV
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
OndrejValenta
(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
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
kip
In 2021 I started a new library called Tempo with the objective of modelling time as a set of intervals - not as instants. In 2022 I gave...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews