Building GuardFrame CCTV — iOS RTSP Camera Monitoring App
GuardFrame CCTV is an iOS application I developed to turn an iPhone or iPad into a simple, modern CCTV monitoring station for compatible RTSP/H.264 cameras.
The app allows users to connect IP cameras from different manufacturers, view them together on a live CCTV wall, record important moments, and optionally use GuardFrame Cloud to upload, download, share, and manage recordings.
The goal of this project was to build a practical CCTV monitoring tool for everyday and professional use: homes, shops, offices, warehouses, garages, transport, construction sites, hospitality spaces, and other locations where video supervision matters.
Project Details
Role: Owner / iOS Developer
Platform: iOS / iPadOS
App Type: CCTV Monitoring App, RTSP Camera Viewer, Video Recording Tool
Technologies: SwiftUI, RTSP, H.264, AVKit, Keychain, URLSession, local file storage, GuardFrame Cloud, AdMob
Focus: Live camera wall, RTSP playback, local recording, cloud recording management, secure camera profiles
Status: Published on the App Store
App Store: https://apps.apple.com/en/app/guardframe-cctv/id6785570610
What I Developed
I designed and developed GuardFrame CCTV as a native iOS application for monitoring compatible RTSP/H.264 camera streams.
The app is organized around a clear tab-based workflow: CCTV Wall, Cameras, Recordings, Cloud, and Settings. This structure keeps the most important monitoring actions easy to access: watching cameras, managing camera profiles, reviewing recordings, using cloud features, and adjusting app behavior.
The application supports saved RTSP camera profiles, live viewing, local recording, cloud upload, cloud download, sharing, camera sync, secure credential storage, and a clean modern interface for everyday CCTV use.
Live CCTV Wall
The Live CCTV Wall is the main monitoring screen.
It allows users to view saved RTSP cameras together in one clean wall layout. This makes it easy to quickly check which cameras are online, refresh streams after network changes, and open a larger live preview when more detail is needed.
The wall layout was designed for fast visual scanning. Instead of opening one camera at a time, users can keep multiple camera sources organized in one place.
RTSP Camera Support
GuardFrame CCTV supports compatible RTSP over TCP/H.264 video streams.
Users can add cameras using standard RTSP URLs from compatible IP cameras, DVRs, NVRs, and other RTSP sources. This makes the app flexible enough to work with many existing camera setups, especially where RTSP streams are already available.
The app is designed around real-world camera workflows, where each camera may have a different URL, authentication method, network behavior, or stream stability.
Secure Camera Management
I implemented camera profile management so users can save camera names, RTSP URLs, and optional authentication details.
Camera passwords are handled carefully. They are not embedded into the visible RTSP URL, and sensitive credentials are stored securely instead of being shown as plain text inside the camera address.
This makes camera management cleaner and safer, especially for users who work with multiple cameras or shared devices.
Local Recording
GuardFrame CCTV can record live camera streams directly on the device.
Local recording allows users to keep important clips organized by camera. This is useful when something needs to be saved immediately without depending on a cloud account or external recorder.
The Recordings section gives users access to saved local videos, with actions such as preview, share, delete, and cloud upload when signed in.
The app remains local-first: users can add cameras, watch streams, record video, preview recordings, share files, and delete recordings without a cloud account.
GuardFrame Cloud
I also implemented optional GuardFrame Cloud support.
Users can sign in to GuardFrame Cloud to upload, download, share, and manage recordings. Cloud features extend the local workflow but do not replace it.
GuardFrame Cloud supports:
- Account creation and sign in
- Cloud token storage
- Manual upload of completed local recordings
- Optional automatic upload of completed recording segments
- Optional deletion of local video after successful cloud upload
- Cloud recording list
- Cloud video download back to local recordings
- Share links for cloud recordings
- Cloud account deletion from inside the app
- Resetting local cloud state on the device
This gives users flexibility: they can use GuardFrame CCTV as a local monitoring app, or connect it to cloud storage when remote access to recordings is useful.
Cloud Camera Sync
A major part of the project was camera profile synchronization.
GuardFrame Cloud can sync saved camera profiles across devices. When the user signs in on another iPhone or iPad, synced cameras can be restored automatically, including camera details and recording preferences.
The sync logic also handles deletions. If a camera is removed on one device, the app can send a cloud deletion marker so other devices remove the same camera during their next sync.
This makes the product more practical for users who manage multiple devices or want to keep their camera list available after reinstalling the app.
Recording Management
The recording workflow was designed to be simple and practical.
Users can record important moments from live streams and later open the Recordings tab to review saved clips. The app supports local video preview, sharing, deletion, cloud upload, and cloud status indicators.
For cloud recordings, the app supports viewing remote videos, creating share links, downloading recordings back to the device, and deleting cloud videos when they are no longer needed.
This creates a complete recording lifecycle: record locally, review, share, upload, download, or delete.
Clean Modern Interface
GuardFrame CCTV was designed with a focused monitoring interface.
The UI uses large camera cards, clear online/offline status, quick refresh controls, simple tabs, and a modern visual style. The goal was to keep the app usable for both technical users and everyday users who simply want to see their cameras clearly.
The interface avoids unnecessary complexity. CCTV tools can easily become overloaded with settings, so I focused on the main workflow: add cameras, watch streams, record, review, and sync.
Settings and App Behavior
The Settings section includes practical options for real monitoring scenarios.
Examples include startup behavior, screen-lock prevention, cloud settings, camera sync options, local data actions, and recording-related preferences.
Startup behavior is useful because some users may want the app to open directly to the CCTV Wall, while others may prefer the last opened tab. Screen-awake mode is useful during monitoring sessions where the user wants the display to stay active.
Privacy and Local Control
GuardFrame CCTV is built around user-controlled camera access.
The app connects to camera streams that the user adds manually. It does not require a cloud account for local monitoring, local recording, playback, sharing, or deletion.
GuardFrame Cloud is optional. Uploads are user-controlled or controlled by an explicit auto-upload setting. Users can delete their cloud account from inside the app and can reset local cloud data on the device.
This design keeps the core CCTV workflow local-first while still supporting cloud convenience when the user chooses it.
Monetization
GuardFrame CCTV includes AdMob monetization with conservative ad behavior.
The app uses App Open ads and Interstitial ads, but ads are rate-limited and are not required to add cameras, watch RTSP streams, record video, upload videos, or use GuardFrame Cloud.
The goal was to support monetization without interrupting the core monitoring workflow too aggressively.
Technical Implementation
The project combines several technical systems:
- Native iOS interface built with SwiftUI
- RTSP/H.264 camera stream support
- Live CCTV wall layout
- Saved camera profile management
- Optional RTSP authentication
- Secure credential handling
- Local video recording
- Built-in recording preview
- Local file storage
- Sharing and deletion workflows
- GuardFrame Cloud API integration
- Cloud account registration and sign in
- Cloud recording upload, download, share, and delete
- Cloud camera profile synchronization
- App lifecycle handling
- Screen-awake behavior
- Debug logging
- AdMob integration with rate limits
One of the main engineering challenges was combining live camera viewing, recording state, cloud upload, and camera synchronization into one consistent application.
Another challenge was keeping the app reliable across changing network conditions. RTSP streams can fail for many reasons: camera settings, wrong URLs, authentication problems, Wi-Fi changes, unstable connections, or unsupported stream formats. The app needed a workflow that lets users refresh streams, manage cameras, and keep recordings organized.
Compatibility Note
GuardFrame CCTV supports compatible RTSP over TCP/H.264 video streams.
Camera availability and stream quality depend on the camera model, network, RTSP URL, authentication settings, and connection stability. Some cameras, DVRs, or NVRs may require specific stream URLs or configuration changes before they work correctly.
Responsible Use
GuardFrame CCTV is designed for camera systems the user owns, manages, or has permission to access.
For homes, businesses, warehouses, shops, garages, and temporary sites, the app can be useful as a flexible monitoring station. Users should always follow local privacy laws and ensure they have permission to view and record camera streams.
Possible Use Cases
GuardFrame CCTV can be useful for:
- Home entrances, yards, garages, and apartments
- Retail shops and offices
- Storage rooms and warehouses
- Small businesses and service locations
- Transport, parking, and temporary sites
- Construction sites and field locations
- Hospitality spaces
- Existing IP camera setups with RTSP support
- Quick CCTV monitoring without a dedicated desktop system
Result
GuardFrame CCTV became a complete published iOS CCTV monitoring application.
The project combines RTSP camera playback, H.264 video workflows, live CCTV wall UI, local recording, recording preview, secure camera management, cloud upload, cloud download, share links, camera sync, local-first architecture, and App Store-ready product delivery.
This project demonstrates my experience in iOS development, video streaming, RTSP workflows, cloud API integration, secure credential handling, local file management, mobile UX, camera monitoring tools, and building practical products for real-world monitoring scenarios.
View on App Store: https://apps.apple.com/en/app/guardframe-cctv/id6785570610
