LayerKit v0.9.4 Release Notes
-
Public API changes
- ๐ The completion block of
LYRClient synchronizeWithRemoteNotification:completion:
has been changed. Instead of invoking the completion handler with aUIBackgroundFetchResult
and anNSError
, anNSArray
of object changes and anNSError
are now given. TheNSArray
containsNSDictionary
instances that detail the exact changes made to the object model.
โจ Enhancements
- ๐ The
LYRClient
class now includes a watchdog timer that ensures that connection and synchronization in response to push notifications does not exceed 15 seconds of wall clock time. This ensures that ample time is available for processing synchronized changes and prevents the application from being penalized by iOS for exceeding the 30 seconds allotted for processing the push. - ๐ LayerKit now keeps its transport active on transition to the background for as long as permitted by iOS. This enables for the faster synchronization of incoming messages from push notifications.
- ๐ Object changes are now delivered directly to the push notification synchronization callback to facilitate easier processing.
- โจ Enhanced the query controller by introducing the
paginationWindow
property, which enables simple pagination of the complete result set. This feature can be used to implement pull to refresh, "Load More" buttons, or automatic loading of additional objects during scrolling. See the comments on theLYRQueryController
class for more details. - โจ Enhanced the query controller by introducing the
updatableProperties
property, which provides control over which properties should generate update notifications. This can be used to enhance UI performance through the elision of uninteresting updates. See the comments on theLYRQueryController
class for more details. - โ Added new
diagnosticDescription
method toLYRClient
that dumps a report of the client's internal state for debugging. This method is not in the public header, but can be invoked viavalueForKeyPath:
.
๐ Bug Fixes
- ๐ Fixed an issue where LayerKit would not shut down transport after succesfully connecting and sychronizing in response to a push notification.
- ๐ Fixed an issue where authentication challenges encountered by transport were not handled properly.
- ๐ Fixed an issue where LayerKit would not emit a callback from
synchronizeWithRemoteNotification:completion:
if a connection could not be established. - ๐ Fixes an issue where the query controller would emit unnecessary update notifications for objects that were created or deleted.
- ๐ The completion block of