Skip to content

v0.3.1

Choose a tag to compare

@proggeramlug proggeramlug released this 22 Mar 13:44
· 4616 commits to main since this release

What's new

iOS: Fix crash — missing NSMicrophoneUsageDescription

Apps using audioStart() crashed on launch because Info.plist lacked privacy usage descriptions. Now included by default, and customizable via perry.toml:

[ios.info_plist]
NSMicrophoneUsageDescription = "Measures ambient sound levels"

Custom Info.plist entries

Any Info.plist key can now be set via [ios.info_plist] in perry.toml — privacy descriptions, URL schemes, background modes, etc.

Android: Automatic permission requests at startup

PerryActivity requests all manifest-declared dangerous permissions before native code runs. No manual permission handling needed.

Android: Canvas rendering fixes

  • Thread-local → global Mutex for cross-thread canvas state
  • Fixed drawLine JNI signature typo
  • Explicit LayoutParams for visible canvas dimensions
  • Transparent clear instead of opaque white

Android: Text "undefined" fix

Fixed null Typeface in set_font_weight() corrupting text content.

Audio capture API (all platforms)

Real-time A-weighted dB(A) via perry/system: macOS/iOS (AVAudioEngine), Android (AudioRecord/JNI), Linux (PulseAudio), Windows (WASAPI), Web (getUserMedia).

Cranelift 0.113 → 0.121