Skip to content

v0.4.19

Choose a tag to compare

@proggeramlug proggeramlug released this 26 Mar 05:07
· 4571 commits to main since this release

Bug Fixes

  • Spacer() in VStack now works for centering: VStack(0, [Spacer(), child, Spacer()]) now correctly centers the child vertically on both iOS and Android.

    • iOS: Spacer now has a zero-height constraint at very low priority (1.0) plus low compression resistance, giving UIStackView's Fill distribution a baseline to expand from. Previously, plain UIView returned noIntrinsicMetric which prevented the layout engine from stretching the spacer.
    • Android: VStack now uses MATCH_PARENT height instead of WRAP_CONTENT. With WRAP_CONTENT, LinearLayout ignored Spacer's weight=1 because there was no extra space to distribute.
  • iPad camera orientation: Camera preview no longer appears rotated 90° in landscape. The AVCaptureConnection.videoOrientation is now updated when the device rotates, via a UIDeviceOrientationDidChangeNotification observer registered during camera start. Maps UIDeviceOrientation to AVCaptureVideoOrientation correctly (device landscape-left maps to video landscape-left, etc.).

  • V8 interop undefined symbols on iOS/Android: js_new_from_handle, js_call_function, js_load_module, js_new_instance, js_create_callback, js_set_property, js_get_export, js_await_js_promise, and js_runtime_init now have no-op stubs in perry-runtime. Pre-built static libraries for iOS/Android no longer require compile-time stub generation for these symbols. When perry-jsruntime (V8) is linked, its real implementations override these stubs.