Nutrient Android SDK 10.6 release notes
11 August 2025
Nutrient Android SDK 10.6 brings significant improvements to AI Assistant, along with UI enhancements and better document handling reliability. This release continues our commitment to providing a robust PDF SDK experience on Android.
We expanded AI Assistant with multiple document support for both remote documents (server-backed) and local PDF files, making it easier to work across different document sources. The UI improvements include better styling options for the outline view, property inspector, and thumbnail grid.
This release contains several fixes and enhancements. For the full list of changes, see our changelog.
AI Assistant enhancements
The standout feature of this release is the expanded AI Assistant functionality. You can now work with multiple documents simultaneously, whether they’re stored remotely through a server-backed implementation or locally on the device. This makes it much easier to analyze, compare, and extract insights from multiple PDF files in a single AI conversation.
UI improvements
We added several new styling options to give you more control over the appearance of PDF viewer components:
- Outline view width — New styleable element for customizing the outline view width with the
pspdf__widthdimension in thepspdf__OutlineViewstyleable. - Property inspector icons — New
pspdf__buttonIconTintattribute to customize button icon colors in the property inspector. - Thumbnail selection — New
pspdf__itemSelectedBorderColorattribute to customize the selection frame inPdfThumbnailGrid.
Additionally, we improved text selection retention during content editing drag-and-drop operations. We also fixed several rendering issues, including PDF content partially hiding in vertical continuous scrolling mode and black screen issues with non-default blend modes.
Document handling improvements
This release includes important reliability improvements for document operations:
- Enhanced document save reliability to prevent file corruption during app crashes.
- Better handling of orphan page references when exporting edited documents.
- Improved discovery of widgets not correctly linked to form fields.
Looking ahead
We continue to focus on performance, reliability, and developer experience improvements. The removal of deprecated components like the old Android YouTube player library helps streamline the SDK for modern Android development.
Migration guide
This section outlines the important public API changes in Nutrient Android SDK 10.6.
AI Assistant
New AI Assistant API
Nutrient 10.6 introduces a new, streamlined AI Assistant API that replaces the previous standaloneAiAssistant method.
Creating AI Assistant instances
val documentDescriptors = assetFiles.map { DocumentDescriptor.fromDataProviders(listOf(AssetDataProvider(it)), listOf(), listOf())}
val assistant = createAiAssistant( context = this, documentsDescriptors = documentDescriptors, ipAddress = "your-server-ip", sessionId = "your-session-id", jwtToken = { documentIds -> generateJwtToken( context = this, claims = mapOf( "document_ids" to documentIds, "session_ids" to listOf("your-session-id"), "request_limit" to mapOf( "requests" to 160, "time_period_s" to 600000 ) ) ) })AiAssistantProvider interface
AI Assistant now requires implementing the AiAssistantProvider interface in your Activity:
class YourActivity : AppCompatActivity(), AiAssistantProvider { override fun getAiAssistant(): AiAssistant { return assistant }
// Optional: Implement navigation callback for multi-document support. override fun navigateTo( documentRect: List<RectF>, pageIndex: Int, documentIndex: Int ) { // Handle navigation to specific document, page, and highlight rectangles. }}Multi-document support
AI Assistant now supports multiple documents simultaneously:
val assetFiles = listOf("document1.pdf", "document2.pdf", "document3.pdf")val documentDescriptors = assetFiles.map { DocumentDescriptor.fromDataProviders(listOf(AssetDataProvider(it)), listOf(), listOf())}
val assistant = createAiAssistant( context = this, documentsDescriptors = documentDescriptors, // Multiple documents ipAddress = "your-server-ip", sessionId = "your-session-id", jwtToken = { documentIds -> /* generate JWT */ })Programmatic AI Assistant display
You can now show the AI Assistant dialog programmatically:
import com.pspdfkit.ai.showAiAssistant
// Show AI Assistant dialog.showAiAssistant(context)Initialization improvements
Simplified initialization control with session history options:
// Initialize with session history (default).aiAssistant.initialize(withSessionHistory = true)AI Migration checklist
- Update AI Assistant creation — Replace
standaloneAiAssistantwithcreateAiAssistant. - Implement AiAssistantProvider — Add the interface to your Activity.
- Update JWT generation — Use the new Lambda-based JSON Web Token (JWT) generation.
- Update initialization — Use the new
initializemethod with session history control. - Consider multi-document support — Update your implementation to support multiple documents if needed.
Breaking APIs
Immersive mode
The immersive mode option previously defaulted to false but is now true. If you experience layout issues, set the immersive mode option to false in the PdfActivityConfiguration.
Outline view width
PdfOutlineView used to have a fixed width of 480 dp. Starting with version 10.6, this width is customized with the pspdf__width dimension attribute in the pspdf__OutlineView styleable. If this isn't set, the width will be set to the parent view width, which usually means it covers the width of the screen. If you set the width to be wider than the parent, it'll be overridden as the parent. If you want a custom width in landscape mode or on a tablet, set the value to your desired width.
For more information, refer to the changelog.