Streamie is a native iOS application focused on real-time video streaming.
The project is structured with a TCA architecture and appears to provide camera preview, stream configuration, and RTMP-based streaming capabilities.
IMG_8851.1.MP4
Streamie is an iOS app built with Swift and SwiftUI that enables users to configure and start live video streams.
It includes camera preview, stream status handling, configuration screens, and secure storage for sensitive data such as stream keys.
The architecture emphasizes modularity by separating app features, streaming logic, and shared infrastructure.
| Category | Technology / Tool |
|---|---|
| Platform | iOS |
| Language | Swift |
| UI Framework | SwiftUI |
| Architecture | TCA |
| Streaming Protocol | RTMP |
| Secure Storage | Keychain |
| Persistence | UserDefaults |
| Tooling | Xcode |
- 📷 Camera preview for live streaming
- 📡 RTMP streaming client
- ⚙️ Stream configuration and settings
- 🔐 Secure storage using Keychain
- 📊 Stream status and error handling
- 🧩 Modular, feature-oriented project structure
- Clone the repository:
git clone https://github.com/jewelboi14/Streamie.git
- Open the project in Xcode:
open Streamie.xcodeproj
- Select a valid iOS device or simulator.
- Build and run the project.
- Launch the app.
- Configure streaming settings (e.g. stream URL / key).
- Preview the camera feed.
- Start the live stream.
- Monitor stream status and errors.
Streamie
├── Features
│ ├── App # App-level state and root view
│ ├── Configuration # Stream configuration screens
│ └── Stream # Streaming UI and logic
├── Stream # Core streaming domain (RTMP, status, errors)
├── Keychain # Secure credential storage
├── UserDefaults # Lightweight persistence
├── Shared # Shared constants and keys
└── Assets # App icons and color assets
The app requires:
- RTMP server URL
- Stream key or credentials
These values appear to be:
- Stored securely via Keychain
- Persisted via UserDefaults for non-sensitive data
- Improve error handling and recovery
- Add stream quality presets
- Support additional streaming protocols
- Add analytics / stream metrics
- UI polish and accessibility improvements
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a pull request
Please follow Swift and SwiftUI best practices.