Professional Teleprompter with Picture-in-Picture Support
Features β’ Installation β’ Usage β’ Architecture β’ Contributing
Prompter PiP is a professional iOS teleprompter application that leverages Picture-in-Picture (PiP) technology to display scrolling scripts while recording or live streaming. Perfect for video creators, streamers, presenters, and educators who need to read scripts while maintaining eye contact with their audience.
- π― Picture-in-Picture - Keep your script visible while using other apps
- π 100% Private - All processing happens locally on your device
- π± Universal - Works on iPhone and iPad
- β‘ Fast & Efficient - Optimized for smooth performance
- π¨ Customizable - Adjust font size, speed, and appearance
- π Offline - No internet required, no accounts needed
- β Picture-in-Picture Display - Keep your script visible while using camera, recording, or live streaming
- β Local Processing - All content stays on your device, 100% private
- β Customizable Speed - Adjust scrolling speed to match your speaking pace
- β Font Customization - Change font size and line spacing
- β Easy Text Input - Simply paste your script and start
- β Universal App - Native support for iPhone and iPad
- β iOS 16+ Support - Modern iOS features and APIs
- β SwiftUI Interface - Clean, modern user interface
- β AVKit Integration - Professional video playback
- β Background PiP - Works while app is in background
- β Memory Efficient - Optimized video generation
- β Error Handling - Robust error recovery
- π No Data Collection - We don't collect any personal information
- π No Tracking - No analytics or advertising
- π No Accounts - Works completely offline
- π Local Storage - All data stays on your device
- Xcode 15.0 or later
- iOS 16.0 or later
- Apple Developer Account (for App Store distribution)
-
Clone the repository
git clone https://github.com/wd041216-bit/iOS-Prompter-PiP.git cd iOS-Prompter-PiP -
Open in Xcode
open PrompterPiP.xcodeproj
-
Configure Signing
- Select your Development Team in project settings
- Update Bundle Identifier if needed
-
Build and Run
- Select your target device or simulator
- Press βR to build and run
- Create a new iOS App project in Xcode
- Copy
PrompterPiPStarter/files to your project - Add Background Modes capability:
- Select your target
- Go to Signing & Capabilities
- Add "Background Modes"
- Enable "Audio, AirPlay, and Picture in Picture"
- Configure Info.plist:
- Add
NSCameraUsageDescription(optional) - Add
NSMicrophoneUsageDescription(optional)
- Add
-
Enter Your Script
- Open the app
- Paste or type your teleprompter script
- The app provides a placeholder text to get started
-
Customize Settings (Optional)
- Adjust font size
- Change scroll speed
- Modify line spacing
-
Generate Video
- Tap "Generate and Play"
- Wait for video generation (usually 1-2 seconds)
-
Activate PiP
- Tap the PiP button on the video player
- The script will appear in a floating window
- Switch to camera or streaming app to read while recording
var settings = PrompterSettings()
settings.duration = 90.0 // Video duration in seconds
settings.frameRate = 30 // Frames per second
settings.videoSize = CGSize(width: 1080, height: 1920) // Video resolution
settings.fontSize = 64 // Text size
settings.lineSpacing = 18 // Line spacinglet viewModel = PrompterViewModel()
await viewModel.buildVideo()
if let url = viewModel.videoURL {
// Use the generated video
let player = AVPlayer(url: url)
// Play in PiP mode
}iOS-Prompter-PiP/
βββ PrompterPiPStarter/
β βββ PrompterPiPApp.swift # App entry point
β βββ ContentView.swift # Main UI
β βββ Models/
β β βββ PrompterSettings.swift # Configuration model
β βββ ViewModels/
β β βββ PrompterViewModel.swift # Business logic
β βββ Services/
β β βββ TeleprompterVideoBuilder.swift # Video generation
β βββ UI/
β βββ PiPPlayerView.swift # PiP player component
βββ Info.plist # App configuration
βββ PrompterPiPStarter.entitlements # App capabilities
βββ PRIVACY_POLICY.md # Privacy policy
βββ APP_STORE_SUBMISSION.md # App Store guide
βββ XCODE_CONFIGURATION.md # Build configuration
- PrompterViewModel - Manages app state and video generation
- TeleprompterVideoBuilder - Generates scrolling video from text
- PiPPlayerView - Handles Picture-in-Picture playback
- PrompterSettings - User preferences and configuration
User Input β PrompterViewModel β TeleprompterVideoBuilder
β
Video Generation β AVPlayer β PiPPlayerView
β
User Playback β Picture-in-Picture Activation
- iOS SDK: 16.0+
- Swift: 5.9+
- Xcode: 15.0+
# Build for debug
xcodebuild -project PrompterPiP.xcodeproj -scheme PrompterPiP -configuration Debug
# Build for release
xcodebuild -project PrompterPiP.xcodeproj -scheme PrompterPiP -configuration Release
# Run tests
xcodebuild test -project PrompterPiP.xcodeproj -scheme PrompterPiP -destination 'platform=iOS Simulator,name=iPhone 14 Pro'- SwiftUI - Modern UI framework
- AVKit - Video playback and PiP
- AVFoundation - Video generation
- UIKit - Core graphics
Clean interface for text input and video generation
Script displayed in Picture-in-Picture window
Customize font size, speed, and appearance
-
Prepare Screenshots
- iPhone 6.7" (iPhone 14 Pro Max)
- iPhone 6.5" (iPhone 11 Pro Max)
- iPad Pro 12.9"
-
Complete Metadata
- App name and description
- Keywords and categories
- Support URL and marketing URL
-
Review Checklist
- All features working
- No crashes or bugs
- Privacy policy included
- Screenshots uploaded
- App icons created
- Archive your app in Xcode
- Upload to App Store Connect
- Fill in all required metadata
- Submit for review
See APP_STORE_SUBMISSION.md for detailed instructions.
- β Personal information
- β Location data
- β Contacts or calendar
- β Photos or videos
- β Biometric data
- β Health information
- β Financial information
- β Text content you input
- β Generated video files
- β App settings and preferences
- π All processing is local
- π No network transmission
- π iOS sandbox protection
- π No cloud storage
See PRIVACY_POLICY.md for complete privacy policy.
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Swift API Design Guidelines
- Use SwiftLint for code formatting
- Write unit tests for new features
- Update documentation for API changes
This project is licensed under the MIT License - see the LICENSE file for details.
- Apple - For AVKit and Picture-in-Picture technology
- SwiftUI Community - For modern iOS development practices
- Contributors - For their valuable feedback and improvements
If you find any issues or bugs, please create an issue with:
- Device model and iOS version
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
We welcome feature requests! Please open a discussion to share your ideas.
- GitHub: @wd041216-bit
- Issues: GitHub Issues
Made with β€οΈ for creators worldwide
