From b8f84deda035f7da876475081a43d481bd2bbd12 Mon Sep 17 00:00:00 2001 From: Philipp Zagar Date: Mon, 20 Nov 2023 09:05:05 -0800 Subject: [PATCH] Initial setup of repository (#2) # Initial setup of repository ## :recycle: Current situation & Problem Currently, the repo is mostly empty except for a template package. ## :gear: Release Notes - Initial setup of the `SpeziChat` repo which previously was a target in the [SpeziML](https://github.com/StanfordSpezi/SpeziML) repo - Improved README and documentation via DocC ## :books: Documentation -- ## :white_check_mark: Testing UI Tests are included ## :pencil: Code of Conduct & Contributing Guidelines By submitting creating this pull request, you agree to follow our [Code of Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md): - [X] I agree to follow the [Code of Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md). --- .github/workflows/build-and-test.yml | 14 +- .spi.yml | 2 +- CITATION.cff | 6 + CONTRIBUTORS.md | 3 + Package.swift | 7 +- README.md | 103 +++++++-- Sources/SpeziChat/Chat.swift | 42 ---- Sources/SpeziChat/ChatView.swift | 91 ++++++++ Sources/SpeziChat/MessageInputView.swift | 197 ++++++++++++++++++ .../SpeziChat/MessageInputViewHeightKey.swift | 30 +++ Sources/SpeziChat/MessageView.swift | 113 ++++++++++ Sources/SpeziChat/MessagesView.swift | 130 ++++++++++++ Sources/SpeziChat/Models/Chat.swift | 11 + Sources/SpeziChat/Models/ChatEntity.swift | 55 +++++ .../SpeziChat/Resources/Localizable.xcstrings | 36 ++++ .../Resources/Localizable.xcstrings.license | 5 + .../Resources/en.lproj/Localizable.strings | 9 - .../Resources/ChatView+TextInput.png | Bin 0 -> 73515 bytes .../Resources/ChatView+TextInput.png.license | 5 + .../Resources/ChatView+TextInput~dark.png | Bin 0 -> 80338 bytes .../ChatView+TextInput~dark.png.license | 5 + .../Resources/ChatView+VoiceInput.png | Bin 0 -> 40040 bytes .../Resources/ChatView+VoiceInput.png.license | 5 + .../Resources/ChatView+VoiceInput~dark.png | Bin 0 -> 33203 bytes .../ChatView+VoiceInput~dark.png.license | 5 + .../SpeziChat.docc/Resources/ChatView.png | Bin 0 -> 30089 bytes .../Resources/ChatView.png.license | 5 + .../Resources/ChatView~dark.png | Bin 0 -> 34996 bytes .../Resources/ChatView~dark.png.license | 5 + Sources/SpeziChat/SpeziChat.docc/SpeziChat.md | 137 +++++++++--- Tests/SpeziChatTests/SpeziChatTests.swift | 2 +- Tests/UITests/TestApp/ChatTestView.swift | 41 ++++ Tests/UITests/TestApp/TestApp.swift | 7 +- Tests/UITests/TestApp/TestAppDelegate.swift | 20 -- .../TestAppUITests/SpeziChatTests.swift | 20 -- .../TestAppUITests/TestAppUITests.swift | 38 ++++ .../UITests/UITests.xcodeproj/project.pbxproj | 103 +++++---- .../xcshareddata/xcschemes/TestApp.xcscheme | 2 +- 38 files changed, 1041 insertions(+), 213 deletions(-) delete mode 100644 Sources/SpeziChat/Chat.swift create mode 100644 Sources/SpeziChat/ChatView.swift create mode 100644 Sources/SpeziChat/MessageInputView.swift create mode 100644 Sources/SpeziChat/MessageInputViewHeightKey.swift create mode 100644 Sources/SpeziChat/MessageView.swift create mode 100644 Sources/SpeziChat/MessagesView.swift create mode 100644 Sources/SpeziChat/Models/Chat.swift create mode 100644 Sources/SpeziChat/Models/ChatEntity.swift create mode 100644 Sources/SpeziChat/Resources/Localizable.xcstrings create mode 100644 Sources/SpeziChat/Resources/Localizable.xcstrings.license delete mode 100644 Sources/SpeziChat/Resources/en.lproj/Localizable.strings create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png.license create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png.license create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput.png create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput.png.license create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput~dark.png create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput~dark.png.license create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView.png create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView.png.license create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView~dark.png create mode 100644 Sources/SpeziChat/SpeziChat.docc/Resources/ChatView~dark.png.license create mode 100644 Tests/UITests/TestApp/ChatTestView.swift delete mode 100644 Tests/UITests/TestApp/TestAppDelegate.swift delete mode 100644 Tests/UITests/TestAppUITests/SpeziChatTests.swift create mode 100644 Tests/UITests/TestAppUITests/TestAppUITests.swift diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 661e49c..9cc23e3 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -31,9 +31,19 @@ jobs: path: 'Tests/UITests' scheme: TestApp artifactname: TestApp.xcresult + ipados: + name: Build and Test iPadOS + uses: StanfordSpezi/.github/.github/workflows/xcodebuild-or-fastlane.yml@v2 + with: + runsonlabels: '["macOS", "self-hosted"]' + path: 'Tests/UITests' + scheme: TestApp + resultBundle: TestAppiPadOS.xcresult + destination: 'platform=iOS Simulator,name=iPad mini (6th generation)' + artifactname: TestAppiPadOS.xcresult uploadcoveragereport: name: Upload Coverage Report - needs: [packageios, ios] + needs: [packageios, ios, ipados] uses: StanfordSpezi/.github/.github/workflows/create-and-upload-coverage-report.yml@v2 with: - coveragereports: SpeziChat.xcresult TestApp.xcresult + coveragereports: SpeziChat.xcresult TestApp.xcresult TestAppiPadOS.xcresult diff --git a/.spi.yml b/.spi.yml index 3717617..ff5f2d3 100644 --- a/.spi.yml +++ b/.spi.yml @@ -11,4 +11,4 @@ builder: configs: - platform: ios documentation_targets: - - SpeziChat + - SpeziChat diff --git a/CITATION.cff b/CITATION.cff index 538cde1..a4bb68c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -12,5 +12,11 @@ authors: - family-names: "Schmiedmayer" given-names: "Paul" orcid: "https://orcid.org/0000-0002-8607-9148" +- family-names: "Philipp" + given-names: "Zagar" + orcid: "https://orcid.org/0009-0001-5934-2078" +- family-names: "Adrit" + given-names: "Rao" + orcid: "https://orcid.org/0000-0002-0780-033X" title: "SpeziChat" url: "https://github.com/StanfordSpezi/SpeziChat" diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index ca51a09..19588dd 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -14,3 +14,6 @@ SpeziChat contributors ==================== * [Paul Schmiedmayer](https://github.com/PSchmiedmayer) +* [Vishnu Ravi](https://github.com/vishnuravi) +* [Philipp Zagar](https://github.com/philippzagar) +* [Adrit Rao](https://github.com/AdritRao) diff --git a/Package.swift b/Package.swift index 301ae92..4d764ca 100644 --- a/Package.swift +++ b/Package.swift @@ -21,16 +21,13 @@ let package = Package( .library(name: "SpeziChat", targets: ["SpeziChat"]) ], dependencies: [ - .package(url: "https://github.com/StanfordSpezi/Spezi", .upToNextMinor(from: "0.8.0")) + .package(url: "https://github.com/StanfordSpezi/SpeziSpeech", .upToNextMinor(from: "0.1.0")) ], targets: [ .target( name: "SpeziChat", dependencies: [ - .product(name: "Spezi", package: "Spezi") - ], - resources: [ - .process("Resources") + .product(name: "SpeziSpeechRecognizer", package: "SpeziSpeech") ] ), .testTarget( diff --git a/README.md b/README.md index 12ad984..7a4021b 100644 --- a/README.md +++ b/README.md @@ -8,63 +8,122 @@ SPDX-License-Identifier: MIT --> -# SpeziChat +# Spezi Chat [![Build and Test](https://github.com/StanfordSpezi/SpeziChat/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/StanfordSpezi/SpeziChat/actions/workflows/build-and-test.yml) [![codecov](https://codecov.io/gh/StanfordSpezi/SpeziChat/graph/badge.svg?token=b2Dn0r9eo6)](https://codecov.io/gh/StanfordSpezi/SpeziChat) -Enable applications to connect to Chat devices. +Provides UI components for building chat-based applications. ## Overview -... +The `SpeziChat` module provides views that can be used to implement chat-based use cases, such as a message view or a voice input field. + +|![Screenshot displaying the regular chat view.](Sources/SpeziChat/SpeziChat.docc/Resources/ChatView.png#gh-light-mode-only) ![Screenshot displaying the regular chat view.](Sources/SpeziChat/SpeziChat.docc/Resources/ChatView~dark.png#gh-dark-mode-only)|![Screenshot displaying the text input chat view.](Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png#gh-light-mode-only) ![Screenshot displaying the text input chat view.](Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png#gh-dark-mode-only)|![Screenshot displaying the voice input chat view.](Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput.png#gh-light-mode-only) ![Screenshot displaying the voice input chat view.](Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput~dark.png#gh-dark-mode-only) +|:--:|:--:|:--:| +|[`ChatView`](https://swiftpackageindex.com/stanfordspezi/spezichat/documentation/spezichat/chatview)|[`ChatView`](https://swiftpackageindex.com/stanfordspezi/spezichat/documentation/spezichat/chatview)|[`ChatView`](https://swiftpackageindex.com/stanfordspezi/spezichat/documentation/spezichat/chatview)| ## Setup -### 1. Add Spezi Chat as a Dependency +### Add Spezi Chat as a Dependency You need to add the Spezi Chat Swift package to [your app in Xcode](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app#) or [Swift package](https://developer.apple.com/documentation/xcode/creating-a-standalone-swift-package-with-xcode#Add-a-dependency-on-another-Swift-package). > [!IMPORTANT] -> If your application is not yet configured to use Spezi, follow the [Spezi setup article](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/initial-setup) setup the core Spezi infrastructure. +> If your application is not yet configured to use Spezi, follow the [Spezi setup article](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/initial-setup) to setup the core Spezi infrastructure. + +## Examples +### Chat View -### 2. Register the Module +The [`ChatView`](https://swiftpackageindex.com/stanfordspezi/spezichat/documentation/spezichat/chatview) provides a basic reusable chat view which includes a message input field. The input can be either typed out via the iOS keyboard or provided as voice input and transcribed into written text. -The `Chat` module needs to be registered in a Spezi-based application using the -[`configuration`](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/speziappdelegate/configuration) in a -[`SpeziAppDelegate`](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/speziappdelegate): ```swift -class ExampleAppDelegate: SpeziAppDelegate { - override var configuration: Configuration { - Configuration { - Chat() - // ... - } +struct ChatTestView: View { + @State private var chat: Chat = [ + ChatEntity(role: .assistant, content: "Assistant Message!") + ] + + + var body: some View { + ChatView($chat) + .navigationTitle("SpeziChat") } } ``` -> [!NOTE] -> You can learn more about a [`Module` in the Spezi documentation](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/module). +### Messages View + +The [`MessagesView`](https://swiftpackageindex.com/stanfordspezi/spezichat/documentation/spezichat/messagesview) displays a `Chat` containing multiple `ChatEntity`s with different `ChatEntity/Role`s in a typical chat-like fashion. +The `View` automatically scrolls down to the newest message that is added to the passed `Chat` SwiftUI `Binding`. + +```swift +struct MessagesViewTestView: View { + @State private var chat: Chat = [ + ChatEntity(role: .user, content: "User Message!"), + ChatEntity(role: .assistant, content: "Assistant Message!") + ] + + var body: some View { + MessagesView($chat) + } +} +``` -## Example +### Message View -... +The [`MessageView`](https://swiftpackageindex.com/stanfordspezi/spezichat/documentation/spezichat/messageview) is a reusable SwiftUI `View` to display the contents of a `ChatEntity` within a typical chat message bubble. This bubble is properly aligned according to the associated `ChatEntity/Role`. ```swift -... +struct MessageViewTestView: View { + var body: some View { + VStack { + MessageView(ChatEntity(role: .user, content: "User Message!")) + MessageView(ChatEntity(role: .assistant, content: "Assistant Message!")) + MessageView(ChatEntity(role: .system, content: "System Message (hidden)!")) + } + .padding() + } +} ``` -For more information, please refer to the API documentation. +### MessageInput View + +The [`MessageInputView`](https://swiftpackageindex.com/stanfordspezi/spezichat/documentation/spezichat/messageinputview) is a reusable SwiftUI `View` to handle text-based or speech-based user input. The provided message is attached to the passed `Chat` via a SwiftUI `Binding`. + +```swift +struct MessageInputTestView: View { + @State private var chat: Chat = [] + @State private var disableInput = false + @State private var messageInputHeight: CGFloat = 0 + + + var body: some View { + VStack { + Spacer() + MessageInputView($chat, messagePlaceholder: "TestMessage") + .disabled(disableInput) + /// Get the height of the `MessageInputView` via a SwiftUI `PreferenceKey` + .onPreferenceChange(MessageInputViewHeightKey.self) { newValue in + messageInputHeight = newValue + } + } + } +} +``` + +For more information, please refer to the [API documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziChat/documentation). + +## Applications using Spezi Chat +[HealthGPT](https://github.com/StanfordBDHG/HealthGPT) and [LLMonFHIR](https://github.com/StanfordBDHG/LLMonFHIR) provide a great starting points and examples using the `SpeziChat` module. ## Contributing @@ -73,7 +132,7 @@ Contributions to this project are welcome. Please make sure to read the [contrib ## License -This project is licensed under the MIT License. See [Licenses](https://github.com/StanfordSpezi/SpeziContact/tree/main/LICENSES) for more information. +This project is licensed under the MIT License. See [Licenses](https://github.com/StanfordSpezi/SpeziChat/tree/main/LICENSES) for more information. ![Spezi Footer](https://raw.githubusercontent.com/StanfordSpezi/.github/main/assets/FooterLight.png#gh-light-mode-only) ![Spezi Footer](https://raw.githubusercontent.com/StanfordSpezi/.github/main/assets/FooterDark.png#gh-dark-mode-only) diff --git a/Sources/SpeziChat/Chat.swift b/Sources/SpeziChat/Chat.swift deleted file mode 100644 index cd5b0ef..0000000 --- a/Sources/SpeziChat/Chat.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// This source file is part of the Stanford Spezi open-source project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -import Observation -import Spezi - - -/// Spezi module to handle and display user interfaces for chat-based interactions. -/// -/// > Important: If your application is not yet configured to use Spezi, follow the [Spezi setup article](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/initial-setup) setup the core Spezi infrastructure. -/// -/// The module needs to be registered in a Spezi-based application using the [`configuration`](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/speziappdelegate/configuration) -/// in a [`SpeziAppDelegate`](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/speziappdelegate): -/// ```swift -/// class ExampleAppDelegate: SpeziAppDelegate { -/// override var configuration: Configuration { -/// Configuration { -/// Chat() -/// // ... -/// } -/// } -/// } -/// ``` -/// > Tip: You can learn more about a [`Module` in the Spezi documentation](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/module). -/// -/// -/// ## Usage -/// -/// ... -/// ```swift -/// ... -/// ``` -@Observable -public class Chat: Module, DefaultInitializable { - /// Creates an instance of a ``Chat`` module. - public required init() { } -} diff --git a/Sources/SpeziChat/ChatView.swift b/Sources/SpeziChat/ChatView.swift new file mode 100644 index 0000000..bca58a9 --- /dev/null +++ b/Sources/SpeziChat/ChatView.swift @@ -0,0 +1,91 @@ +// +// This source file is part of the Stanford Spezi open source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import SwiftUI + + +/// Provides a basic reusable chat view which includes a message input field. The input can be either typed out via the iOS keyboard or provided as voice input and transcribed into written text. +/// +/// The actual content of the ``ChatView`` is defined by a ``Chat``, which contains an ordered array of ``ChatEntity``s representing the individual messages within the ``ChatView``. +/// The ``Chat`` is passed to the ``ChatView`` as a SwiftUI `Binding`, which enables modification of the ``Chat`` from outside of the view, for example via a SwiftUI `.onChange()` `View` modifier. +/// +/// +/// ```swift +/// struct ChatTestView: View { +/// @State private var chat: Chat = [ +/// ChatEntity(role: .assistant, content: "Assistant Message!") +/// ] +/// +/// var body: some View { +/// ChatView($chat) +/// .navigationTitle("SpeziChat") +/// } +/// } +/// ``` +public struct ChatView: View { + @Binding var chat: Chat + @Binding var disableInput: Bool + let messagePlaceholder: String? + + @State var messageInputHeight: CGFloat = 0 + + + public var body: some View { + ZStack { + VStack { + MessagesView($chat, bottomPadding: $messageInputHeight) + .gesture( + TapGesture().onEnded { + UIApplication.shared.sendAction( + #selector(UIResponder.resignFirstResponder), + to: nil, + from: nil, + for: nil + ) + } + ) + } + VStack { + Spacer() + MessageInputView($chat, messagePlaceholder: messagePlaceholder) + .disabled(disableInput) + .onPreferenceChange(MessageInputViewHeightKey.self) { newValue in + messageInputHeight = newValue + } + } + } + } + + + /// - Parameters: + /// - chat: The chat that should be displayed. + /// - disableInput: Flag if the input view should be disabled. + /// - messagePlaceholder: Placeholder text that should be added in the input field. + public init( + _ chat: Binding, + disableInput: Binding = .constant(false), + messagePlaceholder: String? = nil + ) { + self._chat = chat + self._disableInput = disableInput + self.messagePlaceholder = messagePlaceholder + } +} + + +#Preview { + ChatView(.constant( + [ + ChatEntity(role: .system, content: "System Message!"), + ChatEntity(role: .system, content: "System Message (hidden)!"), + ChatEntity(role: .user, content: "User Message!"), + ChatEntity(role: .assistant, content: "Assistant Message!"), + ChatEntity(role: .function, content: "Function Message!") + ] + )) +} diff --git a/Sources/SpeziChat/MessageInputView.swift b/Sources/SpeziChat/MessageInputView.swift new file mode 100644 index 0000000..27c49f4 --- /dev/null +++ b/Sources/SpeziChat/MessageInputView.swift @@ -0,0 +1,197 @@ +// +// This source file is part of the Stanford Spezi open source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import AVFoundation +import Speech +import SpeziSpeechRecognizer +import SwiftUI + + +/// A reusable SwiftUI `View` to handle text-based or speech-based user input. +/// The provided message is attached to the passed ``Chat`` via a SwiftUI `Binding`. +/// +/// The input can be either typed out via the iOS keyboard or provided as voice input and transcribed into written text. +/// +/// One can get the size of the typed message, which can vary dependent on the message length, via the ``MessageInputViewHeightKey`` SwiftUI PreferenceKey`. +/// +/// +/// ```swift +/// struct MessageInputTestView: View { +/// @State private var chat: Chat = [] +/// @State private var disableInput = false +/// /// Indicates the height of the input message field, necessary for properly shifting +/// /// other view content. +/// @State private var messageInputHeight: CGFloat = 0 +/// +/// var body: some View { +/// VStack { +/// Spacer() +/// MessageInputView($chat, messagePlaceholder: "TestMessage") +/// .disabled(disableInput) +/// /// Get the height of the `MessageInputView` via a SwiftUI `PreferenceKey` +/// .onPreferenceChange(MessageInputViewHeightKey.self) { newValue in +/// messageInputHeight = newValue +/// } +/// } +/// } +/// } +/// ``` +public struct MessageInputView: View { + @Binding private var chat: Chat + private let messagePlaceholder: String + + @State private var speechRecognizer = SpeechRecognizer() + @State private var message: String = "" + @State private var messageViewHeight: CGFloat = 0 + + + public var body: some View { + HStack(alignment: .bottom) { + TextField(messagePlaceholder, text: $message, axis: .vertical) + .accessibilityLabel(String(localized: "MESSAGE_INPUT_TEXTFIELD", bundle: .module)) + .frame(maxWidth: .infinity) + .padding(.horizontal, 12) + .padding(.vertical, 8) + .background { + RoundedRectangle(cornerRadius: 20) + .stroke(Color(UIColor.systemGray2), lineWidth: 0.2) + .background { + RoundedRectangle(cornerRadius: 20) + .fill(.white.opacity(0.2)) + } + .padding(.trailing, -42) + } + .lineLimit(1...5) + Group { + if speechRecognizer.isAvailable && (message.isEmpty || speechRecognizer.isRecording) { + microphoneButton + } else { + sendButton + .disabled(message.isEmpty) + } + } + .frame(minWidth: 33) + } + .padding(.horizontal, 16) + .padding(.vertical, 6) + .background(.thinMaterial) + .background { + GeometryReader { proxy in + Color.clear + .onAppear { + messageViewHeight = proxy.size.height + } + .onChange(of: message) { + messageViewHeight = proxy.size.height + } + } + } + .messageInputViewHeight(messageViewHeight) + } + + private var sendButton: some View { + Button( + action: { + sendMessageButtonPressed() + }, + label: { + Image(systemName: "arrow.up.circle.fill") + .accessibilityLabel(String(localized: "SEND_MESSAGE", bundle: .module)) + .font(.title) + .foregroundColor( + message.isEmpty ? Color(.systemGray5) : .accentColor + ) + } + ) + .offset(x: -2, y: -3) + } + + private var microphoneButton: some View { + Button( + action: { + microphoneButtonPressed() + }, + label: { + Image(systemName: "mic.fill") + .accessibilityLabel(String(localized: "MICROPHONE_BUTTON", bundle: .module)) + .font(.title2) + .foregroundColor( + speechRecognizer.isRecording ? .red : Color(.systemGray2) + ) + .scaleEffect(speechRecognizer.isRecording ? 1.2 : 1.0) + .opacity(speechRecognizer.isRecording ? 0.7 : 1.0) + .animation( + speechRecognizer.isRecording ? .easeInOut(duration: 0.5).repeatForever(autoreverses: true) : .default, + value: speechRecognizer.isRecording + ) + } + ) + .offset(x: -4, y: -6) + } + + + /// - Parameters: + /// - chat: The chat that should be appended to. + /// - messagePlaceholder: Placeholder text that should be added in the input field + public init( + _ chat: Binding, + messagePlaceholder: String? = nil + ) { + self._chat = chat + self.messagePlaceholder = messagePlaceholder ?? "Message" + } + + + private func sendMessageButtonPressed() { + speechRecognizer.stop() + chat.append(ChatEntity(role: .user, content: message)) + message = "" + } + + private func microphoneButtonPressed() { + if speechRecognizer.isRecording { + speechRecognizer.stop() + } else { + Task { + do { + for try await result in speechRecognizer.start() { + if result.bestTranscription.formattedString.contains("send") { + sendMessageButtonPressed() + } else { + message = result.bestTranscription.formattedString + } + } + } + } + } + } +} + + +#Preview { + @State var chat = [ + ChatEntity(role: .system, content: "System Message!"), + ChatEntity(role: .system, content: "System Message (hidden)!"), + ChatEntity(role: .function, content: "Function Message!"), + ChatEntity(role: .user, content: "User Message!"), + ChatEntity(role: .assistant, content: "Assistant Message!") + ] + + + return ZStack { + Color(.secondarySystemBackground) + .ignoresSafeArea() + VStack { + MessagesView($chat) + MessageInputView($chat) + } + .onPreferenceChange(MessageInputViewHeightKey.self) { newValue in + print("New MessageView height: \(newValue)") + } + } +} diff --git a/Sources/SpeziChat/MessageInputViewHeightKey.swift b/Sources/SpeziChat/MessageInputViewHeightKey.swift new file mode 100644 index 0000000..03f4604 --- /dev/null +++ b/Sources/SpeziChat/MessageInputViewHeightKey.swift @@ -0,0 +1,30 @@ +// +// This source file is part of the Stanford Spezi open source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import SwiftUI + + +/// A SwiftUI `PreferenceKey` that is used by the ``MessageInputView`` to propagate the height of the view up the view hierarchy. +public struct MessageInputViewHeightKey: PreferenceKey { + /// Default height of 0. + public static var defaultValue: CGFloat = 0 + + + /// Writes the received value to the `PreferenceKey`. + public static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) { + value = nextValue() + } +} + + +/// View modifier to write the height of a `View` to the ``MessageInputViewHeightKey`` SwiftUI `PreferenceKey`. +extension View { + func messageInputViewHeight(_ value: CGFloat) -> some View { + self.preference(key: MessageInputViewHeightKey.self, value: value) + } +} diff --git a/Sources/SpeziChat/MessageView.swift b/Sources/SpeziChat/MessageView.swift new file mode 100644 index 0000000..b46193a --- /dev/null +++ b/Sources/SpeziChat/MessageView.swift @@ -0,0 +1,113 @@ +// +// This source file is part of the Stanford Spezi open source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import SwiftUI + + +/// A reusable SwiftUI `View` to display the contents of a ``ChatEntity`` within a typical chat message bubble. This bubble is properly aligned according to the associated ``ChatEntity/Role``. +/// +/// Messages with specific system ``ChatEntity/Role``s are hidden. Those ``ChatEntity/Role``s are configurable via a parameter. +/// +/// +/// ```swift +/// struct MessageViewTestView: View { +/// var body: some View { +/// VStack { +/// MessageView(ChatEntity(role: .user, content: "User Message!")) +/// MessageView(ChatEntity(role: .assistant, content: "Assistant Message!")) +/// MessageView(ChatEntity(role: .system, content: "System Message (hidden)!")) +/// } +/// .padding() +/// } +/// } +/// ``` +public struct MessageView: View { + /// Contains default values of configurable properties of the ``MessageView``. + public enum Defaults { + /// ``ChatEntity`` ``ChatEntity/Role``s that should be hidden by default + public static let hideMessagesWithRoles: Set = [.system, .function] + } + + + private let chat: ChatEntity + private let hideMessagesWithRoles: Set + + + private var foregroundColor: Color { + chat.alignment == .leading ? .primary : .white + } + + private var backgroundColor: Color { + chat.alignment == .leading ? Color(.secondarySystemBackground) : .accentColor + } + + private var multilineTextAllignment: TextAlignment { + chat.alignment == .leading ? .leading : .trailing + } + + private var arrowRotation: Angle { + .degrees(chat.alignment == .leading ? -50 : -130) + } + + private var arrowAllignment: CGFloat { + chat.alignment == .leading ? -7 : 7 + } + + public var body: some View { + if !hideMessagesWithRoles.contains(chat.role) { + HStack { + if chat.alignment == .trailing { + Spacer(minLength: 32) + } + Text(chat.content) + .multilineTextAlignment(multilineTextAllignment) + .frame(idealWidth: .infinity) + .padding(.horizontal, 10) + .padding(.vertical, 8) + .foregroundColor(foregroundColor) + .background(backgroundColor) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .overlay( + Image(systemName: "arrowtriangle.left.fill") + .accessibilityHidden(true) + .foregroundColor(backgroundColor) + .rotationEffect(arrowRotation) + .offset(x: arrowAllignment), + alignment: chat.alignment == .leading ? .bottomLeading : .bottomTrailing + ) + .padding(.horizontal, 4) + if chat.alignment == .leading { + Spacer(minLength: 32) + } + } + } + } + + + /// - Parameters: + /// - chat: The chat message that should be displayed. + /// - hideMessagesWithRoles: If .system and/or .function messages should be hidden from the chat overview. + public init(_ chat: ChatEntity, hideMessagesWithRoles: Set = MessageView.Defaults.hideMessagesWithRoles) { + self.chat = chat + self.hideMessagesWithRoles = hideMessagesWithRoles + } +} + + +#Preview { + ScrollView { + VStack { + MessageView(ChatEntity(role: .system, content: "System Message!"), hideMessagesWithRoles: []) + MessageView(ChatEntity(role: .system, content: "System Message (hidden)!")) + MessageView(ChatEntity(role: .function, content: "Function Message!"), hideMessagesWithRoles: [.system]) + MessageView(ChatEntity(role: .user, content: "User Message!")) + MessageView(ChatEntity(role: .assistant, content: "Assistant Message!")) + } + .padding() + } +} diff --git a/Sources/SpeziChat/MessagesView.swift b/Sources/SpeziChat/MessagesView.swift new file mode 100644 index 0000000..6eb59d9 --- /dev/null +++ b/Sources/SpeziChat/MessagesView.swift @@ -0,0 +1,130 @@ +// +// This source file is part of the Stanford Spezi open source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import Combine +import SwiftUI + + +/// Displays a ``Chat`` containing multiple ``ChatEntity``s with different ``ChatEntity/Role``s in a typical chat-like fashion. +/// The `View` automatically scrolls down to the newest message that is added to the passed ``Chat`` SwiftUI `Binding`. +/// +/// Depending on the parameters, ``ChatEntity``s with certain ``ChatEntity/Role``s are hidden from the `View`. +/// The ``MessagesView`` is shifted from the bottom by a configurable parameter which is important for input fields, e.g., ``MessageInputView``. +/// +/// +/// ```swift +/// struct MessagesViewTestView: View { +/// @State private var chat: Chat = [ +/// ChatEntity(role: .user, content: "User Message!"), +/// ChatEntity(role: .assistant, content: "Assistant Message!") +/// ] +/// +/// var body: some View { +/// MessagesView($chat) +/// } +/// } +/// ``` +public struct MessagesView: View { + private static let bottomSpacerIdentifier = "Bottom Spacer" + + @Binding private var chat: Chat + @Binding private var bottomPadding: CGFloat + private let hideMessagesWithRoles: Set + + + private var keyboardPublisher: AnyPublisher { + Publishers + .Merge( + NotificationCenter + .default + .publisher(for: UIResponder.keyboardWillShowNotification) + .map { _ in true }, + NotificationCenter + .default + .publisher(for: UIResponder.keyboardWillHideNotification) + .map { _ in false } + ) + .debounce(for: .seconds(0.1), scheduler: RunLoop.main) + .eraseToAnyPublisher() + } + + + public var body: some View { + ScrollViewReader { scrollViewProxy in + ScrollView { + VStack { + ForEach(Array(chat.enumerated()), id: \.offset) { _, message in + MessageView(message, hideMessagesWithRoles: hideMessagesWithRoles) + } + Spacer() + .frame(height: bottomPadding) + .id(MessagesView.bottomSpacerIdentifier) + } + .padding(.horizontal) + .onAppear { + scrollToBottom(scrollViewProxy) + } + .onChange(of: chat) { + scrollToBottom(scrollViewProxy) + } + .onReceive(keyboardPublisher) { _ in + scrollToBottom(scrollViewProxy) + } + } + } + } + + + /// - Parameters: + /// - chat: The chat messages that should be displayed. + /// - bottomPadding: A fixed bottom padding for the messages view. + /// - hideMessagesWithRoles: The .system and .function roles are hidden from message view + public init( + _ chat: Chat, + hideMessagesWithRoles: Set = MessageView.Defaults.hideMessagesWithRoles, + bottomPadding: CGFloat = 0 + ) { + self._chat = .constant(chat) + self.hideMessagesWithRoles = hideMessagesWithRoles + self._bottomPadding = .constant(bottomPadding) + } + + /// - Parameters: + /// - chat: The chat messages that should be displayed. + /// - bottomPadding: A bottom padding for the messages view. + /// - hideMessagesWithRoles: Defines which messages should be hidden based on the passed in message roles. + public init( + _ chat: Binding, + hideMessagesWithRoles: Set = MessageView.Defaults.hideMessagesWithRoles, + bottomPadding: Binding = .constant(0) + ) { + self._chat = chat + self.hideMessagesWithRoles = hideMessagesWithRoles + self._bottomPadding = bottomPadding + } + + + private func scrollToBottom(_ scrollViewProxy: ScrollViewProxy) { + withAnimation(.easeOut) { + scrollViewProxy.scrollTo(MessagesView.bottomSpacerIdentifier) + } + } +} + + +#Preview { + MessagesView( + [ + ChatEntity(role: .system, content: "System Message!"), + ChatEntity(role: .system, content: "System Message (hidden)!"), + ChatEntity(role: .function, content: "Function Message!"), + ChatEntity(role: .user, content: "User Message!"), + ChatEntity(role: .assistant, content: "Assistant Message!") + ] + ) +} diff --git a/Sources/SpeziChat/Models/Chat.swift b/Sources/SpeziChat/Models/Chat.swift new file mode 100644 index 0000000..0322996 --- /dev/null +++ b/Sources/SpeziChat/Models/Chat.swift @@ -0,0 +1,11 @@ +// +// This source file is part of the Stanford Spezi open source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +/// Represents all necessary content of a typical text-based chat between the user and system(s). +/// Consists of an ordered array of ``ChatEntity``s +public typealias Chat = [ChatEntity] diff --git a/Sources/SpeziChat/Models/ChatEntity.swift b/Sources/SpeziChat/Models/ChatEntity.swift new file mode 100644 index 0000000..24d2a6a --- /dev/null +++ b/Sources/SpeziChat/Models/ChatEntity.swift @@ -0,0 +1,55 @@ +// +// This source file is part of the Stanford Spezi open source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import Foundation + + +/// Represents the basic building block of a Spezi ``Chat``. +/// It consists of a ``ChatEntity/Role`` property as well as a `String`-based content property. +public struct ChatEntity: Codable, Equatable { + /// Indicates which ``ChatEntity/Role`` is associated with a ``ChatEntity``. + public enum Role: String, Codable, Equatable { + case system + case assistant + case user + case function + } + + /// Indicates if a ``ChatEntity`` is displayed in a leading or trailing position within a SwiftUI `View`. + enum Alignment { + case leading + case trailing + } + + + /// ``ChatEntity/Role`` associated with the ``ChatEntity``. + public let role: Role + /// `String`-based content of the ``ChatEntity``. + public let content: String + + + /// Dependent on the ``ChatEntity/Role``, display a ``ChatEntity`` in a leading or trailing position. + var alignment: Alignment { + switch self.role { + case .user: + return .trailing + default: + return .leading + } + } + + + /// Creates a ``ChatEntity`` which is the building block of a Spezi ``Chat``. + /// - Parameters: + /// - role: ``ChatEntity/Role`` associated with the ``ChatEntity``. + /// - content: `String`-based content of the ``ChatEntity``. + public init(role: Role, content: String) { + self.role = role + self.content = content + } +} diff --git a/Sources/SpeziChat/Resources/Localizable.xcstrings b/Sources/SpeziChat/Resources/Localizable.xcstrings new file mode 100644 index 0000000..fca829b --- /dev/null +++ b/Sources/SpeziChat/Resources/Localizable.xcstrings @@ -0,0 +1,36 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "MESSAGE_INPUT_TEXTFIELD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message Input Textfield" + } + } + } + }, + "MICROPHONE_BUTTON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Record Message" + } + } + } + }, + "SEND_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send Message" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/Sources/SpeziChat/Resources/Localizable.xcstrings.license b/Sources/SpeziChat/Resources/Localizable.xcstrings.license new file mode 100644 index 0000000..a3bb08d --- /dev/null +++ b/Sources/SpeziChat/Resources/Localizable.xcstrings.license @@ -0,0 +1,5 @@ +This source file is part of the Stanford Spezi open-source project + +SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) + +SPDX-License-Identifier: MIT \ No newline at end of file diff --git a/Sources/SpeziChat/Resources/en.lproj/Localizable.strings b/Sources/SpeziChat/Resources/en.lproj/Localizable.strings deleted file mode 100644 index e7d81b9..0000000 --- a/Sources/SpeziChat/Resources/en.lproj/Localizable.strings +++ /dev/null @@ -1,9 +0,0 @@ -// -// This source file is part of the Stanford Spezi open-source project -// -// SPDX-FileCopyrightText: 2023 Stanford University -// -// SPDX-License-Identifier: MIT -// - -"..." = "..."; \ No newline at end of file diff --git a/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png new file mode 100644 index 0000000000000000000000000000000000000000..bebace5aa6aff3c28f1e967221400dca34614614 GIT binary patch literal 73515 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 DVxPNl literal 0 HcmV?d00001 diff --git a/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png.license b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png.license new file mode 100644 index 0000000..a3bb08d --- /dev/null +++ b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput.png.license @@ -0,0 +1,5 @@ +This source file is part of the Stanford Spezi open-source project + +SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) + +SPDX-License-Identifier: MIT \ No newline at end of file diff --git a/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png new file mode 100644 index 0000000000000000000000000000000000000000..af83156868ccc95e8f3956bdedd99de7f0299851 GIT binary patch literal 80338 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%0An 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 z%0A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 literal 0 HcmV?d00001 diff --git a/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png.license b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png.license new file mode 100644 index 0000000..a3bb08d --- /dev/null +++ b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+TextInput~dark.png.license @@ -0,0 +1,5 @@ +This source file is part of the Stanford Spezi open-source project + +SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) + +SPDX-License-Identifier: MIT \ No newline at end of file diff --git a/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput.png b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView+VoiceInput.png new file mode 100644 index 0000000000000000000000000000000000000000..ca61141d3668bd5f9489cc204903ad519fb71f79 GIT binary patch literal 40040 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�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 LPpwqNGVK2Y1(lrZ literal 0 HcmV?d00001 diff --git a/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView.png.license b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView.png.license new file mode 100644 index 0000000..a3bb08d --- /dev/null +++ b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView.png.license @@ -0,0 +1,5 @@ +This source file is part of the Stanford Spezi open-source project + +SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) + +SPDX-License-Identifier: MIT \ No newline at end of file diff --git a/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView~dark.png b/Sources/SpeziChat/SpeziChat.docc/Resources/ChatView~dark.png new file mode 100644 index 0000000000000000000000000000000000000000..93850bd935da78837cd8ff4c08da004731c06213 GIT binary patch literal 34996 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�$o<{}I5sp&?x3i}7a1ovO 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 + +This source file is part of the Stanford Spezi open-source project + +SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) -Enable applications to connect to Chat devices. +SPDX-License-Identifier: MIT + +--> +Provides UI components for building chat-based applications. ## Overview -... - +The ``SpeziChat`` module provides views that can be used to implement chat-based use cases, such as a message view or a voice input field. + +@Row { + @Column { + @Image(source: "ChatView.png", alt: "Screenshot displaying the regular chat view.") { + A ``ChatView`` allows you to display a messages in a typical chat-like manner. + } + } + @Column { + @Image(source: "ChatView+TextInput.png", alt: "Screenshot displaying the text input chat view.") { + A ``ChatView`` enables the input of new messages via text. + } + } + @Column { + @Image(source: "ChatView+VoiceInput.png", alt: "Screenshot displaying the voice input chat view.") { + A ``ChatView`` allows users to use their voice for input (speech-to-text). + } + } +} ## Setup - -### 1. Add Spezi Chat as a Dependency +### Add Spezi Chat as a Dependency You need to add the Spezi Chat Swift package to [your app in Xcode](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app#) or [Swift package](https://developer.apple.com/documentation/xcode/creating-a-standalone-swift-package-with-xcode#Add-a-dependency-on-another-Swift-package). -> Important: If your application is not yet configured to use Spezi, follow the [Spezi setup article](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/initial-setup) setup the core Spezi infrastructure. +> Important: If your application is not yet configured to use Spezi, follow the [Spezi setup article](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/initial-setup) to setup the core Spezi infrastructure. + +## Examples +### Chat View -### 2. Register the Module +The ``ChatView`` provides a basic reusable chat view which includes a message input field. The input can be either typed out via the iOS keyboard or provided as voice input and transcribed into written text. -The `Chat` module needs to be registered in a Spezi-based application using the -[`configuration`](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/speziappdelegate/configuration) in a -[`SpeziAppDelegate`](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/speziappdelegate): ```swift -class ExampleAppDelegate: SpeziAppDelegate { - override var configuration: Configuration { - Configuration { - Chat() - // ... - } +struct ChatTestView: View { + @State private var chat: Chat = [ + ChatEntity(role: .assistant, content: "Assistant Message!") + ] + + + var body: some View { + ChatView($chat) + .navigationTitle("SpeziChat") } } ``` -> Tip: You can learn more about a [`Module` in the Spezi documentation](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/module). +### Messages View +The ``MessagesView`` displays a ``Chat`` containing multiple ``ChatEntity``s with different ``ChatEntity/Role``s in a typical chat-like fashion. +The `View` automatically scrolls down to the newest message that is added to the passed ``Chat`` SwiftUI `Binding`. -## Example +```swift +struct MessagesViewTestView: View { + @State private var chat: Chat = [ + ChatEntity(role: .user, content: "User Message!"), + ChatEntity(role: .assistant, content: "Assistant Message!") + ] + + + var body: some View { + MessagesView($chat) + } +} +``` + +### Message View -... +The ``MessageView`` is a reusable SwiftUI `View` to display the contents of a ``ChatEntity`` within a typical chat message bubble. This bubble is properly aligned according to the associated ``ChatEntity/Role``. ```swift -... +struct MessageViewTestView: View { + var body: some View { + VStack { + MessageView(ChatEntity(role: .user, content: "User Message!")) + MessageView(ChatEntity(role: .assistant, content: "Assistant Message!")) + MessageView(ChatEntity(role: .system, content: "System Message (hidden)!")) + } + .padding() + } +} ``` +### MessageInput View + +The ``MessageInputView`` is a reusable SwiftUI `View` to handle text-based or speech-based user input. The provided message is attached to the passed ``Chat`` via a SwiftUI `Binding`. + +```swift +struct MessageInputTestView: View { + @State private var chat: Chat = [] + @State private var disableInput = false + @State private var messageInputHeight: CGFloat = 0 + + + var body: some View { + VStack { + Spacer() + MessageInputView($chat, messagePlaceholder: "TestMessage") + .disabled(disableInput) + /// Get the height of the `MessageInputView` via a SwiftUI `PreferenceKey` + .onPreferenceChange(MessageInputViewHeightKey.self) { newValue in + messageInputHeight = newValue + } + } + } +} +``` ## Topics +### Display messages + +- ``ChatView`` +- ``MessagesView`` +- ``MessageView`` + +### User input + +- ``MessageInputView`` +- ``MessageInputViewHeightKey`` + +### Message models + - ``Chat`` +- ``ChatEntity`` diff --git a/Tests/SpeziChatTests/SpeziChatTests.swift b/Tests/SpeziChatTests/SpeziChatTests.swift index ec2ff6c..5a1c9ab 100644 --- a/Tests/SpeziChatTests/SpeziChatTests.swift +++ b/Tests/SpeziChatTests/SpeziChatTests.swift @@ -12,6 +12,6 @@ import XCTest final class SpeziChatTests: XCTestCase { func testSpeziChat() throws { - XCTAssertTrue(true) + XCTAssert(true) } } diff --git a/Tests/UITests/TestApp/ChatTestView.swift b/Tests/UITests/TestApp/ChatTestView.swift new file mode 100644 index 0000000..0bd43d0 --- /dev/null +++ b/Tests/UITests/TestApp/ChatTestView.swift @@ -0,0 +1,41 @@ +// +// This source file is part of the Stanford Spezi open-source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import SpeziChat +import SwiftUI + + +struct ChatTestView: View { + @State private var chat: Chat = [ + ChatEntity(role: .assistant, content: "Assistant Message!") + ] + + + var body: some View { + ChatView($chat) + .navigationTitle("SpeziChat") + .padding(.top, 16) + .onChange(of: chat) { _, newValue in + /// Append a new assistant message to the chat after sleeping for 1 second. + if newValue.last?.role == .user { + Task { + try await Task.sleep(for: .seconds(1)) + + await MainActor.run { + chat.append(.init(role: .assistant, content: "Assistant Message Response!")) + } + } + } + } + } +} + + +#Preview { + ChatTestView() +} diff --git a/Tests/UITests/TestApp/TestApp.swift b/Tests/UITests/TestApp/TestApp.swift index 7586066..25f33f2 100644 --- a/Tests/UITests/TestApp/TestApp.swift +++ b/Tests/UITests/TestApp/TestApp.swift @@ -6,21 +6,16 @@ // SPDX-License-Identifier: MIT // -import Spezi import SwiftUI @main struct UITestsApp: App { - @UIApplicationDelegateAdaptor(TestAppDelegate.self) var appDelegate - - var body: some Scene { WindowGroup { NavigationStack { - Text("Spezi Chat") + ChatTestView() } - .spezi(appDelegate) } } } diff --git a/Tests/UITests/TestApp/TestAppDelegate.swift b/Tests/UITests/TestApp/TestAppDelegate.swift deleted file mode 100644 index 776a88d..0000000 --- a/Tests/UITests/TestApp/TestAppDelegate.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// This source file is part of the Stanford Spezi open-source project -// -// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) -// -// SPDX-License-Identifier: MIT -// - -import Spezi -import SpeziChat -import SwiftUI - - -class TestAppDelegate: SpeziAppDelegate { - override var configuration: Configuration { - Configuration { - Chat() - } - } -} diff --git a/Tests/UITests/TestAppUITests/SpeziChatTests.swift b/Tests/UITests/TestAppUITests/SpeziChatTests.swift deleted file mode 100644 index ef95ae3..0000000 --- a/Tests/UITests/TestAppUITests/SpeziChatTests.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// This source file is part of the Stanford Spezi open-source project -// -// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) -// -// SPDX-License-Identifier: MIT -// - -import XCTest -import XCTestExtensions - - -final class SpeziChatTests: XCTestCase { - func testSpeziChat() throws { - let app = XCUIApplication() - app.launch() - - XCTAssert(app.staticTexts["Spezi Chat"].waitForExistence(timeout: 2)) - } -} diff --git a/Tests/UITests/TestAppUITests/TestAppUITests.swift b/Tests/UITests/TestAppUITests/TestAppUITests.swift new file mode 100644 index 0000000..196b194 --- /dev/null +++ b/Tests/UITests/TestAppUITests/TestAppUITests.swift @@ -0,0 +1,38 @@ +// +// This source file is part of the Stanford Spezi open-source project +// +// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +// +// SPDX-License-Identifier: MIT +// + +import XCTest +import XCTestExtensions + + +class TestAppUITests: XCTestCase { + override func setUpWithError() throws { + try super.setUpWithError() + + continueAfterFailure = false + } + + + func testSpeziChat() throws { + let app = XCUIApplication() + app.launch() + + XCTAssert(app.staticTexts["SpeziChat"].waitForExistence(timeout: 1)) + XCTAssert(app.staticTexts["Assistant Message!"].waitForExistence(timeout: 1)) + + try app.textViews["Message Input Textfield"].enter(value: "User Message!", dismissKeyboard: false) + XCTAssert(app.buttons["Send Message"].waitForExistence(timeout: 5)) + app.buttons["Send Message"].tap() + + XCTAssert(app.staticTexts["User Message!"].waitForExistence(timeout: 5)) + + sleep(1) + + XCTAssert(app.staticTexts["Assistant Message Response!"].waitForExistence(timeout: 5)) + } +} diff --git a/Tests/UITests/UITests.xcodeproj/project.pbxproj b/Tests/UITests/UITests.xcodeproj/project.pbxproj index 97448ef..4d3922a 100644 --- a/Tests/UITests/UITests.xcodeproj/project.pbxproj +++ b/Tests/UITests/UITests.xcodeproj/project.pbxproj @@ -7,13 +7,12 @@ objects = { /* Begin PBXBuildFile section */ - 2F64EA852A86B347006789D0 /* TestAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F64EA812A86B346006789D0 /* TestAppDelegate.swift */; }; - 2F64EA882A86B36C006789D0 /* TestApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F64EA872A86B36C006789D0 /* TestApp.swift */; }; - 2F64EA8B2A86B3DE006789D0 /* XCTestExtensions in Frameworks */ = {isa = PBXBuildFile; productRef = 2F64EA8A2A86B3DE006789D0 /* XCTestExtensions */; }; - 2F64EA8E2A86B46B006789D0 /* Spezi in Frameworks */ = {isa = PBXBuildFile; productRef = 2F64EA8D2A86B46B006789D0 /* Spezi */; }; - 2F68C3C8292EA52000B3E12C /* SpeziChat in Frameworks */ = {isa = PBXBuildFile; productRef = 2F68C3C7292EA52000B3E12C /* SpeziChat */; }; 2F6D139A28F5F386007C25D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2F6D139928F5F386007C25D6 /* Assets.xcassets */; }; - 2FA43E922AE057CA009B1B2C /* SpeziChatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FA43E912AE057CA009B1B2C /* SpeziChatTests.swift */; }; + 2F8A431329130A8C005D2B8F /* TestAppUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F8A431229130A8C005D2B8F /* TestAppUITests.swift */; }; + 2FA7382C290ADFAA007ACEB9 /* TestApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FA7382B290ADFAA007ACEB9 /* TestApp.swift */; }; + 971D0E1D2B005DED003AD89E /* ChatTestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971D0E1C2B005DED003AD89E /* ChatTestView.swift */; }; + 971D0E1F2B005E9C003AD89E /* SpeziChat in Frameworks */ = {isa = PBXBuildFile; productRef = 971D0E1E2B005E9C003AD89E /* SpeziChat */; }; + 97911AFB2B01A27D003AEEF5 /* XCTestExtensions in Frameworks */ = {isa = PBXBuildFile; productRef = 97911AFA2B01A27D003AEEF5 /* XCTestExtensions */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -40,14 +39,15 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 2F64EA812A86B346006789D0 /* TestAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestAppDelegate.swift; sourceTree = ""; }; - 2F64EA872A86B36C006789D0 /* TestApp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestApp.swift; sourceTree = ""; }; 2F68C3C6292E9F8F00B3E12C /* SpeziChat */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = SpeziChat; path = ../..; sourceTree = ""; }; 2F6D139228F5F384007C25D6 /* TestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TestApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 2F6D139928F5F386007C25D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 2F6D13AC28F5F386007C25D6 /* TestAppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TestAppUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 2FA43E912AE057CA009B1B2C /* SpeziChatTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpeziChatTests.swift; sourceTree = ""; }; + 2F8A431229130A8C005D2B8F /* TestAppUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestAppUITests.swift; sourceTree = ""; }; + 2FA7382B290ADFAA007ACEB9 /* TestApp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestApp.swift; sourceTree = ""; }; 2FB0758A299DDB9000C0B37F /* TestApp.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = TestApp.xctestplan; sourceTree = ""; }; + 971D0E1C2B005DED003AD89E /* ChatTestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTestView.swift; sourceTree = ""; }; + 9794D9552B01BC2200DC02FB /* Speech.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Speech.framework; path = System/Library/Frameworks/Speech.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -55,8 +55,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2F64EA8E2A86B46B006789D0 /* Spezi in Frameworks */, - 2F68C3C8292EA52000B3E12C /* SpeziChat in Frameworks */, + 971D0E1F2B005E9C003AD89E /* SpeziChat in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -64,7 +63,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2F64EA8B2A86B3DE006789D0 /* XCTestExtensions in Frameworks */, + 97911AFB2B01A27D003AEEF5 /* XCTestExtensions in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,8 +94,8 @@ 2F6D139428F5F384007C25D6 /* TestApp */ = { isa = PBXGroup; children = ( - 2F64EA872A86B36C006789D0 /* TestApp.swift */, - 2F64EA812A86B346006789D0 /* TestAppDelegate.swift */, + 2FA7382B290ADFAA007ACEB9 /* TestApp.swift */, + 971D0E1C2B005DED003AD89E /* ChatTestView.swift */, 2F6D139928F5F386007C25D6 /* Assets.xcassets */, ); path = TestApp; @@ -105,7 +104,7 @@ 2F6D13AF28F5F386007C25D6 /* TestAppUITests */ = { isa = PBXGroup; children = ( - 2FA43E912AE057CA009B1B2C /* SpeziChatTests.swift */, + 2F8A431229130A8C005D2B8F /* TestAppUITests.swift */, ); path = TestAppUITests; sourceTree = ""; @@ -113,6 +112,7 @@ 2F6D13C228F5F3BE007C25D6 /* Frameworks */ = { isa = PBXGroup; children = ( + 9794D9552B01BC2200DC02FB /* Speech.framework */, ); name = Frameworks; sourceTree = ""; @@ -135,8 +135,7 @@ ); name = TestApp; packageProductDependencies = ( - 2F68C3C7292EA52000B3E12C /* SpeziChat */, - 2F64EA8D2A86B46B006789D0 /* Spezi */, + 971D0E1E2B005E9C003AD89E /* SpeziChat */, ); productName = Example; productReference = 2F6D139228F5F384007C25D6 /* TestApp.app */; @@ -157,7 +156,7 @@ ); name = TestAppUITests; packageProductDependencies = ( - 2F64EA8A2A86B3DE006789D0 /* XCTestExtensions */, + 97911AFA2B01A27D003AEEF5 /* XCTestExtensions */, ); productName = ExampleUITests; productReference = 2F6D13AC28F5F386007C25D6 /* TestAppUITests.xctest */; @@ -192,8 +191,7 @@ ); mainGroup = 2F6D138928F5F384007C25D6; packageReferences = ( - 2F64EA892A86B3DE006789D0 /* XCRemoteSwiftPackageReference "XCTestExtensions" */, - 2F64EA8C2A86B46B006789D0 /* XCRemoteSwiftPackageReference "Spezi" */, + 97911AF92B01A27D003AEEF5 /* XCRemoteSwiftPackageReference "XCTestExtensions" */, ); productRefGroup = 2F6D139328F5F384007C25D6 /* Products */; projectDirPath = ""; @@ -228,8 +226,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2F64EA852A86B347006789D0 /* TestAppDelegate.swift in Sources */, - 2F64EA882A86B36C006789D0 /* TestApp.swift in Sources */, + 971D0E1D2B005DED003AD89E /* ChatTestView.swift in Sources */, + 2FA7382C290ADFAA007ACEB9 /* TestApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -237,7 +235,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2FA43E922AE057CA009B1B2C /* SpeziChatTests.swift in Sources */, + 2F8A431329130A8C005D2B8F /* TestAppUITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -303,7 +301,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -358,7 +355,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -371,7 +367,6 @@ 2F6D13B728F5F386007C25D6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; @@ -381,18 +376,21 @@ ENABLE_PREVIEWS = YES; ENABLE_TESTING_SEARCH_PATHS = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSMicrophoneUsageDescription = "Microphone used to record voice for text input."; + INFOPLIST_KEY_NSSpeechRecognitionUsageDescription = "Speech recognition necessary for transcribing voice input."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezi.chat.testapp; + PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezichat.testapp; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator"; SUPPORTS_MACCATALYST = NO; @@ -408,7 +406,6 @@ 2F6D13B828F5F386007C25D6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; @@ -418,18 +415,21 @@ ENABLE_PREVIEWS = YES; ENABLE_TESTING_SEARCH_PATHS = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSMicrophoneUsageDescription = "Microphone used to record voice for text input."; + INFOPLIST_KEY_NSSpeechRecognitionUsageDescription = "Speech recognition necessary for transcribing voice input."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezi.chat.testapp; + PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezichat.testapp; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator"; SUPPORTS_MACCATALYST = NO; @@ -450,9 +450,10 @@ CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 637867499T; GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezi.chat.testapp.uitests; + PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezichat.testapp.uitests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -474,9 +475,10 @@ CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 637867499T; GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezi.chat.testapp.uitests; + PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezichat.testapp.uitests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -541,7 +543,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -554,7 +555,6 @@ 2FB07588299DDB6000C0B37F /* Test */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; @@ -564,18 +564,21 @@ ENABLE_PREVIEWS = YES; ENABLE_TESTING_SEARCH_PATHS = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSMicrophoneUsageDescription = "Microphone used to record voice for text input."; + INFOPLIST_KEY_NSSpeechRecognitionUsageDescription = "Speech recognition necessary for transcribing voice input."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezi.chat.testapp; + PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezichat.testapp; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator"; SUPPORTS_MACCATALYST = NO; @@ -596,9 +599,10 @@ CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 637867499T; GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezi.chat.testapp.uitests; + PRODUCT_BUNDLE_IDENTIFIER = edu.stanford.spezichat.testapp.uitests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -648,38 +652,25 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 2F64EA892A86B3DE006789D0 /* XCRemoteSwiftPackageReference "XCTestExtensions" */ = { + 97911AF92B01A27D003AEEF5 /* XCRemoteSwiftPackageReference "XCTestExtensions" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/StanfordBDHG/XCTestExtensions.git"; + repositoryURL = "https://github.com/StanfordBDHG/XCTestExtensions"; requirement = { kind = upToNextMinorVersion; - minimumVersion = 0.4.6; - }; - }; - 2F64EA8C2A86B46B006789D0 /* XCRemoteSwiftPackageReference "Spezi" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/StanfordSpezi/Spezi.git"; - requirement = { - kind = upToNextMinorVersion; - minimumVersion = 0.8.0; + minimumVersion = 0.4.7; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 2F64EA8A2A86B3DE006789D0 /* XCTestExtensions */ = { + 971D0E1E2B005E9C003AD89E /* SpeziChat */ = { isa = XCSwiftPackageProductDependency; - package = 2F64EA892A86B3DE006789D0 /* XCRemoteSwiftPackageReference "XCTestExtensions" */; - productName = XCTestExtensions; - }; - 2F64EA8D2A86B46B006789D0 /* Spezi */ = { - isa = XCSwiftPackageProductDependency; - package = 2F64EA8C2A86B46B006789D0 /* XCRemoteSwiftPackageReference "Spezi" */; - productName = Spezi; + productName = SpeziChat; }; - 2F68C3C7292EA52000B3E12C /* SpeziChat */ = { + 97911AFA2B01A27D003AEEF5 /* XCTestExtensions */ = { isa = XCSwiftPackageProductDependency; - productName = SpeziChat; + package = 97911AF92B01A27D003AEEF5 /* XCRemoteSwiftPackageReference "XCTestExtensions" */; + productName = XCTestExtensions; }; /* End XCSwiftPackageProductDependency section */ }; diff --git a/Tests/UITests/UITests.xcodeproj/xcshareddata/xcschemes/TestApp.xcscheme b/Tests/UITests/UITests.xcodeproj/xcshareddata/xcschemes/TestApp.xcscheme index c151808..25cc221 100644 --- a/Tests/UITests/UITests.xcodeproj/xcshareddata/xcschemes/TestApp.xcscheme +++ b/Tests/UITests/UITests.xcodeproj/xcshareddata/xcschemes/TestApp.xcscheme @@ -37,7 +37,7 @@