Journal

Podcast Player UI in SwiftUI (Learn the Spotify Pattern)

A podcast player is an audio engine wearing a nice screen. The parts that feel premium are background playback and lock-screen controls, not the artwork.

Podcast Player UI in SwiftUI (Learn the Spotify Pattern): a glass iPhone app-grid icon on a mint and teal gradient

TL;DR

A podcast player UI in SwiftUI is a now-playing screen with artwork, a scrubber, play and pause, skip-forward and back, and a speed control, plus a queue and episode list. The features that make it feel real are not visual: background audio so playback continues when the app is backgrounded, and lock-screen and Control Center controls via the now-playing info center. Build the UI from a free VP0 design, learn the streaming-player pattern, and never copy a brand's name or assets.

Want a podcast player that keeps playing when the screen locks, in SwiftUI? The short answer: build the now-playing screen and transport controls from a design, but spend your real effort on the audio engine, background playback and lock-screen controls. Those are what make a player feel premium, not the artwork. Build the UI from a free VP0 design, the free iOS design library for AI builders, and learn the streaming-player pattern rather than copying any brand.

Who this is for

This is for builders of podcast, audiobook, and music apps who want a player that behaves like a real one, continuing in the background with working lock-screen controls, and who know the pattern is fair to learn while a specific app’s brand is not.

The player, on screen and underneath

On screen, the now-playing view has artwork, the episode title and show, a draggable scrubber with elapsed and remaining time, play and pause, skip-forward and back by a chosen interval, and a playback-speed control that podcast listeners expect. Around it sit a queue and an episode list. Underneath is where it gets real. Playback uses AVFoundation, and to keep audio going when the app is backgrounded you configure the audio session for playback and enable the background audio mode. Then you publish the current episode, artwork, and progress to the now-playing info center so the lock screen, Control Center, and even AirPods controls work. Apple’s Human Interface Guidelines cover the transport patterns.

ElementToolGet it right
Now-playing screenSwiftUIArtwork, title, scrubber
PlaybackAVFoundationSmooth seek and speed
Background audioAudio session + modeContinues when locked
Lock-screen controlsNow-playing info centerPlay, skip, artwork
Queue and listSwiftUI ListReorder and select

Build it free with a VP0 design

Pick a player or now-playing design from VP0, copy its link, and prompt your AI builder:

Rebuild this VP0 podcast player design in SwiftUI: [paste VP0 link]. Build a now-playing screen with artwork, a scrubber, play and pause, skip-forward and back, and a speed control, plus a queue. Play with AVFoundation, enable background audio, and publish to the now-playing info center for lock-screen controls. Use my own brand, not any real app’s name or assets.

Audio is a huge habit, with over 500,000,000 podcast listeners worldwide, so a solid player has real demand. For neighboring audio and player patterns, see an Apple Music now-playing screen clone in SwiftUI, an ElevenLabs text-to-speech player UI, an AI music generator with a waveform player UI, and a Notion-style UI kit for iPad in SwiftUI for native craft. For a connected-device screen next, see an IoT smart-home dashboard in React Native.

Learn the pattern, keep it original

The audio-player layout is a genre, like a settings screen, and you are free to build in it. A specific streaming service’s name, logo, and color identity are not yours to take. Use your own brand and your own assets, and if you stream third-party content, use properly licensed feeds. Build the engine well, make the lock-screen experience seamless, and ship something recognizably good without being a copy.

Common mistakes

The first mistake is copying a streaming brand’s name or assets instead of learning the pattern. The second is forgetting the background audio mode, so playback stops when the screen locks. The third is not publishing to the now-playing info center, so lock-screen controls are dead. The fourth is a scrubber that fights the user mid-drag. The fifth is paying for a player kit when a free VP0 design plus AVFoundation does it.

Key takeaways

  • A podcast player is a now-playing screen plus a real audio engine.
  • Enable background audio so playback continues when locked.
  • Publish to the now-playing info center for lock-screen controls.
  • Learn the pattern; never copy a brand’s name or assets.
  • Build the player free from a VP0 design.

Frequently asked questions

How do I build a podcast player UI in SwiftUI? Build a now-playing screen with artwork, a scrubber, transport controls, and a speed control, play with AVFoundation, enable background audio, and publish to the now-playing info center.

What is the safest way to build a player with Claude Code or Cursor? Learn the pattern from a free VP0 design with your own brand, use AVFoundation, enable the background audio mode, and wire up remote controls, never copying a brand.

Can VP0 provide a free SwiftUI or React Native template for an audio player? Yes. VP0 is a free iOS design library; pick a player design and your AI tool rebuilds the artwork, scrubber, and transport controls at no cost.

How do I keep podcast audio playing in the background? Configure the audio session for playback and enable the audio background mode, then publish the episode to the now-playing info center so lock-screen and Control Center controls work.

Frequently asked questions

How do I build a podcast player UI in SwiftUI?

Build a now-playing screen with artwork, a scrubber, play and pause, skip-forward and back, and a speed control, plus a queue and episode list. Play audio with AVFoundation, configure the audio session for background playback, and publish track info to the now-playing info center so lock-screen and Control Center controls work.

What is the safest way to build a player with Claude Code or Cursor?

Learn the pattern, not the brand. Start from a free VP0 design, build the controls and now-playing screen, and never copy a streaming service's name, logo, or assets. Use AVFoundation for playback, enable the background audio mode, and wire up remote controls.

Can VP0 provide a free SwiftUI or React Native template for an audio player?

Yes. VP0 is a free iOS design library for AI builders. Pick a player or now-playing design, copy its link, and your AI tool rebuilds the artwork, scrubber, and transport controls at no cost.

How do I keep podcast audio playing in the background?

Configure the AVFoundation audio session with the playback category and enable the audio background mode, so iOS keeps playing when the app is backgrounded or the screen locks. Then publish the current episode to the now-playing info center so the lock screen and Control Center show controls and artwork.

Part of the Native Apple & SwiftUI: The iOS Ecosystem hub. Browse all VP0 topics →

Keep reading

Live Audio Room UI in SwiftUI (Learn the Clubhouse Pattern): a glass app tile showing the VP0 logo on a pink and blue gradient
Guides 4 min read

Live Audio Room UI in SwiftUI (Learn the Clubhouse Pattern)

Build a live audio room UI in SwiftUI: a stage of speakers, a listening audience, and raise-to-speak, from a free VP0 design. Moderate from day one.

Lawrence Arya · May 31, 2026
Locket-Style Photo Widget in SwiftUI (Learn the Pattern): the App Store logo on a glass tile over a blue gradient with bubbles
Guides 4 min read

Locket-Style Photo Widget in SwiftUI (Learn the Pattern)

Build a Locket-style photo widget in SwiftUI with WidgetKit: a friend's latest photo on your Home Screen, from a free VP0 design. Learn the pattern, respect privacy.

Lawrence Arya · May 31, 2026
Wordle-Style Daily Word Game in SwiftUI (Learn the Pattern): a phone toggle icon surrounded by location, calendar, settings, wallet and chart app icons on a coral gradient
Guides 5 min read

Wordle-Style Daily Word Game in SwiftUI (Learn the Pattern)

Build a daily word-guessing game like Wordle in SwiftUI: a letter grid, color feedback, and a once-a-day puzzle, from a free VP0 design.

Lawrence Arya · May 31, 2026
Baemin App UI Clone in SwiftUI, Free for iOS: the App Store logo as a frosted glass icon on a pink and blue gradient with bubbles
Guides 5 min read

Baemin App UI Clone in SwiftUI, Free for iOS

Want a Baemin style food delivery UI clone in SwiftUI? Clone the playful delivery pattern from a free template and build it with Claude Code or Cursor. The legal way.

Lawrence Arya · June 1, 2026
bKash App Clone UI in SwiftUI, Free for iOS: a vivid neon 3D App Store icon on an orange, pink and blue gradient
Guides 5 min read

bKash App Clone UI in SwiftUI, Free for iOS

Want a bKash style wallet clone UI in SwiftUI? Clone the mobile-money pattern from a free template and build it with Claude Code or Cursor. The legal way.

Lawrence Arya · June 1, 2026
Notion-Style UI Kit for iPad in SwiftUI (Learn the Pattern): a glass iPhone UI wireframe icon on a holographic purple gradient
Guides 4 min read

Notion-Style UI Kit for iPad in SwiftUI (Learn the Pattern)

Build a Notion-style workspace UI for iPad in SwiftUI: a sidebar, a block-based editor, and adaptive layout, from a free VP0 design.

Lawrence Arya · May 31, 2026