Abstract
Track videos shared between two people across Instagram, TikTok, and more. Share extension + clipboard detection + manual logging, synced via CloudKit. WidgetKit home-screen widgets with 22 themes and 6 layout styles — Swift, SwiftUI, iOS 17+.
Highlights
- —Share extension, clipboard detection, and manual share logging
- —CloudKit sync between paired users across app, widget, and share extension
- —22 themes · 6 layout styles (glass, card, neon, mesh, outline, flat)
README
View on GitHubShareTrack
iOS app + widgets for tracking videos shared between two people across social platforms.
Stack
- SwiftUI · iOS 17+
- WidgetKit — home screen widgets (single-platform + overview)
- CloudKit — sync share events between paired users
- App Groups — shared state across app, widget, and share extension
Targets
| Target | Bundle ID suffix | Role |
|---|---|---|
| ShareTrack | .thing | Main app |
| ShareTrack Widget | .thing.widget | WidgetKit extension |
| Track Share | .thing.share | Share extension |
Tracking model
Third-party apps (Instagram, TikTok, etc.) do not expose DM APIs. ShareTrack uses:
- Share extension — Share → Track Share from any social app
- Clipboard detection — copy a link, confirm in-app
- Manual log — Settings → Log a Share
Events sync via CloudKit public database record types: SMWUser, SMWShareEvent, SMWFriendship.
Widget customization
22 themes · 6 layout styles (glass, card, neon, mesh, outline, flat) · accent presets + custom color picker. Config persisted to App Group UserDefaults as widgetConfigJSON.
Setup
./setup.sh open # generate Xcode project and open
- Apple Developer: enable App Groups + iCloud (CloudKit) on
com.socialmediawidget.thing - App Group:
group.com.socialmediawidget.thing - iCloud container:
iCloud.com.socialmediawidget.thing - Set signing team on all three targets in Xcode
Optional Discord OAuth: set discordClientID in Shared/AppConstants.swift.
TestFlight
./setup.sh archive
Or Product → Archive → Distribute to App Store Connect.
Project layout
Shared/ Models, services, widget renderer (app + extensions)
SocialMediaWidgetThing/ Main SwiftUI app
SocialWidgetExtension/ WidgetKit targets
ShareTrackerExtension/ Share extension
project.yml XcodeGen spec
Author: Dhruv Hegde · CS @ University of Michigan
License: MIT
Connect with Dhruv Hegde
More of Dhruv Hegde's open-source work on GitHub and LinkedIn.