Skip to content

jamesalmeida/comlink-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Comlink iOS - P2P Voice Intercom for Loud Environments

A high-fidelity, peer-to-peer voice intercom application designed for offline communication in concerts, clubs, and festivals.

Overview

Comlink enables real-time voice communication between iOS devices without requiring an internet connection. Using Apple's Multipeer Connectivity Framework and AVFoundation, it provides ultra-low latency audio transmission with built-in noise isolation.

Key Features

  • Offline-First: Works in Airplane Mode with Wi-Fi/Bluetooth enabled
  • Background Audio: Continues working when device is locked
  • Noise Isolation: Filters background noise using iOS voice processing
  • OLED-Friendly UI: Dark theme optimized for concerts
  • Zero Dependencies: Uses only Apple frameworks

Architecture

This project follows MVVM architecture with Swift 6.0+ and SwiftUI.

For comprehensive implementation details, see AGENT.md

Project Structure

Comlink/
├── App/              # App entry point and lifecycle
├── Models/           # Data models (Peer, AudioPacket)
├── ViewModels/       # MVVM ViewModels
├── Views/            # SwiftUI views
├── Managers/         # Business logic (MultipeerManager, AudioManager)
├── Utilities/        # Helper classes and extensions
└── Resources/        # Assets and resources

Getting Started

Requirements

  • Xcode 15.0+
  • iOS 16.0+ deployment target
  • Swift 6.0+
  • Two physical iOS devices (simulator does not support Multipeer Connectivity)

Setup

  1. Open the project in Xcode:

    open Comlink.xcodeproj
  2. Select a physical iOS device as the build target

  3. Build and run (Cmd+R)

  4. Grant microphone and local network permissions when prompted

Testing P2P Connection

  1. Install the app on two physical devices
  2. Device A: Start broadcasting
  3. Device B: Browse for peers and select Device A
  4. Accept the connection request
  5. Test voice transmission

Implementation Phases

The project is structured into 5 implementation phases:

  1. Phase 1: Project Setup & Permissions
  2. Phase 2: Multipeer Manager (P2P networking)
  3. Phase 3: Audio Engine Setup (capture and transmission)
  4. Phase 4: Audio Receiver (playback pipeline)
  5. Phase 5: UI Implementation (SwiftUI views)

See AGENT.md for detailed implementation plan

Technical Stack

  • Language: Swift 6.0+
  • UI: SwiftUI
  • Audio: AVFoundation & AVAudioEngine
  • Networking: MultipeerConnectivity
  • Architecture: MVVM

Documentation

License

MIT (or specify your license)

Contributing

This is a learning/demonstration project. Contributions welcome!


Status: 🚧 Architecture complete, implementation in progress

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages