amplitude / amplitude/Amplitude-TypeScript

Feature Request: Remove the @amplitude/analytics-react-native dependency with async storage and allow a custom storage implementation

Open
#1,283 5 comments 25 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
180
Forks
68
Avg merge
3d 1h
Merged PRs (30d)
29

Description

## Summary

In `@amplitude/analytics-react-native` sdk, consider making `@react-native-async-storage/async-storage` an optional peer dependency instead of a required dependency. This would allow developers to provide their own storage implementation, such as `react-native-mmkv` or `expo-sqlite/kv-store`, without being forced to include AsyncStorage. This change would reduce APK size and avoid maintaining multiple local data sources.

## Motivations

The `@amplitude/analytics-react-native` SDK has `@react-native-async-storage/async-storage` as a required dependency. This forces us to include an additional local data source, even though we are already using `mmkv` for persistent local storage. It also adds unnecessary weight to the APK.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.