Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
翻訳待ち
District AI for iOS, the native iPhone and iPad app, is open source under Apache-2.0. The service it talks to is not, and signing in needs an account.
翻訳待ち
ビジネスSwift · PythonGitHub @distronode-corporationオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
District AI for iOS: the native iPhone and iPad client (SwiftUI)
翻訳待ち
Loading the full README. The saved excerpt is shown below.
District AI for iOS is on the App Store.
Links: project page ·
GitLab mirror (read-only mirror;
issues and pull requests live on GitHub) · CHANGELOG
The native iPhone and iPad client for District AI,
the AI receptionist service by Distronode. It places and answers calls, and covers the
inbox, contacts, meeting rooms and workspace settings of a District AI workspace.Read the full README ↗District AI for iOS is on the App Store.
Links: project page · GitLab mirror (read-only mirror; issues and pull requests live on GitHub) · CHANGELOG
The native iPhone and iPad client for District AI, the AI receptionist service by Distronode. It places and answers calls, and covers the inbox, contacts, meeting rooms and workspace settings of a District AI workspace.
The Overview on iPad, in a fictional review workspace.
This repository and district-core-swift, the Swift package that holds most of the app's logic, are the client's complete source, under the Apache License 2.0. The District AI service it talks to is not open source; signing in needs a District AI account. Without one you can still build the app, run every unit test and run the signed-out UI tests.
Without an account with us. Today this app needs a District AI account to sign in. We want the District AI apps to work without an account with us too. We have not worked out what that looks like or whether it can work, and the answer depends on what people would use them with, so we are asking before we build anything: tell us what you would connect them to.
SwiftUI, Swift 6 language mode, iOS 17 and later, on iPhone and iPad (one universal app). It embeds an Apple Watch companion (watchOS 10 or later: recent calls, the inbox, your availability, a call's live transcript with instructions to the agent, and a card after the call) and a notification service extension that puts the sender's name on a message alert. Neither holds the session; see docs/ARCHITECTURE.md.
Languages: English and Canadian French (fr-CA). The app follows the device's language; any French reads Canadian French.
On regular width the shell is a sidebar, and the list sections (Calls, Inbox, Contacts,
Desk, Support) get three columns: sidebar, list, detail. On compact width, which includes an
iPad in a narrow Split View, it is the same tab bar as the iPhone. Both layouts read one
navigation state, so a rotation or a Split View resize keeps the section, the open screen
and a call in progress. ⌘1 to ⌘5 switch sections, ⌘N, ⌘F and ⌘R do what they usually do,
and ⌘↩ sends an Inbox reply. Layout follows the width a view is given, never the device
type; App/Tests/SourceBanTests.swift enforces that.
project.yml)ci/Dockerfile definesMost of the app's logic (models, the API client, repositories, auth and the call state
machines) lives in the DistrictCore package, in its own repository, district-core-swift.
Its tests run there, on macOS or Linux, with no simulator, network or account.
project.yml pins the release this app builds against (exactVersion), and Xcode
fetches it when it resolves the app's packages. To work on the core and the app
together, see "Changing DistrictCore" in CONTRIBUTING.md.
xcodegen generate --spec project.yml
# Build for the simulator. No signing is needed: the project carries no certificates,
# provisioning profiles or DEVELOPMENT_TEAM. ExportOptions.plist names the App Store
# team for the release workflow only.
xcodebuild build -project DistrictAI.xcodeproj -scheme DistrictAI \
-destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO
# App-target unit tests, on an iPhone and on an iPad simulator.
xcodebuild test -project DistrictAI.xcodeproj -scheme DistrictAI \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
-only-testing:DistrictAITests CODE_SIGNING_ALLOWED=NO
xcodebuild test -project DistrictAI.xcodeproj -scheme DistrictAI \
-destination 'platform=iOS Simulator,name=iPad Pro 13-inch (M5)' \
-only-testing:DistrictAITests CODE_SIGNING_ALLOWED=NO
# The signed-out UI tests, as CI runs them.
xcodebuild test -project DistrictAI.xcodeproj -scheme DistrictAI \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
-only-testing:DistrictAIUITests/UnauthenticatedTests \
-only-testing:DistrictAIUITests/LargerTextTests CODE_SIGNING_ALLOWED=NO
Use any simulator you have installed; ci/sim-udid.sh iPhone (or iPad) picks one
the way CI does and writes its udid to simulator-udid.txt.
Two things that are expected, not broken:
From the repository root:
swiftformat --lint .
swiftlint --strict
This is the beginning of the README. Read the rest at the original. Read the full README ↗