Skip to content

Latest commit

 

History

History
107 lines (66 loc) · 4.19 KB

File metadata and controls

107 lines (66 loc) · 4.19 KB

xmtp-android

Test Lint

xmtp-android provides a Kotlin implementation of an XMTP message API client for use with Android apps.

Use xmtp-android to build with XMTP to send messages between blockchain accounts, including DMs, notifications, announcements, and more.

Note: This SDK is now part of the libxmtp monorepo. For issues and contributions, please use the main repository.

Documentation

To learn how to use the XMTP Android SDK, see Get started with the XMTP Android SDK.

SDK reference

Access the Kotlin client SDK reference documentation.

Example app

Use the XMTP Android quickstart app as a tool to start building an app with XMTP. This basic messaging app has an intentionally unopinionated UI to help make it easier for you to build with.

To learn about example app push notifications, see Enable the quickstart app to send push notifications.

Install from Maven Central

You can find the latest package version on Maven Central.

    implementation 'org.xmtp:android:X.X.X'

Breaking revisions

Because xmtp-android is in active development, you should expect breaking revisions that might require you to adopt the latest SDK release to enable your app to continue working as expected.

Breaking revisions in an xmtp-android release are described on the Releases page.

Deprecation

XMTP communicates about deprecations in the XMTP Community Forums, providing as much advance notice as possible.

Older versions of the SDK will eventually be deprecated, which means:

  1. The network will not support and eventually actively reject connections from clients using deprecated versions.
  2. Bugs will not be fixed in deprecated versions.

The following table provides the deprecation schedule.

Announced Effective Minimum Version Rationale
No more support for XMTP V2 May 1, 2025 >=4.0.3 In a move toward better security with MLS and the ability to decentralize, we will be shutting down XMTP V2 and moving entirely to XMTP V3. To learn more about V2 deprecation, see XIP-53: XMTP V2 deprecation plan.

Bug reports, feature requests, and PRs are welcome in accordance with the libxmtp contribution guidelines.

Development Setup

Prerequisites

This SDK is part of the libxmtp monorepo and uses Nix for reproducible builds.

  1. Install Determinate Nix:

    curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
  2. (Optional) Install direnv for automatic environment setup:

    # After installing direnv, allow this directory
    direnv allow

Building

# Enter the Android development shell
nix develop ../../#android

# Build native bindings (.so files + Kotlin bindings)
./dev/bindings

# Build the full SDK
./dev/build

Code Quality

# Format code
./gradlew spotlessApply

# Run lint checks
./gradlew :library:lintDebug

Testing

# Run unit tests
./gradlew library:testDebug

# Run instrumented tests (requires emulator or device)
./gradlew connectedCheck