Joyfill Monthly
September 2025
Overview
September marks the preparation and release of a new major version of the Joyfill SDKs. Joyfill has released many large features, which is why we’ve been publishing RC releases. As we finish September and move into early October, our focus is on stabilizing each SDK and moving them into non-RC release versions. During this period, any feedback, bug reports, or suggestions are greatly appreciated.
We want to thank all the integrators and developers who have been so patient with us. We’re on the final stretch of finalizing these new major versions and returning to our normal release cadence.
For each new feature please refer to the individual SDK's Documentation.
SDKs
🍎 iOS SDK
The iOS SDK new Major version is primarily backwards compatible and does not require any significant rewrites.
Important Note: We recommend reviewing the Joyfill Schema validation note under New Features to determine best course of action for your team.
🤖 Kotlin SDK
The Kotlin SDK is not as plug and play as the others with this major version. You will need to make some changes in order to move to the new Major version. See full migration guide for v1.x.x to v2.x.x under Kotlin documentation here.
Important Note: We recommend reviewing the Joyfill Schema validation note under New Features to determine best course of action for your team.
🖥 JS SDK
The JS SDK new Major version is primarily backwards compatible and does not require any significant rewrites.
Important Note: We recommend reviewing the Joyfill Schema validation note under New Features to determine best course of action for your team.
New SDK Features
🧮 Formulas
Formulas allow you to perform Excel-like functions and calculations against fields and display results in other fields. For example:
price * .7
if(age > 18, "Adult", "Minor")
Formulas are an entirely optional feature. You can enable or disable them in the Joyfill JS SDK Builder to either restrict or empower your users and teams to use them within their forms. See the JS SDK documentation for details on enabling this feature.
For documentation on formula syntax, operators, and functions, see Formula Documentation.
Supported SDKs:
- React & Vanilla JS SDK:
4.0.0-rc3
- iOS SDK:
3.0.0-rc3
- Kotlin SDK:
2.0.0-rc4
- React Native SDK: ❌
👁 Readable Field IDs
Readable Field IDs have been introduced to support formulas. The previous ObjectID format cannot be used in formulas. A field’s ID must be updated to a Readable ID format, such as customerAge
, text1
, or assetList
.
Readable Field IDs are optional in the React & Vanilla JS SDK (disabled by default). See the SDK documentation for instructions on enabling them. For mobile SDKs, no configuration is required—if a Readable Field ID is present, it will be supported.
Supported SDKs:
- React & Vanilla JS SDK:
4.0.0-rc3
- iOS SDK:
3.0.0-rc3
- Kotlin SDK:
2.0.0-rc4
- React Native SDK: ❌
🌎 Timezone Support and Anchoring
We’ve introduced support for timezone capture and anchoring. When a date is captured, the associated timezone is also saved, ensuring the date remains consistent regardless of where the form is later opened. This resolves the issue of dates displaying differently in different timezones.
❗ Important Note: This feature applies only to newly captured dates. Previously captured dates will not include timezone anchoring and may still vary based on the local device timezone. To fix this, simply reselect the date and save the form again using the new SDK versions.
Supported SDKs:
- React & Vanilla JS SDK:
4.0.0-rc3
- iOS SDK:
3.0.0-rc3
- Kotlin SDK:
2.0.0-rc4
- React Native SDK: ❌
🧩 New Table Field Column Types
We’ve added new column types to make table fields more powerful:
- Multi-Select – Select one or more options within a table cell.
- Number – Restrict input to numbers only.
- Label – Add read-only column labels for vertical labeling.
- Date & Time – Capture date, time, or date-time values.
- Signature – Capture a signature within a table cell.
- Barcode – Capture barcodes directly in a table cell. Works with the new
onCapture
callback for integrating scanning functionality and populating values automatically.
These column types are optional. You can enable them in the Joyfill JS SDK Builder or keep them disabled to prevent use.
Supported SDKs:
- React & Vanilla JS SDK:
4.0.0-rc3
- iOS SDK:
3.0.0-rc3
- Kotlin SDK:
2.0.0-rc4
- React Native SDK: ❌
🔍 Mobile Table Field Search and Filter
We’ve added filtering, searching, and sorting capabilities to mobile table fields. This makes it easier for users to navigate, review, and update rows.
Supported SDKs:
- React & Vanilla JS SDK: ❌
- iOS SDK:
3.0.0-rc3
- Kotlin SDK:
2.0.0-rc4
- React Native SDK: ❌
🌃 New File and Image Field Callbacks and Control
In the React and Vanilla JS SDKs, we’ve added more control over file and image handling. Previously, uploads were limited to the system file picker with onUploadAsync
. Now you can use the following fieldSettings
properties:
// SDK fieldSettings
{
systemFilePicker: Boolean,
onFileUploadAsync: async Function(params, files),
onFileClick: Function(params, urlObject),
onFileDelete: Function(params, urlObject)
}
With these callbacks, you can integrate custom upload flows and remove reliance on the system file picker.
Supported SDKs:
- React & Vanilla JS SDK:
4.0.0-rc3
- iOS SDK: ❌
- Kotlin SDK: ❌
- React Native SDK: ❌
📑 Enhanced Page Breaking and Table Repeating Headers in PDF Generation
We’ve improved the page-breaking logic in our PDF Generation SDK. Table column headers will now repeat at the top of each page when a table spans multiple pages. This ensures clarity and context in generated PDFs.
Supported SDKs:
- React & Vanilla JS SDK:
4.0.0-rc3
- iOS SDK: ❌
- Kotlin SDK: ❌
- React Native SDK: ❌
✅ SDK Schema Validation
In the past, invalid data structures and types caused crashes in the SDKs. This optional schema validation ensures SDKs no longer crash due to invalid inputs.
Each SDK now includes:
- A new
validateSchema(object)
method for external schema validation - A
validateSchema: boolean
property to enable/disable internal validation (useful for backward compatibility) - An
onError
callback for receiving validation errors
Important Note: For existing integrators upgrading to the new major version, it is recommended to disable internal SDK schema validation using the validateSchema option (see SDK documentation). Since Joyfill data is JSON and can be easily modified, validation should first be tested in a controlled environment before being enabled in production. Schema validation is an optional feature intended to reduce the risk of crashes caused by invalid data structures or types. While it provides an additional safeguard, it is not required for normal SDK operation.
Supported SDKs:
- React & Vanilla JS SDK:
4.0.0-rc3
- iOS SDK:
3.0.0-rc3
- Kotlin SDK:
2.0.0-rc4
- React Native SDK: ❌
🐛 Bug Fixes, Performance Improvements, & Miscellaneous Enhancements
We’ve resolved numerous bugs, improved performance and added additional improvements in this major release.
Other New Stuff
Joyfill Schema
We've created a public repo on github called Joyfill Schema (view here). This contains resources like a JSON Schema that is used for our new SDK Schema Validation, Typescript Types, and other useful times associated with the Joyfill JSON data. Hope you enjoy!