Webcom iOS SDK Change Log
All notable changes to this SDK are documented in this file.
This project adheres to Semantic Versioning.
Publication dates comply with the ISO 8601 Standard.
3.0.0
Breaking
- This release requires iOS 13 or more recent.
- API deprecated in version 2.2.0 have been removed.
- The
WebcomCombinemodule has been merged intoWebcomCorebase module.
Enhancements
- The SDK does not use the Starscream library anymore.
2.3.1
Bug Fixes
- The log message when an invalid state occurs while authenticating using
AuthenticationMethodInternalwas not formatted correctly.
2.3.0
Enhancements
WebcomKeyconforms toCustomStringConvertible.- Increase the default web socket timeout to save battery (170 seconds instead of 45 seconds). [#1217]
- Make subscription callbacks wait for web socket establishment to complete before being called. [#1152]
Bug Fixes
- A
WebcomWrapperinstance has the samedescriptionas its wrapped instance. Webcom.defaultConfigurationsandWebcom.configurations(from:withKey:)did not throw the expected exception in some circumstances.- The decoding of a
WebcomConfiguration.WebSocketConfigurationvalue was ignoring the default value of theprotocolproperty. - Canceling a subscription that uses a constraint could delete data from the cache. [#1227]
2.2.0
Enhancements
- Add
WebcomKey.dateproperty. DataService.node(for:)method processes.and..segments, so that the paths are normalized.- Add
DataNode.keyproperty and corresponding property inWebcomWrapper. - Add
DataNode.parent,DataNode.PromiseWrapper.parentandDataNode.CombineWrapper.parentproperties. - Add
DataNode.relativeNode(for:),DataNode.PromiseWrapper.relativeNode(for:)andDataNode.CombineWrapper.relativeNode(for:)methods, as well as the corresponding/operators.
Changes
- Rename
WebcomValuable.keys()toWebcomValuable.childrenKeys().
The old method is still available but it is deprecated. - Rename
DataNode.keys(session:queue:then:)toDataNode.childrenKeys(session:queue:then:).
The old method is still available but it is deprecated. - Rename
DataNode.PromiseWrapper.keys(session:)toDataNode.PromiseWrapper.childrenKeys(session:).
The old method is still available but it is deprecated. - Rename
DataNode.CombineWrapper.keys(session:)toDataNode.PromiseWrapper.childrenKeys(session:).
The old method is still available but it is deprecated.
Bug Fixes
- In some circumstances, the
valueproperty ofDatasyncEventinstances contained child nodes withnullvalues. These child nodes no longer appear. [#1190]
2.1.2
Bug Fixes
- The
AuthenticationDetails.downloadAvatar(session:queue:then:)method did not call thecompletionCallbackwhen no avatar URL was available. Added thenoAvatarURLcase inWebcomError.SDKCodeenumeration to handle this case.
2.1.1
Bug Fixes
- When using
DatasyncNode.runTransaction(...), theDatasyncTransaction.Operationreturned by a call tofunctionwas not stored in the cache until acknowledgment or reject by the back-end. [#712]
2.1.0
Enhancements
PromiseWrapperandCombineWrappersubtypes becomeEquatable,Hashableand/orCustomDebugStringConvertiblewhen their wrapped types are:AuthenticationDetails.PromiseWrapperandAuthenticationDetails.CombineWrapperbecomeEquatable.AuthenticationMethodInternal.PromiseWrapperandAuthenticationMethodInternal.CombineWrapperbecomeCustomDebugStringConvertible.AuthenticationService.PromiseWrapperandAuthenticationService.CombineWrapperbecomeEquatable.DataNode.PromiseWrapperandDataNode.CombineWrapperbecomeHashable(and thereforeEquatable).DataService.PromiseWrapperandDataService.CombineWrapperbecomeEquatable.DatasyncNode.PromiseWrapperandDatasyncNode.CombineWrapperbecomeHashable(and thereforeEquatable).DatasyncService.PromiseWrapperandDatasyncService.CombineWrapperbecomeEquatable.WebcomApplication.PromiseWrapperandWebcomApplication.CombineWrapperbecomeHashable(and thereforeEquatable).
DataNodepaths are normalized to remove consecutive slashes and trailing slashes.
Bug Fixes
- Make
WebcomDate.backEndCurrentDatework as expected when used: [#1122]- in the associated value of
DatasyncTransaction.Operation.set(_:), - in the
valueofDatasyncNode.set(_:at:queue:then:)orDatasyncNode.merge(with:at:queue:then:)method whentimeisDatasyncTime.nextDisconnection.
- in the associated value of
- Make the
DatasyncNode.runTransaction(_:queue:then:)method: [#1124]- notify subscriptions when the resulting value is acknowledged by the back-end,
- store this value in the cache and report it to the
completionCallback.
2.0.1
Bug Fixes
- Fix a compilation error when using Xcode 13.
- In the
completionCallbackof theDatasyncNode.decodedValue(...)method or theDataNode.decodedValue(...)method, thecauseof theWebcomErrorwas incorrect in case of decoding error.
2.0.0
Breaking
- This release implements a completely new API, which makes full use of the Swift language.
Change Log
