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
WebcomCombine
module has been merged intoWebcomCore
base 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
AuthenticationMethodInternal
was not formatted correctly.
2.3.0
Enhancements
WebcomKey
conforms 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
WebcomWrapper
instance has the samedescription
as its wrapped instance. Webcom.defaultConfigurations
andWebcom.configurations(from:withKey:)
did not throw the expected exception in some circumstances.- The decoding of a
WebcomConfiguration.WebSocketConfiguration
value was ignoring the default value of theprotocol
property. - Canceling a subscription that uses a constraint could delete data from the cache. [#1227]
2.2.0
Enhancements
- Add
WebcomKey.date
property. DataService.node(for:)
method processes.
and..
segments, so that the paths are normalized.- Add
DataNode.key
property and corresponding property inWebcomWrapper
. - Add
DataNode.parent
,DataNode.PromiseWrapper.parent
andDataNode.CombineWrapper.parent
properties. - 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
value
property ofDatasyncEvent
instances contained child nodes withnull
values. These child nodes no longer appear. [#1190]
2.1.2
Bug Fixes
- The
AuthenticationDetails.downloadAvatar(session:queue:then:)
method did not call thecompletionCallback
when no avatar URL was available. Added thenoAvatarURL
case inWebcomError.SDKCode
enumeration to handle this case.
2.1.1
Bug Fixes
- When using
DatasyncNode.runTransaction(...)
, theDatasyncTransaction.Operation
returned by a call tofunction
was not stored in the cache until acknowledgment or reject by the back-end. [#712]
2.1.0
Enhancements
PromiseWrapper
andCombineWrapper
subtypes becomeEquatable
,Hashable
and/orCustomDebugStringConvertible
when their wrapped types are:AuthenticationDetails.PromiseWrapper
andAuthenticationDetails.CombineWrapper
becomeEquatable
.AuthenticationMethodInternal.PromiseWrapper
andAuthenticationMethodInternal.CombineWrapper
becomeCustomDebugStringConvertible
.AuthenticationService.PromiseWrapper
andAuthenticationService.CombineWrapper
becomeEquatable
.DataNode.PromiseWrapper
andDataNode.CombineWrapper
becomeHashable
(and thereforeEquatable
).DataService.PromiseWrapper
andDataService.CombineWrapper
becomeEquatable
.DatasyncNode.PromiseWrapper
andDatasyncNode.CombineWrapper
becomeHashable
(and thereforeEquatable
).DatasyncService.PromiseWrapper
andDatasyncService.CombineWrapper
becomeEquatable
.WebcomApplication.PromiseWrapper
andWebcomApplication.CombineWrapper
becomeHashable
(and thereforeEquatable
).
DataNode
paths are normalized to remove consecutive slashes and trailing slashes.
Bug Fixes
- Make
WebcomDate.backEndCurrentDate
work as expected when used: [#1122]- in the associated value of
DatasyncTransaction.Operation.set(_:)
, - in the
value
ofDatasyncNode.set(_:at:queue:then:)
orDatasyncNode.merge(with:at:queue:then:)
method whentime
isDatasyncTime.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
completionCallback
of theDatasyncNode.decodedValue(...)
method or theDataNode.decodedValue(...)
method, thecause
of theWebcomError
was 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.