Modernized and Optimized
Be sure to check the updated Playgrounds for examples of how to use the latest version of the Swift SDK
Breaking Changes
- Current objects such as ParseObject, ParseUser, ParseVersion, etc. now require try async/await. All synchronous networking and local storage calls have been removed. Please look at the updated Swift Playgrounds for examples (#62), thanks to @cbaker6.
- ParseHookTriggerRequest has been renamed to ParseHookTriggerObjectRequest as it is used for decoding triggers related to ParseObjects. The new ParseHookTriggerRequest is similar but used for decoding requests that are not related to ParseObject types, like ParseFile (#53), thanks to @cbaker6.
- Added a new ParseHealth.Status enum to support new feature in Parse Server 6.0.0. Developers can now receive intermediate status updates (Status.initialized, Status.starting) using the ParseHealth.check callback or Combine methods. Status.initialized and Status.starting will only show for async/await and synchronous methods if they are the last value reported from the server after maxConnectionAttempts. Connecting to Parse Servers < 6.0.0 only returns Status.ok or a ParseError
(#43), thanks to @cbaker6. - Add and update ParseError codes. unknownError has been renamed to otherCause. invalidImageData now has the correct error code of 150. webhookError has the correct error code of 143 (#23), thanks to @cbaker6.
- Remove all deprecated code. Be sure to follow the suggestions of all deprecation warnings when building your app in Xcode before upgrading (#23), thanks
to @cbaker6.
New features
- ParseError now has a new property called "swift" which is of type Swift.Error. This property will not be nil when the ParseError is really an OS error. This is intented to help developers improve error handeling by propagating the complete error (#64), thanks to @cbaker6.
- Add user login related attempts to ParseCloudUser. This allows developers to decode login related information when using Parse-Swift for Cloud Code (#51), thanks to @cbaker6.
- Add option to set the serverURL for a particular call. This is useful when using the Swift SDK for Cloud Code in a multi-server environment (#50), thanks to @cbaker6.
- ParseVersion now supports pre-release versions of the SDK (#49), thanks to @cbaker6.
- Adds the the ability to watch particular keys with LiveQueries. Requires Parse-Server 6.0.0 (#48), thanks to @cbaker6.
- The Swift SDK can now properly handle HTTP Status codes 429 and 503 and will retry after the delay specified in the respective header (#43), thanks to @cbaker6.
- The max connection attempts for LiveQuery can now be changed when initializing the SDK (#43), thanks to @cbaker6.
Fixes
- Fixed "Duplicate request" error when resending requests related to idempotency (#63), thanks to @cbaker6.
- Fixed query count and withCount returning 0 when the SDK is configured to use GET for queries (#61), thanks to @cbaker6.
- Fixed ambiguous ParseAnalytics trackAppOpenned (#55), thanks to @cbaker6.
- Refactored playground mount to be "/parse" instead "/1". Also do not require url when decoding a ParseFile (#52), thanks to @cbaker6.
- Fixed issues that can cause cache misses when querying (#46), thanks to @cbaker6.
- Fixed a threading issue with .current objects that can cause apps to crash (#45), thanks to @cbaker6.