macOS and iOS
TakeoutFM for macOS and iOS are native SwiftUI apps built on the shared TakeoutFM core. Music plays with AVFoundation and video (including MKV with embedded audio and subtitle tracks) plays with VLCKit.
Note
The macOS and iOS apps are not distributed in the App Store. Build them from source as described below.
Features
- Music, movies, TV shows, podcasts, and Internet radio
- Sign in with a device code
- Recently Added, New Releases, Recently Played, Artists, Favorites, Playlists, Radio, and Podcasts
- Album, artist, and playlist pages with favorite tracks
- Play Next, Add to Queue, repeat, and a full Now Playing screen with the queue
- Live streams with the song that’s playing
- Podcast and episode pages with show notes; episodes resume where you left off
- Video player with audio and subtitle tracks, resume, and next episode
- Downloads for albums, playlists, favorites, episodes, movies, and TV episodes, with offline playback
- System Now Playing, media keys, and Control Center
- Track activity and ListenBrainz
- Light, dark, or system theme
macOS
- Sidebar navigation and search from the toolbar
- Menu bar player
- Now Playing screen (⌘L) and Playback menu commands
- Video plays in its own window
iOS
- iPhone tabs for Home, Artists, Recent, Radio, and Search
- Mini player, with Now Playing as a swipe-down card
- Swipe actions on tracks
- iPad uses the sidebar layout from the Mac app
- Full-screen video player
Build from Source
Building requires a Mac with Apple silicon and Xcode.
Setup
Install Xcode from the App Store and open it once to finish installing, then select it:
$ sudo xcode-select -s /Applications/Xcode.app
Install Homebrew, then a JDK (for Gradle) and XcodeGen:
$ brew install openjdk@17 xcodegen
$ sudo ln -sfn "$(brew --prefix)/opt/openjdk@17/libexec/openjdk.jdk" /Library/Java/JavaVirtualMachines/openjdk-17.jdk
Get the source code and fetch VLCKit and MobileVLCKit (prebuilt frameworks from VideoLAN, about 350 MB):
$ git clone https://gitlab.com/takeoutfm/takeout_native.git
$ cd takeout_native
$ apple/fetch-vlckit.sh
Build
Generate the Xcode project and open it:
$ cd apple
$ xcodegen
$ open TakeoutFM.xcodeproj
Choose the TakeoutFM scheme for macOS or TakeoutFM-iOS for iOS, then Run (⌘R). The first build downloads the Kotlin/Native toolchain, which takes a few minutes.
The macOS app can also be built from the command line. Build the target for Apple silicon (the shared framework is arm64 only):
$ xcodebuild -project TakeoutFM.xcodeproj -target TakeoutFM -configuration Release ARCHS=arm64 build
Tip
Installing on an iPhone or iPad requires signing. Set your team in Xcode under TakeoutFM-iOS → Signing & Capabilities.