%{ name: :mob_touch, mob_version: "~> 0.7", plugin_spec_version: 1, description: "Stream raw screen-touch coordinates (x/y) to a Mob screen", # A sample screen the host can navigate to by route. Pure-Elixir + # hot-pushable; drop it and this entry in a real app that builds its own UI. screens: [ %{module: MobTouch.DemoScreen, default_route: "/mob_touch/demo"} ], nifs: [ # iOS: Objective-C NIF, a passive UIGestureRecognizer on the key window. %{module: :mob_touch_nif, native_dir: "priv/native/ios", lang: :objc, platform: :ios}, # Android: zig NIF bridging to the Window.Callback observer in the Kotlin # MobTouchBridge. %{module: :mob_touch_nif, native_dir: "priv/native/jni", lang: :zig, platform: :android} ], # No runtime permission: observing touches on the app's own window needs none. permissions: [], android: %{ bridge_kt: "priv/native/android/MobTouchBridge.kt", # Implements MobActivityAware — it needs the Activity's Window to install # (and later restore) the touch observer. bridge_class: "io.mob.touch.MobTouchBridge" }, ios: %{ frameworks: ["UIKit"] } }