Releases: parse-community/Parse-Swift
Releases · parse-community/Parse-Swift
1.9.0
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.
1.8.6
Improvements
- Added SwiftUI query combine example to playgrounds. Skip id when encoding ParseObjects (#181), thanks to Corey Baker.
- Persist current SDK version for migrating between versions (#182), thanks to Corey Baker.
1.8.5
Fixes
- Fixed a bug in LiveQuery when a close frame is sent from the server that resulted in closing
all running websocket tasks instead of the particular task the request was intended for. The fix
includes a new delegate method namedclosedSocket()
which provides the close code
and reason the server closed the connection (#176), thanks to Corey Baker.
1.8.4
Fixes
- Switched context header X-Parse-Context to X-Parse-Cloud-Context to match server (#170), thanks to Corey Baker.
- Fixed a bug in LiveQuery that prevented reconnecting after a connection was closed. Also added a sendPing method to LiveQuery (#172), thanks to Corey Baker.
1.8.3
Fixes
- Fixed a bug that prevented saving ParseObjects that had Pointers as properties (#169), thanks to Corey Baker.
1.8.2
1.8.1
Improvements
- Append instead of replace when using query select, exclude, include, and fields (#155), thanks to Corey Baker.
Fixes
- Transactions currently don't work when using mongoDB(postgres does work) on the parse-server. Internal use of transactions are disabled by default. If you want the Swift SDK to use transactions internally, you need to set useTransactionsInternally=true when configuring the client. It is recommended not to use transactions if you are using mongoDB until it's fixed on the server (#158), thanks to Corey Baker.
1.8.0
New features
- Add ParseAnalytics. Requires app tracking authorization in latest OS's (#147), thanks to Corey Baker.
Improvements
- Adds the ability to directly use == as a QueryConstraint on a field that's a ParseObject (#147), thanks to Corey Baker.
- Future proof SDK by always sending client version header. Also added http method PATCH to API for future use (#146), thanks to Corey Baker.
Fixes
- Fixed an error that occured when deleting a ParseFile which resulted in the file being downloaded locally (#147), thanks to Corey Baker.
1.7.2
New features
- Added ability to send context with object by specifying it within options (#140), thanks to Corey Baker.
Fixes
- ParseFiles can't be updated from the client and will now throw an error if attempted. Instead another file should be created and the older file should be deleted by the developer. (#144), thanks to Corey Baker.
- Fixed issue where Swift SDK prevented fetching of Parse objects when custom objectId was enabled (#139), thanks to Corey Baker.
Improvements
- Add playground example of saving Parse objects with a custom objectId (#137), thanks to Corey Baker.
- Improved comparison of query constraints by comparing value (#140), thanks to Corey Baker.
1.7.1
New features
- Can now check the health of a Parse Server using ParseHealth. (#134), thanks to Corey Baker.