Dhruv.Contact
Back home

ShareTrack

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)
SwiftSwiftUIWidgetKitCloudKitiOS

ShareTrack

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

TargetBundle ID suffixRole
ShareTrack.thingMain app
ShareTrack Widget.thing.widgetWidgetKit extension
Track Share.thing.shareShare extension

Tracking model

Third-party apps (Instagram, TikTok, etc.) do not expose DM APIs. ShareTrack uses:

  1. Share extension — Share → Track Share from any social app
  2. Clipboard detection — copy a link, confirm in-app
  3. 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
  1. Apple Developer: enable App Groups + iCloud (CloudKit) on com.socialmediawidget.thing
  2. App Group: group.com.socialmediawidget.thing
  3. iCloud container: iCloud.com.socialmediawidget.thing
  4. 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.

More projects

← Project gallery