Skip to content

1.9.0

Choose a tag to compare

@cbaker6 cbaker6 released this 18 Jul 21:11
· 170 commits to main since this release
cb1a8b9

Full Changelog

New features

  • (Breaking Change) Added a new type, QueryViewModel which conforms to ObservableObject. The new type serves as a view model property for any Parse Query. Simply call query.viewModel to use the view model with any SwiftUI view. QueryViewModel can be subclassed for customization. In addition, developers can create their own view models for queries by conforming to QueryObservable. LiveQuery Subscription's inherrit from QueryViewModel meaning instances of Subscription provides a single view model that publishes updates from LiveQuery events and traditional find, first, count, and aggregate queries. A breaking change is introduced for those use custom subscriptions as ParseSubscription has been renamed to QuerySubscribable (#183), thanks to Corey Baker.
  • Added a new type, CloudViewModel which conforms to ObservableObject. The new type serves as a view model property for any Cloud Code. Simply call cloud.viewModel to use the view model with any SwiftUI view. CloudViewModel can be subclassed for customization. In addition, developers can create their own view models for queries by conforming to CloudObservable (#183), thanks to Corey Baker.
  • Added two missing Parse types, ParseBytes and ParsePolygon (#190), thanks to Corey Baker.
  • Added caching of http requests along with adding additional headers. Caching and additional headers can be set when initializing the SDK. Caching can also be set per request using API.Options. (#196), thanks to Corey Baker.

Improvements

  • Removed CommonCrypto and now uses encoded string as a hash for child ParseObjects across all OS's (#184), thanks to Corey Baker.
  • All types now conform to CustomStringConvertible (#185), thanks to Corey Baker.
  • Setting limit = 0 of a query doesn't query the server and instead just returns empty or no results depending on the query (#189), thanks to Corey Baker.
  • ParseGeoPoint initializer now throws if geopoints are out-of-bounds instead of asserting (#190), thanks to Corey Baker.
  • Persist all properties of ParseUser and ParseInstallation to keychain so they can be accessed via current. Developers don't have to fetch the ParseUser or ParseInstlation after app restart anymore (#191), thanks to Corey Baker.

Fixes

  • Fixed a bug when signing up from a ParseUser instance resulted in custom keys not being persisted to the keychain (#187), thanks to Corey Baker.
  • Fixed a bug where countExplain query result wasn't returned as an array (#189), thanks to Corey Baker.
  • The query withinPolygon(key: String, points: [ParseGeoPoint]) now works correctly and sends an array of doubles instead of an array of GeoPoint's (#190), thanks to Corey Baker.
  • Fixed a bug where the ParseEncoder incorrectly detects a circular dependency when two child objects are the same (#194), thanks to Corey Baker.
  • Make sure all LiveQuery socket changes are received on the correct queue to prevent threading issues (#195), thanks to Corey Baker.