Back to ReplyCoach

How ReplyCoach is built

ReplyCoach helps people answer the messages they don't want to get wrong. It reads a pasted conversation or up to eight screenshots, asks what you want to achieve, and drafts three strategy-based replies — all generated on-device with Apple's Foundation Models, so conversations never leave the phone.

Version
1.2
Requires iOS
iOS 26.0
Size
1.7 MB
Category
Productivity
First released
2026

Architecture

A SwiftUI app in Swift 6 with strict concurrency, organised as a product loop — Understand → Decide → Reply → Check → Continue — over a domain layer that is independent of the AI provider.

  1. Domain

    ConversationInput, ConversationSession, GeneratedReply, ConversationUnderstanding and DraftReview are Codable value types. Sessions stay backward-decodable across versions so 1.0 history still opens.

  2. AI provider

    A single ReplyGenerating protocol backs Reply, Understand and Draft Check. AppleFoundationReplyGenerator drives LanguageModelSession with @Generable guided generation; a deterministic fallback powers previews and tests.

  3. Memory engine

    ConversationMemoryEngine summarises earlier rounds and pinned context so long threads fit within the on-device model's context budget.

  4. Privacy & system

    LocalAuthentication for App Lock, App Groups for shared state, App Intents for Shortcuts entry points and a privacy manifest.

Stack

Languages

6,645lines of code · 54 source files
Swift 88%HTML 9.3%Python 2.7%

Build

UI
SwiftUI-first (with UIKit interop)
Swift
6.0
Deployment target
iOS 26.0
Tests
34 test cases

Apple frameworks

Machine learning

FoundationModelsVisionNaturalLanguage

Interface

SwiftUIUIKit

System integration

AppIntents

Media

PhotosUI

Commerce

StoreKit

Security

LocalAuthentication

Targets

App
ReplyCoach

Dependencies

No third-party dependencies — Apple SDKs only.

Patterns

ObservableObject / Combine bindingsSwift Concurrency (async/await)Actors@MainActor isolationProtocol-oriented services (DI)CoordinatorsNavigationStackXCTestString CatalogsOn-device LLM (LanguageModelSession)Guided generation (@Generable)Codable modelsStrict concurrency checking

Capabilities

App Groups

Tooling

Privacy manifest

Stack detected automatically from the repository on 27 Oct 2026.

Engineering highlights

Structured output from an on-device LLM

Replies, breakdowns and draft reviews are produced as typed Swift structs through guided generation rather than parsed from free text.

Context budgeting

Long multi-round conversations are compressed into memory and pinned facts so the model keeps the thread without exceeding its window.

Availability-gated features

Newer multimodal paths are gated behind the same domain types, so the iOS 26 experience stays complete.

Get it on the App StoreBack to ReplyCoach