Skip to main content

Overview

Upgrading from Uniwind Free to Uniwind Pro is straightforward. The API is identical, so no code changes are required - just install the Pro package and update your imports.
API Compatibility: Uniwind Pro maintains 100% API compatibility with the free version. Your existing code will work without modifications.

Prerequisites

Before upgrading to Pro, ensure you have an active Uniwind Pro license.

Step 1: Install Uniwind Pro

Update the uniwind entry in your package.json to use the Pro package:
package.json
{
  "dependencies": {
    "uniwind": "^1.0.0", 
    "uniwind": "npm:uniwind-pro@beta", 
  }
}
Then follow the Installation Guide to authenticate and configure Babel.

Installation Guide

Complete installation instructions including authentication and troubleshooting

Step 2: Rebuild Your App

Rebuild your native app to apply all changes:
npx expo prebuild --clean
Then run your app:
npx expo run:ios
# or
npx expo run:android
A native rebuild is required for Uniwind Pro to work correctly. Simply restarting Metro is not enough. Uniwind Pro doesn’t work with Expo Go.

What You Get with Pro

Uniwind Pro unlocks powerful features that take your React Native styling to the next level:

Shadow Tree Updates

All component props are connected directly to the C++ engine, eliminating unnecessary re-renders and dramatically improving performance.
No code changes required - This optimization works automatically with all your existing components.

Reanimated 4 Animations and Transitions

Use Tailwind CSS class names to create smooth animations without any extra code:
import { View } from 'react-native'

<View className="animate-fade-in duration-300 ease-in-out">
  <Text className="animate-slide-up delay-100">
    Animated with just classNames!
  </Text>
</View>

Built-in Safe Area Insets

Uniwind Pro automatically injects safe area insets from the native layer - no setup required. You can remove any SafeAreaListener configuration you had:
// ❌ Remove this setup - no longer needed with Pro
import { SafeAreaListener } from 'react-native-safe-area-context'
import { Uniwind } from 'uniwind'

export const Root = () => (
  <SafeAreaListener
    onChange={({ insets }) => {
      Uniwind.updateInsets(insets)
    }}
  >
    {/* app content */}
  </SafeAreaListener>
)
// ✅ With Pro, just render your app directly
export const Root = () => (
  <>
    {/* app content */}
  </>
)
You can remove react-native-safe-area-context from your dependencies if you were only using it for Uniwind insets.

Success!

Congratulations! You’ve successfully upgraded to Uniwind Pro.

What’s Next?

Troubleshooting

If you encounter any issues during migration:
  1. Clear all caches - Run npx expo start --clear or npx react-native start --reset-cache
  2. Verify Babel config - Ensure react-native-worklets/plugin is in your plugins array
  3. Check imports - Make sure all imports are updated from 'uniwind' to 'uniwind-pro'
  4. Rebuild native app - Delete ios/build and android/build folders, then rebuild

Report an Issue

Still having problems? Open an issue on GitHub and we’ll help you out
Pro users receive priority support. Make sure to mention you’re a Pro user when reporting issues.