---
title: Ditto v3 for Android
slug: v4-4/Lk1CjRxRvKGwZ5vqlx-sD
docTags: 
createdAt: 2023-08-22T18:52:24.063Z
---

`kotlin` `android` `updates` `version` `changelog`&#x20;

***

# Kotlin Android Version 3.0.11

:::Changelog{title="Released: Thu Aug 10th 2023, 7:07 am"}
::ChangelogItem{type="improved" description="Changed: Improved clarity of error messages when data on disk cannot be read by this version following a downgrade from a newer version of Ditto. (#9267)"}

::ChangelogItem{type="improved" description="Changed: Print some internal errors in a more human-readable format. (#9495)"}
:::

```none
implementation "live.ditto:ditto:3.0.11"
```

# Kotlin Android Version 3.0.10

:::Changelog{title="Released: Fri Jun 30th 2023, 8:25 pm"}
::ChangelogItem{type="improved" description="Fixed: a potential crash if a document attachment was malformed (#9045)"}
:::

```none
implementation "live.ditto:ditto:3.0.10"
```

# Kotlin Android Version 3.0.9

:::Changelog{title="Released: Wed Jun 14th 2023, 8:23 am"}
::ChangelogItem{type="fixed" description="Fixed: Ditto store errors now include more details instead of just an object description."}
:::

```none
implementation "live.ditto:ditto:3.0.9"
```

# Kotlin Android Version 3.0.9-alpha1

:::Changelog{title="Released: Mon May 22nd 2023, 4:34 pm"}
::ChangelogItem{type="fixed" description="Fixed: Ditto store errors now include more details instead of just an object description."}
:::

```none
implementation "live.ditto:ditto:3.0.9-alpha1"
```

# Kotlin Android Version 3.0.8

Released: Thu May 18th 2023, 11:33 pm

Synchronized version bump release — no changes

```none
implementation "live.ditto:ditto:3.0.8"
```

# Kotlin Android Version 3.0.7

:::Changelog{title="Released: Fri Apr 7th 2023, 9:28 am"}
::ChangelogItem{type="fixed" description="Fixed: Resolved an issue with logging when the stdout is not available."}
:::

```none
implementation "live.ditto:ditto:3.0.7"
```

# Kotlin Android Version 3.0.6

:::Changelog{title="Released: Wed Mar 15th 2023, 6:00 pm"}
::ChangelogItem{type="fixed" description="Fixed: Issue where Ditto instance using"}

::ChangelogItem{type="fixed" description="Fixed: Potential crash on Windows and Linux from invoking"}
:::

```none
implementation "live.ditto:ditto:3.0.6"
```

# Kotlin Android Version 3.0.5

:::Changelog{title="Released: Tue Feb 28th 2023, 9:31 pm"}
::ChangelogItem{type="improved" description="Changed: some threads spawned by the SDK no longer wait up to 30 seconds before being stopped."}

::ChangelogItem{type="added" description="Changed: added more logging when a peer is unable to connect to another peer because of no overlapping supported protocol versions."}

::ChangelogItem{type="fixed" description="Fixed: replication hanging under some circumstances, especially WebSocket connections to Big Peer"}
:::

```none
implementation "live.ditto:ditto:3.0.5"
```

# Kotlin Android Version 3.0.4

Released: Fri Jan 27th 2023, 4:10 pm

Synchronized version bump release — no changes

```none
implementation "live.ditto:ditto:3.0.4"
```

# Kotlin Android Version 3.0.3

:::Changelog{title="Released: Thu Jan 26th 2023, 6:35 am"}
::ChangelogItem{type="fixed" description="Fixed: an issue which could cause Ditto to hang if more than 500 peers were encountered."}
:::

```none
implementation "live.ditto:ditto:3.0.3"
```

# Kotlin Android Version 3.0.3-alpha2

:::Changelog{title="Released: Mon Jan 23rd 2023, 10:05 am"}
::ChangelogItem{type="fixed" description="Resolved an issue where presence evictions could deadlock on startup with large numbers of peers"}
:::

```none
implementation "live.ditto:ditto:3.0.3-alpha2"
```

# Kotlin Android Version 3.0.2

Released: Fri Jan 20th 2023, 1:20 pm

Synchronized version bump release — no changes

```none
implementation "live.ditto:ditto:3.0.2"
```

# Kotlin Android Version 3.0.1

:::Changelog{title="Released: Fri Jan 13th 2023, 6:57 pm"}
::ChangelogItem{type="added" description="Added: DiskUsage class which can be used to monitor disk usage."}

::ChangelogItem{type="added" description="Added: diskUsage property to Ditto class for access to a DiskUsage instance."}

::ChangelogItem{type="added" description="Added: DiskUsageItem class which contains data about the space used by files in the Ditto working directory."}

::ChangelogItem{type="added" description="Added: routingHint property to DittoGlobalConfig class."}

::ChangelogItem{type="added" description="Added: NO_PREFERRED_ROUTE_HINT constant, used internally by DittoGlobalConfig if no routing hint is specified."}

::ChangelogItem{type="improved" description="Changed: better readability of data sizes and durations in logs."}
:::

```none
implementation "live.ditto:ditto:3.0.1"
```

# Kotlin Android Version 3.0.0

:::Changelog{title="Released: Fri Dec 16th 2022, 5:38 am"}
::ChangelogItem{type="improved" description="Removed: the DittoRGA constructor. You cannot create new RGAs."}

::ChangelogItem{type="improved" description="Removed: the deprecated DittoMutableRGA type. You cannot mutate existing RGAs."}

::ChangelogItem{type="improved" description="Renamed: siteID property -> siteId in Ditto class"}

::ChangelogItem{type="improved" description="Renamed: DittoDocumentID -> DittoDocumentId"}

::ChangelogItem{type="improved" description="Renamed: DittoDocumentIDPath -> DittoDocumentIdPath"}

::ChangelogItem{type="improved" description="Renamed: appID property -> appId in DittoIdentity nested classes"}

::ChangelogItem{type="improved" description="Renamed: siteID property -> siteId in DittoIdentity nested classes"}

::ChangelogItem{type="improved" description="Renamed: DittoPendingIDSpecificOperation -> DittoPendingIdSpecificOperation"}

::ChangelogItem{type="improved" description="Renamed: docID property docId in DittoPendingIdSpecificOperation class"}

::ChangelogItem{type="improved" description="Renamed: DittoWriteTransactionPendingIDSpecificOperation -> DittoWriteTransactionPendingIdSpecificOperation"}

::ChangelogItem{type="improved" description="Renamed: docID property -> docId in DittoWriteTransactionPendingIdSpecificOperation class"}

::ChangelogItem{type="improved" description="Renamed: NoIDPresentInDocument -> NoIdPresentInDocument in DittoError.StoreErrorReason class"}

::ChangelogItem{type="improved" description="Renamed: InvalidLiveQueryID -> InvalidLiveQueryId in DittoError.StoreErrorReason class"}

::ChangelogItem{type="improved" description="Renamed: findByID() method findById() in DittoCollection class"}

::ChangelogItem{type="improved" description="Renamed: docID property -> docId in DittoUpdateResult nested classes"}

::ChangelogItem{type="improved" description="Renamed: docID property -> docId in DittoMutableDocumentPath class"}

::ChangelogItem{type="added" description="Added: close() method to DittoLiveQuery, adding Closeable conformance."}

::ChangelogItem{type="added" description="Added: close() method to DittoAttachmentFetcher, adding Closeable conformance."}

::ChangelogItem{type="improved" description="Deprecated: DittoLiveQuery.stop(), please use the newly added DittoLiveQuery.close() instead."}

::ChangelogItem{type="improved" description="Deprecated: DittoAttachmentFetcher.stop(), Please use the newly added DittoAttachmentFetcher.close() instead."}

::ChangelogItem{type="fixed" description="Fixed: The Closeable returned from observeStatus is now held weakly allowing it to be garbage-collected when the reference goes out of scope."}

::ChangelogItem{type="improved" description="Removed: observe() and observeWithNextSignal() methods of DittoPendingCollectionsOperation, DittoPendingCursorOperation, and DittoPendingIdSpecificOperation. &#xA;&#xA;Please use the corresponding observeLocal() and observeLocalWithNextSignal() variants along with a separate call to subscribe() instead. See https://docs.ditto.live/android/common/concepts/syncing-data#subscribe"}

::ChangelogItem{type="improved" description="Deprecated: DittoRemotePeer, DittoRemotePeerV2, DittoPeerV2Parser, DittoPeersObserverV1, DittoPeersObserverV2, DittoPeersObserverV1Callback, and DittoPeersObserverV2Callback types."}

::ChangelogItem{type="improved" description="Changed: performance improvements."}

::ChangelogItem{type="added" description="Added: disableSyncWithV2 method to Ditto. This allows you to explicitly opt-in to disabling the ability to sync with Ditto peers running any version of the SDK in the v2 series of releases. Assuming this succeeds then this peer will only be able to sync with other peers using SDKs in the v3 series of releases. Note that this disabling of sync spreads to peers that sync with a peer that has disabled, or has (transitively) had disabled, syncing with v2 SDK peers."}

::ChangelogItem{type="improved" description="Improved: reliability if app crashes occur while persisting authentication data."}

::ChangelogItem{type="fixed" description="Fixed: WiFi Aware stability when WiFi is turned on/off."}

::ChangelogItem{type="improved" description="Improved: log increased detail to help debug blocked write transactions."}
:::

```none
implementation "live.ditto:ditto:3.0.0"
```

# Kotlin Android Version 3.0.0-alpha3

Released: Mon Dec 12th 2022, 5:19 am

Release Notes:

- Synchronized version bump release

Installation:

:::BlockQuote
implementation "live.ditto\:ditto:3.0.0-alpha3"
:::

[API Reference URL](https://software.ditto.live/android/Ditto/3.0.0-alpha3/api-reference/)

# Kotlin Android Version 3.0.0-alpha2

Released: Tue Dec 6th 2022, 8:01 am

Release Notes:

- Fixed: WiFi Aware stability when WiFi is turned on/off.
- Improved: reliability if app crashes occur while persisting authentication data.

Installation:

:::BlockQuote
implementation "live.ditto\:ditto:3.0.0-alpha2"
:::

[API Reference URL](https://software.ditto.live/android/Ditto/3.0.0-alpha2/api-reference/)

### Kotlin Android Version 3.0.0-alpha1

Released: Thu Dec 1st 2022, 12:01 pm

Release Notes:

- Removed: the
- Removed: the deprecated
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Renamed:
- Added:
- Added:
- Deprecated:
- Deprecated:
- Fixed: The
- Removed:
- Deprecated:
- Changed: performance improvements.
- Added

Installation:

:::BlockQuote
implementation "live.ditto\:ditto:3.0.0-alpha1"
:::

[API Reference URL](https://software.ditto.live/android/Ditto/3.0.0-alpha1/api-reference/)


