Capabilities
Video playback
Custom media pipelines with adaptive bitrate streaming, intelligent prefetch, and near-instant playback on swipe.
Feed UI
Configurable vertical or horizontal scrolling feeds with smooth transitions and gesture handling.
Engagement tracking
Automatic collection of impressions, watch time, completions, and interactions for analytics and personalization.
Ad integration
Native in-feed advertising via Google IMA SDK with configurable frequency and styling.
Theming
Full control over colors, fonts, and control styling to match your brand.
Extensibility
Custom overlay components, interaction hooks, and metadata pass-through for deep integration.
Supported platforms
| Platform | Language | Distribution | Minimum Version |
|---|---|---|---|
| iOS | Swift | Swift Package Manager | iOS 14.0+ |
| Android | Kotlin | Maven | Android 7.0+ (API 24) |
| React Native | TypeScript | npm | RN 0.70+ |
| Expo | TypeScript | npm | Expo SDK 49+ |
| Web | TypeScript | npm, CDN | Modern browsers |
Player architecture
shortkit uses custom media pipelines optimized for short-form video performance:- iOS
- Android
- React Native
- Web
Built on low-level AVFoundation APIs (
AVSampleBufferDisplayLayer, AudioToolbox) rather than AVPlayer. This enables:- DASH protocol support - Not available with standard AVPlayer
- Multi-codec ABR - AV1 + H.264 quality selection
- Granular buffer control - Precise prefetch and read-ahead management
- Frame-accurate seeking - Instant scrubber response
Protocol support
| Protocol | iOS | Android | Web |
|---|---|---|---|
| HLS | Yes | Yes | Yes |
| DASH | Yes | Yes | Yes |
| Progressive MP4 | Yes | Yes | Yes |
Initialization
The SDK follows a consistent initialization pattern across platforms:Post-initialization methods
Configuration hierarchy
The SDK uses a layered configuration model where each layer overrides the previous:- Code-level config - Passed at initialization, serves as baseline and fallback
- Remote config overlay - Fetched from server, contains only overridden fields
- A/B variants - Experiment-specific overrides included in remote config
Feed rendering
Display the feed using platform-appropriate components:- iOS (SwiftUI)
- iOS (UIKit)
- Android (Compose)
- Android (View)
- React Native
- Web
Platform guides
iOS SDK
Swift integration with UIKit and SwiftUI support.
Android SDK
Kotlin integration with View and Compose support.
React Native SDK
Cross-platform integration for React Native and Expo.
Web SDK
Browser integration with React bindings.
