Flow iOS is an open-source native YouTube client for iPhone and iPad. It ports the core Flow Android experience (playback, FlowNeuro, FLOW-SYNC/1, SponsorBlock) to SwiftUI. It is a condensed, workable port — not a line-for-line Android twin.
- Home / For You (on-device FlowNeuro ranking), Shorts, Search, Library, Subscriptions
- Background playback, PiP, lock-screen controls, SponsorBlock
- YouTube Music home / charts / explore shelves + LRCLib lyrics
- Offline downloads with visible failure states
- FLOW-SYNC/1 LAN sync (history, likes, playlists, brain, subscriptions)
- DeArrow & Return YouTube Dislike
- Interests onboarding + content preferences
| Area | Status |
|---|---|
| Browse + play video | Real InnerTube → stream resolve → AVPlayer |
| n-sig deobfuscation | Local player.js first, then PipePipe API |
| Android feature parity | Partial (~75 Swift app files vs hundreds of Kotlin) |
| App Store | Not distributed; sideload / Codemagic unsigned IPA |
Playback can break when YouTube changes clients or when remote n-sig helpers are down. Prefer the latest build from CI/Codemagic.
Requirements: macOS, Xcode 16+, XcodeGen
brew install xcodegen # if needed
cd Flow-Ios
xcodegen generate
open Flow.xcodeprojSPM dependencies (resolved by Xcode): Kingfisher, GRDB, ZIPFoundation.
- GitHub Actions: simulator build + unit tests (
.github/workflows/swift.yml) - Codemagic: signed release + unsigned IPA with Info.plist merge (
codemagic.yaml)
Port of Flow by A-EDev. Credit for architecture, design language, and FlowNeuro belongs to the original project.
GPLv3 — same as the Android project.
