ink
| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release |
|---|---|---|---|---|
| October 22, 2025 | - | - | 1.0.0-beta01 | - |
Declaring dependencies
To add a dependency on Ink, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for
your app or module:
Groovy
dependencies { implementation "androidx.ink:ink-authoring:1.0.0-beta01" implementation "androidx.ink:ink-brush:1.0.0-beta01" implementation "androidx.ink:ink-geometry:1.0.0-beta01" implementation "androidx.ink:ink-nativeloader:1.0.0-beta01" implementation "androidx.ink:ink-rendering:1.0.0-beta01" implementation "androidx.ink:ink-strokes:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.ink:ink-authoring:1.0.0-beta01") implementation("androidx.ink:ink-brush:1.0.0-beta01") implementation("androidx.ink:ink-geometry:1.0.0-beta01") implementation("androidx.ink:ink-nativeloader:1.0.0-beta01") implementation("androidx.ink:ink-rendering:1.0.0-beta01") implementation("androidx.ink:ink-strokes:1.0.0-beta01") }
For more information about dependencies, see Add build dependencies.
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
There are no release notes for this artifact.
Version 1.0
Version 1.0.0-beta01
October 22, 2025
androidx.ink:ink-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
Bug Fixes
- Bug fixes in preparation for beta01 release (I9900e)
- Reduce rendering artifacts in strokes due to too many modeled inputs too close to each other.
- Fix a rare crash in input modeling.
Version 1.0.0-alpha07
October 08, 2025
androidx.ink:ink-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.
New Features
SelfOverlapparameter forStockBrusheshighlighterandemojiHighlighter, which replacesInProgressStrokesViewrendererFactory- Improved implementation of stroke input smoothing, which eliminates device measurement noise but which more accurately reflects user input than the previous stroke input smoothing implementation
- Improved consistency with other Android/Jetpack APIs for angle units (degrees vs. radians), transforms (skew vs. shear), and more
API Changes
- Change angle-related API to use degrees and include unit in names, be clear about units in Angle conversion utilities and support both degrees and radians, change
StockBrushesAPI to take stock brush version as a factory function parameter and expose self-overlap behavior control for highlighter brushes, renameMutableAffineTransform.populateFromTranslatetopopulateFromTranslation, removeInProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418) - Rename shear to skew, clarify some documentation, remove
CanvasStrokeRenderer.strokeModifiedRegionOutsetPx, addInProgressStroke.changesWithTime(Ia5e70, b/436656418)
Bug Fixes
- Improve input modeling to make strokes more accurately reflect input. (I93097)
Version 1.0.0-alpha06
August 13, 2025
androidx.ink:ink-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.
New Features
- Emoji highlighter stock brush: Highlight parts of a document with any emoji you choose, to add a fun flair and help stay organized.
- More helper APIs for geometry module primitive shapes
- Improve device compatibility and performance
API Changes
- Simplified API for
InProgressStrokesView, finish geometry APIs, emoji highlighter, remove factory functions fromMutableParallelogramin favor of populate methods, support seed for randomized brush behaviors. (I38280)
Bug Fixes
- Fix a performance issue and a wet/dry color consistency issue. (Ifcd1d)
Version 1.0.0-alpha05
June 18, 2025
androidx.ink:ink-*:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.
New Features
- Compose interoperability modules for authoring, brush, and geometry modules
API Changes
- New Compose interoperability modules and APIs, API cleanup (I0e464)
InProgressStroke.enqueueInputs/updateShapemethods which returnedkotlin.Resultare removed, clients should use e.g.enqueueInputsOrThroworenqueueInputsOrIgnoreinstead.InProgressStroke.getNeedsUpdateis renamed toisUpdateNeeded.InProgressStroke.populateOutlinePositionnow returns its output parameter to allow call chaining, consistent with other methods in Ink. TheTextureBitmapStoreinterface is moved from the rendering module to the brush module.BoxAccumulator.populateFromis made to take a nullable immutable Box instead of a mutableBoxAccumulator, to make it clearer what is mutated, callers should changeboxAccumulator.add(other)toboxAccumulator.add(other.box).BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColorare removed, use thesetAndroidColorofBrush.Builderafter constructing instead. (Ia7155)- Previously experimental property
InProgressStrokesView.textureBitmapStoreis now private. There are still public accessors for this property. (I1d706)
Bug Fixes
- Improved performance for custom brushes containing many particles.
Version 1.0.0-alpha04
April 9, 2025
androidx.ink:ink-*:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.
New Features
- Introduces new experimental APIs for custom
BrushFamilyobjects, enabling new brushes like Pencil and Laser Pointer. The API allows for loading brushes defined by this proto. (I8809a)
Version 1.0.0-alpha03
February 12, 2025
androidx.ink:ink-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.
New Features
- Disk and network size savings: Serialization of
StrokeInputBatch, saving many lines of code, with the resulting objects a tiny fraction of the size of traditionally stored strokes. (Ie898d) - Lasso selection: dashed line brush to draw a selection stroke, and a function to turn the selection stroke into a
PartitionedMeshfor geometry queries. (Ia38a0)
Version 1.0.0-alpha02
December 11, 2024
androidx.ink:ink-*:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.
API Changes
- Assorted bug fixes. (I05dd8)
External Contribution
- Deprecate
BuildCompat.isAtLeastV. Callers should check SDK_INT against 35 directly instead. (I294d1)
Version 1.0.0-alpha01
October 2, 2024
androidx.ink:ink-*:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.
New Features
- A modular and configurable library to make it easy to create, render, and manipulate beautiful ink strokes authored in your application.
API Changes
New modules to help developers build rich inking experiences:
- Authoring: Use
InProgressStrokesViewfor high-performance, low latency rendering of strokes in real time as inputs are received. - Rendering: Use
CanvasStrokeRendererandViewStrokeRendererto draw the finished ink strokes as part of an app’s user interface. - Strokes: Core data types used for inking features.
- Brush: Configurable specification of how strokes will look and act in response to user input.
- Geometry: Geometric operations like intersection and coverage to power tools like selection and erasing.