๐Ÿ“ฑ PodFeed Studio App

Feature Highlights

A cross-platform podcast app built with Flutter and integrated with PodFeed Studio.

๐ŸŽง Audio & Playback

Professional-grade audio playback with background support, offline download, lockscreen controls, and intelligent progress tracking.

Background Audio

True background playback with full system integration.

  • Continues playing when app is minimized or screen locked
  • Lockscreen and notification controls (play, pause, skip, seek)
  • Rich metadata displayed (title, artist, artwork, position)
  • Hardware/media button support (headphones, car, Bluetooth)

Resume Playback

Never lose your place with automatic position tracking.

  • Automatic progress saving every 5 seconds while playing
  • Auto-saves on pause/stop
  • 90-day retention in local database
  • 95% completion threshold marks episodes as "played"
  • Seamless resume without interrupting dialogs

Sleep Timer

Auto-stop playback after custom duration with beautiful UI.

  • Customizable 1-120 minutes countdown
  • Circular timer display with animated progress ring
  • Preset buttons: 15, 30, 60 minutes
  • Pause/resume and extend running timer
  • Visible on player, mini-player, and image overlay

Audio Scrubber

Precise playback control with real-time updates.

  • Drag to any position in episode
  • 10-second rewind, 30-second forward controls
  • Accurate audio duration from actual MP3 files
  • Real-time progress updates with green/gray indicators
  • Spotify-style progress bar on mini-player

๐Ÿ“ฑ User Experience

Polished, intuitive interface with Spotify-inspired design and smart state synchronization.

Persistent Mini-Player

Always-visible playback controls that persist across sessions.

  • Appears at bottom when episode is loaded
  • Episode artwork (56x56px) with rounded corners
  • Auto-scrolling title for long episode names
  • Large 48px play/pause button
  • Tap to open full player screen
  • Sleep timer indicator when active

Spotify-Style Cards

Consistent, beautiful episode cards across all tabs.

  • 80x80px episode images with border and shadow
  • Title turns GREEN when episode is playing
  • Progress bars: GREEN for played, GRAY for remaining
  • Time remaining inline ("15 min left")
  • Green waveform icon when actively playing
  • 32px play/pause button in bottom-right corner
  • Action buttons: Favorite, Download, Share

Smart State Sync

All controls stay perfectly synchronized across all screens.

  • Real-time updates across Episodes, Favorites, Downloads
  • Smart play/pause logic (pause current, resume paused, navigate to different)
  • Visual indicators synced (green title, waveform, progress)
  • Progress tracking updates every 5 seconds
  • Unified navigation with bottom-slide animation

Collapsing App Bar

Spotify-style scroll-triggered app bar on podcast detail screen.

  • Appears after ~200px scroll
  • Dynamic background using podcast's dominant color
  • Smooth fade-in/out animation (200ms)
  • Status bar protection (content never hides)
  • Smart back button management

Global Offline Banner

Instant offline detection with retry functionality.

  • Shows immediately on app launch if offline
  • Appears on all main screens (Home, Detail, Player)
  • WiFi-off icon with red accent
  • Retry button for manual connection recheck
  • No race conditions or delays

Pull-to-Refresh

Always get the latest episodes with manual refresh.

  • Available on all main screens
  • Bypasses 30-minute cache
  • Smooth animation with loading indicator
  • Automatic background refresh on app launch

๐ŸŽ™๏ธ Content & Discovery

Dynamic podcast directory with rich metadata and responsive grid layout.

Dynamic Directory Feed

Server-managed podcast list loaded from https://podcast.supersoul.top/feed.php

  • No app updates needed to add/remove podcasts
  • Responsive grid layout (2-4 columns based on screen size)
  • On-demand fetching (individual podcasts loaded when tapped)
  • 30-minute cache freshness
  • Graceful error handling

Rich Metadata

Beautiful podcast cards with comprehensive information.

  • Episode counts with podcast icon badge
  • "NEW" badges (green) for recent podcasts
  • Relative dates with clock icon
  • Cover images with gradient overlay
  • Clean HTML text parsing (all entities decoded)

Episode Sharing

Native sharing functionality with rich metadata.

  • Share with title, description, and artwork
  • Share button on episode cards and player screen
  • System share sheet integration

API Integrations

WordPress API and XML podcast feeds.

  • Radio icon in top-right of home screen
  • WordPress API integration with grid layout
  • WebView integration with custom dark theme CSS
  • XML RSS feed for various authenticated podcast feedss
  • Pull-to-refresh and external link handling

๐Ÿ“ฅ Downloads & Favorites

Full offline support with real HTTP downloads and persistent favorites system.

Real HTTP Downloads

Actual file downloads with progress tracking and offline playback.

  • Real-time 0-100% progress indicators
  • Confirmation dialog before starting
  • Progress modal with circular indicator
  • Completion modal with "View All" button
  • File validation after download
  • Retry capability for failed downloads
  • Offline playback in airplane mode

Downloads Tab

Dedicated tab for managing offline episodes.

  • Spotify-style cards (80x80 images)
  • Progress bars for playback tracking
  • Action buttons: Favorite, Share, Delete
  • File size and duration display
  • Real-time state synchronization
  • Smart audio loading (local files vs streaming)

Favorites System

Save and organize your favorite episodes with persistent storage.

  • Heart icon in player (outline/filled states)
  • Beautiful confirmation modal with animation
  • Dedicated Favorites tab
  • Episodes grouped by podcast with headers
  • Swipe-to-delete with confirmation dialog
  • Complete episode metadata stored in Hive database

Download States

Clear visual indicators for download status.

  • Not Downloaded: Download outline icon (white)
  • Downloading: Circular progress with percentage
  • Completed: Green checkmark icon
  • Failed: Red error icon with retry option
  • Storage permissions handled automatically

๐ŸŽจ Design & Technical

Beautiful minimalist dark theme with robust architecture and cross-platform support.

Minimalist Dark Theme

Consistent design system throughout the app.

  • Oswald font for headers
  • Nunito font for body text
  • Dynamic color extraction from podcast artwork
  • Visual indicators (green for playing, waveform icons)
  • Beautiful modals with animations
  • Responsive layout for all screen sizes

Offline-Ready

Local caching with Hive database for fast, offline access.

  • Type-safe storage with generated adapters
  • Three boxes: podcasts, favorites, app_settings
  • 30-minute cache freshness window
  • Automatic migration for schema changes
  • Offline audio playback for downloaded episodes

Clean Architecture

Well-organized codebase with separation of concerns.

  • Provider pattern for state management
  • Service layer for business logic
  • Repository pattern for data fetching
  • Zero lint warnings
  • Comprehensive error handling
  • Well-documented codebase

Cross-Platform

Built with Flutter for iOS, Android, and Web.

  • iOS: Full featured with background audio
  • Android: Full featured with background audio
  • Web (Chrome): Full featured with CORS proxy
  • Consistent experience across all platforms

Error Resilient

Graceful handling of network and audio issues.

  • Comprehensive try-catch blocks
  • Validation before playing episodes
  • Visual indicators for episodes without audio
  • User-friendly error messages via snackbars
  • Proper state reset when errors occur
  • Detailed logging for debugging

Network Awareness

Real-time connectivity monitoring with smart defaults.

  • ConnectivityProvider for real-time status
  • Safe default (assumes offline until proven online)
  • 10-second timeout for requests
  • Cache-first strategy for faster startup
  • Background refresh when online