--- name: platform-sync description: Synchronize method channels and event streams across Dart, Android (Kotlin), iOS (Swift), and Web. --- # Platform Channel Synchronization (`platform-sync`) All APIs must be synchronized across Dart, Android, iOS, and Web. ## Reference Map - **Dart API**: [packages/spotify_sdk/lib/spotify_sdk.dart](packages/spotify_sdk/lib/spotify_sdk.dart) - **Central Constants**: [packages/spotify_sdk_platform_interface/lib/platform_channels.dart](packages/spotify_sdk_platform_interface/lib/platform_channels.dart) - **iOS Wrapper**: [packages/spotify_sdk_ios/ios/Classes/SwiftSpotifySdkPlugin.swift](packages/spotify_sdk_ios/ios/Classes/SwiftSpotifySdkPlugin.swift) - **Android Wrapper**: [packages/spotify_sdk_android/android/src/main/kotlin/de/minimalme/spotify_sdk/SpotifySdkPlugin.kt](packages/spotify_sdk_android/android/src/main/kotlin/de/minimalme/spotify_sdk/SpotifySdkPlugin.kt) - **Web Wrapper**: [packages/spotify_sdk_web/lib/spotify_sdk_web.dart](packages/spotify_sdk_web/lib/spotify_sdk_web.dart) ## Synchronization Workflow 1. **Constants**: Declare method name in `MethodNames` inside [platform_channels.dart](packages/spotify_sdk_platform_interface/lib/platform_channels.dart). 2. **Dart Interface**: Invoke channel method in [spotify_sdk.dart](packages/spotify_sdk/lib/spotify_sdk.dart); catch, log via `_logException`, and rethrow. 3. **iOS Swift**: Implement method case in [SwiftSpotifySdkPlugin.swift](packages/spotify_sdk_ios/ios/Classes/SwiftSpotifySdkPlugin.swift). 4. **Android Kotlin**: Implement method branch in [SpotifySdkPlugin.kt](packages/spotify_sdk_android/android/src/main/kotlin/de/minimalme/spotify_sdk/SpotifySdkPlugin.kt). 5. **Web Interop**: Implement platform override in [spotify_sdk_web.dart](packages/spotify_sdk_web/lib/spotify_sdk_web.dart).