Skip to content

Releases: getditto/DittoSwiftPackage

2.0.1

13 Aug 15:37
Compare
Choose a tag to compare
  • Synchronized version bump release

2.0.1-experimental.xamarin.ios

05 Aug 01:30
Compare
Choose a tag to compare
Pre-release
  • Synchronized version bump release

2.0.0

03 Aug 16:08
Compare
Choose a tag to compare

Version 2 is a major update with a lot of changed/removed APIs. See our 2.0 Migration Guide for discussion.

DittoSwift

  • Note: peers running 2.0.0 are able to sync with peers running at least version 1.1.8 of the SDK.
  • Added: support for explicitly typing values as registers. This is via 2 new types: DittoRegister and DittoMutableRegister, and new registerValue value accessors added to DittoDocumentPath and DittoMutableDocumentPath.
  • Added: DittoCounter and DittoMutableCounter types resembling the CRDT type underneath, which replace the old counter mechanics. A new counter value accessor has been added to DittoDocumentPath and DittoMutableDocumentPath, which returns a DittoCounter or a DittoMutableCounter respectively, if one is present at the document path specified.
  • Added: support for accessing and creating RGAs (Replicated Growable Arrays), which was the default CRDT type for arrays in Ditto v1. There are 2 new types: DittoRGA and DittoMutableRGA in v2, and new rga value accessors added to DittoDocumentPath and DittoMutableDocumentPath. Note that these are deprecated though and arrays should instead be used in registers (which is now the default).
  • Changed: arrays now default to being Register arrays. This means that when you want to update a property in a document that's an array you need to set the whole value as the new array. You can't perform mutating operations on an array in a document other than to fully replace it.
  • Added: value accessor properties have been added to DittoDocumentID: value, string{Value}, bool{Value}, int{Value}, uint{Value}, float{Value}, double{Value}, array{Value}, dictionary{Value}.
  • Changed: the keys DittoAccessLicense and DittoLicenseToken in Info.plist will now fail with a fatal error instead of logging a deprecation warning. Please use the key DittoOfflineOnlyLicenseToken instead.
  • Changed: renamed identity onlinePlaygroundV2 to just onlinePlayground, which replaces the previously deprecated onlinePlayground.
  • Changed: renamed Ditto method tryStartSync() to just startSync(), which replaces the previously deprecated startSync().
  • Removed: deprecated DittoRemotePeerV2 property meshRole, please queryOverlapGroup instead.
  • Removed: deprecated type DittoPeersObserver, please use DittoObserver instead.
  • Removed: deprecated DittoDocumentID method toNative(), please use property value instead.
  • Removed: deprecated DittoScopedWriteTransaction method find(query:), please use find() instead.
  • Removed: deprecated DittoScopedWriteTransaction methods insert() and insertWithStrategy(), please use upsert() and upsertWithStrategy() instead.
  • Removed: deprecated DittoCollection methods insert() and insertWithStrategy(), please use upsert() and upsertWithStrategy() instead.
  • Removed: deprecated identities development and online, please use the available ones instead.
  • Removed: deprecated Ditto methods setAccessLicense() and setLicenseToken(), please use setOfflineOnlyLicenseToken() instead.
  • Removed: deprecated Ditto method setTransportConfig(), please set the transportConfig property directly.
  • Removed: deprecated DittoAuthenticator method isAuthenticated() and property userID, please use status instead.
  • Removed: DittoWriteStrategy.overwrite."

DittoObjC

  • Note: peers running 2.0.0 are able to sync with peers running at least version 1.1.8 of the SDK.
  • Added: support for explicitly typing values as registers. This is via 2 new types: DITRegister and DITMutableRegister, and new lwwRegister value accessors added to DITDocumentPath and DITMutableDocumentPath.
  • Added: DITCounter and DITMutableCounter types resembling the CRDT type underneath, which replace the old counter mechanics. A new counter value accessor has been added to DITDocumentPath and DITMutableDocumentPath, which returns a DITCounter or a DITMutableCounter respectively, if one is present at the document path specified.
  • Added: support for accessing and creating RGAs (Replicated Growable Arrays), which was the default CRDT type for arrays in Ditto v1. There are 2 new types: DITRGA and DITMutableRGA in v2, and new rga value accessors added to DITDocumentPath and DITMutableDocumentPath. Note that these are deprecated though and arrays should instead be used in registers (which is now the default).
  • Changed: arrays now default to being Register arrays. This means that when you want to update a property in a document that's an array you need to set the whole value as the new array. You can't perform mutating operations on an array in a document other than to fully replace it.
  • Added: value accessor properties have been added to DITDocumentID: value, string{Value}, boolValue, integer{Value}, number{Value}, array{Value}, dictionary{Value}.
  • Added: DITIdentity method variants initSharedKey:... without the siteID parameter, leaving this up to Ditto to generate.
  • Changed: DittoSignalNextBlock has been renamed to DITSignalNextBlock.
  • Changed: the keys DittoAccessLicense and DittoLicenseToken in Info.plist will now throw an exception instead of logging a deprecation warning. Please use the key DittoOfflineOnlyLicenseToken instead.
  • Changed: renamed identity type DittoOnlinePlaygroundV2Identity to just DittoOnlinePlaygroundIdentity, including the corresponding DITIdentity initializers. This replaces the previously deprecated identity of type DittoOnlinePlaygroundIdentity, including he corresponding DITIdentity initializers.
  • Changed: renamed method DITDitto method tryStartSync: to just startSync: which replaces the previously deprecated DITDitto method startSync.
  • Removed: deprecated DITRemotePeerV2 property meshRole, please use queryOverlapGroup instead.
  • Removed: deprecated DITDocumentID method toNative, please use value instead.
  • Removed: all deprecated variants of DITScopedWriteTransaction method insert:..., please use the corresponding upsert:... variants instead.
  • Removed: all deprecated variants of DITCollection method insert:..., please use the corresponding upsert:... variants instead.
  • Removed: deprecated identities of type DittoDevelopment- and -OnlineIdentity, including the corresponding DITIdentity initializers. Please use the available ones instead.
  • Removed: deprecated DITDitto methods setAccessLicense: and setLicenseToken:error:, please use setOfflineOnlyLicenseToken:error: instead.
  • Removed: deprecated DITDitto getter activated, please use the activated property, or the isActivated getter instead.
  • Removed: deprecated DITAuthenticator properties isAuthenticated and userID, please use status instead.
  • Removed: DITWriteStrategyOverwrite.

2.0.0-alpha1

20 Jul 15:24
Compare
Choose a tag to compare

This is a preview release of Ditto v2. Full changelog will be provided with the official release.

For details, see our 2.0 Migration Guide.

1.1.10

07 Jul 19:03
Compare
Choose a tag to compare
  • Changed: reduced total memory overhead during sync.
  • Fixed: private class inside the Ditto SDK was named CBOR and conflicted with a private Apple class named exactly the same, which produced a warning at launch time.

1.1.10-experimental.all-product-headers-yaml-issue.1

DittoSwift

  • Fixed: 🚨 error: virtual filesystem overlay file '../all-product-headers.yaml' not found #5863

1.1.9

16 Jun 01:33
Compare
Choose a tag to compare

DittoSwift

  • Changed: reduced CRDT memory overhead.
  • Changed: HTTP/WebSocket service now allows any origin for CORS, so it may be used from a webapp on localhost.\n\n- Fixed: a peer using an online identity would fail to sync peer-to-peer after app restarts.
  • Fixed: DittoDelegate method dittoIdentityProviderAuthenticationRequest(ditto:request:) would receive a DittoAuthenticationRequest with some properties being incorrectly set to nil.

DittoObjC

  • Changed: reduced CRDT memory overhead.
  • Changed: HTTP/WebSocket service now allows any origin for CORS, so it may be used from a webapp on localhost.
  • Fixed: a peer using an online identity would fail to sync peer-to-peer after app restarts.
  • Fixed: DITDittoDelegate method ditto:identityProviderAuthenticationRequest: would receive a DITAuthenticationRequest with some properties being incorrectly set to nil.

1.1.9-alpha1

14 Jun 16:04
b6eb518
Compare
Choose a tag to compare
1.1.9-alpha1 Pre-release
Pre-release
  • 🚑 Hotfix to resolve signing issues

1.1.8

06 Jun 16:24
f11571e
Compare
Choose a tag to compare
  • Fixed: Ditto with onlinePlaygroundV2 identity would fail to sync with the Big Peer if internet access isn't available at the time when Ditto is instantiated.
  • Fixed: DittoSwift contained an invalid development signature.

1.1.7

13 May 19:32
50b095c
Compare
Choose a tag to compare
  • Synchronized version bump release.