Skip to content

Repository files navigation

Urbi Android Kit

A Kotlin Android library collection ('Urbi-Kit') providing reusable, production-ready components and utilities used across Urbi mobile apps. The repository is organized as a monorepo with small, focused modules that are easy to adopt in apps or other libraries.

Key goals:

  • Provide simple, well-documented building blocks for Android apps
  • Use modern Kotlin, Kotlinx Serialization, Coroutines, Jetpack libraries
  • Offer optional secure defaults (e.g., encrypted storage) for sensitive data

🚀 Getting Started

Clone the Repository

When cloning this repository, make sure to initialize the submodules:

# Clone with submodules
git clone --recurse-submodules https://github.com/urbi-mobility/android-kit.git

# Or if you already cloned it, initialize submodules separately
git submodule update --init --recursive

Build the Project

After cloning with submodules:

./gradlew clean build

⚙️ Configuration

Please check each module's folder to see how to set it up.

📚 Documentation

To generate the documentation for the modules (e.g., data_store), run the following command to generate Markdown files:

./gradlew :data_store:dokkaGfm

The generated documentation will be available in data_store/build/dokka/gfm.

📦 Publishing to Maven Central

The library modules can be published to Maven Central via the Sonatype Central Portal.

Environment Variables

Configure the following environment variables (e.g., in ~/.zprofile):

# Maven Central credentials (from Sonatype Central Portal token)
export MAVEN_CENTRAL_USERNAME="<your-token-username>"
export MAVEN_CENTRAL_PASSWORD="<your-token-password>"

# GPG Signing
export SIGNING_KEY_ID="<last-8-chars-of-gpg-key>"
export SIGNING_PASSWORD="<gpg-passphrase>"
export SIGNING_SECRET_KEY_FILE="/path/to/.gradle/secring.asc"

After editing, run source ~/.zprofile to apply changes.

Publishing Tasks

Task Description
publishCentralPortalPublicationToMavenLocal Publish to local Maven (for testing)
publishToCentralPortal Publish to Central Portal staging

Publish to Maven Local (test):

./gradlew :data_store:publishCentralPortalPublicationToMavenLocal

Publish to Maven Central:

./gradlew :data_store:publishToCentralPortal

After publishing, visit central.sonatype.com to review and release the staged deployment.

📁 Modules

This is part of the larger Urbi-Kit monorepo:

  • Urbi-Kit-SecureDataStore – An easy way of securely storing user data using jetpack data store.
  • ⏳ More coming soon...

🧑‍💻👩‍💻 Contributing

Contributions are welcome. Please:

  • Open an issue to discuss larger changes
  • Create PRs with small, focused changes and tests/examples when applicable
  • Follow standard Kotlin/Android style, add documentation and examples

✉️ Contact

For questions about usage or integration, open an issue in this repository.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages