Skip to content

Pull request Add `performBatchUpdates(_:)` function on composed-swift/Composed


When adding a lot of sections (we have a screen which inserts 100~175 on initial load) the performance is quite poor.

Along with the improve-composed-section-provider-performance branch (which I want to fully validate before making a PR) performing these changes in batch helps a lot.

Nevis version 1.1.0


Release Notes

  • Add support for opening PKGs, including PKGs inside ZIPs and DMGs
  • Improve detection of downloaded files
  • Ensure app is brought forward when opening from status bar icon
  • Fix handling of DMGs if Nevis is force quit and reopened

Nevis version 1.0.1


Release Notes

  • Improve handling of watch folder
  • Improve notification text when an error occurs

Pull request Potential fix for invalidation crashes on composed-swift/ComposedUI


As mentioned in https://github.com/composed-swift/ComposedUI/issues/13 and https://github.com/composed-swift/ComposedUI/issues/8 there are some scenarios where the collection view’s data is out-of-sync with the data in composed.

As mentioned in https://github.com/composed-swift/ComposedUI/issues/13 calling layoutIfNeeded can trigger the data to be in sync again. In this I have added it to mappingWillBeginUpdating(_:) which appears to solve the problem.

It might be needed in replace(sectionProvider:) (because reloadData is called) and/or mappingDidInvalidate(_:) (for the same reason) but I’m still investigating.

I have validated this fix against https://github.com/composed-swift/ComposedUI/issues/8 and it fixes the crash.

https://github.com/composed-swift/ComposedUI/issues/13 still needs to be investigated and may require layoutIfNeeded to be called in mappingDidInvalidate. Marking as a draft until this is checked.

Supporting Multiple Swift Package Versions Without Breaking Compatibility


The Xcode 12 beta includes Swift 5.3 but drops support for iOS 8.x. This means that Swift packages that support iOS 8 will cause a warning:

The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99.

It's not possible to remove this warning within a project that depends on a Swift package with a deployment target of iOS 8, but it is possible to fix this in the dependency without removing support for iOS 8 for older versions of Swift. There are multiple way this can be accomplished.

Keep Reading