Skip to content

Commit f115230

Browse files
committed
migration guide
1 parent a29c76b commit f115230

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

MIGRATION_GUIDE.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,37 @@
11
# Migration Guide
2-
This document provides guidance on how to migrate from one version of the SDK to a newer version.
2+
This document provides guidance on how to migrate from one version of the SDK to a newer version.
33
It will be updated as new versions are released including deprecations or breaking changes.
44

5+
# 4.3.0
6+
7+
## New Modules for Cross-Platform Support
8+
9+
Version 4.3.0 introduces new modules and architectural changes to support wrapper SDKs (Flutter, React Native). While this adds new public modules and some internal APIs, **it requires no migration steps for Android developers**. All existing APIs remain unchanged and fully backward compatible.
10+
11+
### New Gradle Artifacts
12+
Two new lightweight modules are now available as separate gradle dependencies:
13+
14+
- **`com.github.klaviyo.klaviyo-android-sdk:location-core:4.3.0`** - Interfaces and types for geofencing without Play Services dependencies
15+
- **`com.github.klaviyo.klaviyo-android-sdk:forms-core:4.3.0`** - Interfaces and types for in-app forms without WebView dependencies
16+
17+
**For Android developers:** Continue using the existing `location` and `forms` modules as before. These new `-core` modules are primarily intended for wrapper SDK developers (Flutter, React Native) who need to depend on interfaces without pulling in the full Android implementations.
18+
19+
**For wrapper SDK developers:** You can now depend on `location-core` and/or `forms-core` to access public interfaces, data types, and extension functions without including the full implementation. When the full module (`location` or `forms`) is present in the app, it auto-registers via ContentProvider.
20+
21+
### Additional Changes
22+
- Added ContentProvider-based auto-registration for optional modules (no manual registration required)
23+
- Migrated build files to Kotlin DSL
24+
- Added `getCurrentGeofences()` method to internal `LocationManager` interface
25+
- Made `MAX_CONCURRENT_GEOFENCES` constant publicly accessible
26+
- Updated Android Gradle Plugin to 8.11.0
27+
- Updated Kotlin to 1.9.25
28+
29+
### Bug Fixes
30+
- Fixed an issue where in-app forms could appear in a separate task in the app switcher (primarily affected Flutter integrations)
31+
32+
### No Action Required for Android Developers
33+
If you're integrating the Klaviyo Android SDK directly into an Android app, you can upgrade from 4.2.0 to 4.3.0 without any code changes. Continue using the existing module dependencies (`analytics`, `push-fcm`, `forms`, `location`) as before.
34+
535
# 4.2.0
636

737
## Java Interoperability

0 commit comments

Comments
 (0)