spotikit 2.0.3
spotikit: ^2.0.3 copied to clipboard
Flutter plugin for Spotify App Remote integration on Android.
2.0.3 #
🔐 Full OAuth Auth Flow — February 22, 2026 #
- Introduced
AuthManager.kt— handles the full Spotify OAuth flow using thespotify-authSDK before connecting the App Remote SpotikitPluginnow registersAuthManageras aPluginRegistry.ActivityResultListenerto receive the OAuth resultconnectToSpotify()now triggersAuthorizationClient.openLoginActivity()first; on success the App Remote connection is established automatically- Added required OAuth scopes:
streaming,user-read-playback-state,user-modify-playback-state,user-read-currently-playing - Added
spotify-authas anapidependency inandroid/build.gradle - Registered
com.spotify.sdk.android.auth.LoginActivityin the example app'sAndroidManifest.xml - Added
isConnected()helper toRemoteManagerto skip re-auth when already connected - Fixes
UserNotAuthorizedException— "Explicit user authorization is required to use Spotify"
2.0.2 #
🐛 Gson & Activity Context Fix — February 22, 2026 #
- Added
com.google.code.gson:gson:2.10.1toandroid/build.gradle - Fixes
NoClassDefFoundError: Lcom/google/gson/GsonBuilder— the Spotify App Remote SDK requires Gson at runtime but does not bundle it RemoteManagernow uses the Activity context (when available) forSpotifyAppRemote.connect()so thatshowAuthView(true)can launch UI
2.0.1 #
🛠 Example App Update — February 22, 2026 #
- Updated example app to remove
flutter_dotenvand all auth/Web API references - Credentials are now set as plain constants at the top of
example/lib/main.dart - Quick Play chips now use hardcoded Spotify URIs instead of Web API search
- Removed
.envasset andflutter_dotenvdependency from examplepubspec.yaml
2.0.0 #
🚀 App Remote Only — February 22, 2026 #
This is a breaking change release. Spotikit now wraps only the Spotify App Remote SDK. All Spotify Web API functionality and OAuth authentication have been removed.
⚠️ Breaking Changes
initialize()no longer acceptsclientSecret,scope, orauthenticateparameters. OnlyclientId,redirectUri, and the optionalconnectToRemoteflag remain.- Removed methods:
authenticateSpotify(),getAccessToken(),getPlayingTrackFull(),playSong() - Removed streams:
accessTokenStream,onAuthStateChanged - Removed models:
SpotifyTrack,AlbumImage,AuthState(and subclassesAuthSuccess,AuthFailure,AuthCancelled) - Removed Dart package:
api/spotify_api.dart(SpotifyApi class) - Removed pub dependencies:
dio,path,yaml
Changes
initialize()now only requiresclientIdandredirectUriSpotikitPlugin.ktstripped of all auth code — no moreAuthManager,EventChannel, orPluginRegistry.ActivityResultListenerAuthManager.ktdeletedandroid/build.gradlenow only depends onspotify-app-remote(removedspotify-auth,okhttp3,kotlinx-coroutines,gson,security-crypto)
Migration Guide
Before (v1.x):
await spotikit.initialize(
clientId: 'id',
clientSecret: 'secret',
redirectUri: 'myapp://callback',
scope: 'user-read-playback-state ...',
);
spotikit.onAuthStateChanged.listen((state) { ... });
await spotikit.authenticateSpotify();
After (v2.x):
await spotikit.initialize(
clientId: 'id',
redirectUri: 'myapp://callback',
);
await spotikit.connectToSpotify();
1.0.0 #
🎉 First Stable Release — January 23, 2026 #
This marks the first stable release of Spotikit.
Features
- Authentication: Full Authorization Code flow with automatic token refresh
- Playback Control: Play, pause, resume, skip, previous, seek, and relative skip (forward/backward)
- Realtime Playback State: Stream-based playback state updates with track info, progress, and pause status
- Search & Play: One-shot search functionality to find and play tracks
- Full Track Metadata: Rich metadata via Spotify Web API (album, images, popularity, etc.)
- Centralized Logging: Built-in logging for debugging and diagnostics
Platform Support
- ✅ Android (App Remote SDK + Web API)
- ⏳ iOS (planned for future release)