juno¶
Warning
The juno package is a work in progress, only available in
Juno 4.0 — which is itself currently in beta. Public surfaces
may change between releases until the API stabilises. The
BETA badge next to each page title is a reminder that you
are reading pre-stable documentation.
Pythonic iOS device APIs for Juno scripts.
The juno package gives Python scripts running inside Juno first-class access to iOS frameworks — clipboard,
contacts, reminders, photos, sound, notifications, sharing, location,
motion, the device itself, the keychain, and Bluetooth — without any of
the boilerplate of bridging to ObjC by hand. Each submodule wraps a
single iOS framework with a small, idiomatic Python surface (dataclasses,
context managers, generators, with-blocks).
Typical usage:
from juno import clipboard, sound, bluetooth
clipboard.set_string("Hello from Python")
sound.play("/path/to/notification.wav")
for adv in bluetooth.scan(timeout=10):
print(adv.name, adv.rssi)
Camera capture is not a juno.* module — Juno ships OpenCV
pre-installed, so use cv2.VideoCapture(0) directly. The first
call triggers the standard iOS camera-permission prompt
automatically.
Modules¶
juno.bluetooth — Core Bluetooth (central role) scan, connect, characteristic read/write/notify.
juno.clipboard — read / write the system pasteboard (text, URL, image bytes).
juno.contacts — read and write the device address book.
juno.device — device info (model, OS version, screen geometry, battery, haptics).
juno.dialogs — native UIKit alerts, action sheets, text input, and date / time pickers.
juno.keychain — store and retrieve secrets in the iOS keychain.
juno.location — one-shot location fixes and reverse-geocoding.
juno.motion — accelerometer / gyroscope / magnetometer / device-motion streams.
juno.notifications — schedule and cancel local user notifications.
juno.objc — convenience layer over the bundled rubicon-objc 0.5.4: load frameworks, call UIKit / Foundation directly, define custom delegate classes from Python.
juno.photos — pick photos from the user’s library; save bytes to the camera roll.
juno.preview — present arbitrary files or in-memory data (bytes,
PIL.Image,numpy.ndarray,matplotlib.figure.Figure) in the Juno modal preview from a script or a notebook.juno.reminders — read, add, complete, and delete EventKit reminders.
juno.sharing — present the system share sheet (
UIActivityViewController).juno.sound — fire-and-forget audio playback and a
Playerclass for stateful control of a long-livedAVAudioPlayer.
Other device APIs¶
Capabilities that aren’t part of the juno.* surface but ship
with Juno’s runtime and are documented here for discoverability.
Browser — open URLs in an in-app web view or the system Safari via Python’s standard
webbrowsermodule (nojuno.browsermodule).Camera — live camera capture via OpenCV’s
cv2.VideoCapture(0)(Juno ships OpenCV pre-installed, nojuno.cameramodule).