Skip to content

Commit 3fa6dff

Browse files
committed
Release 1.2.3
1 parent 1d3d813 commit 3fa6dff

8 files changed

Lines changed: 56 additions & 20 deletions

File tree

Example/ButterflyImagingKitExample.xcodeproj/project.pbxproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@
311311
"$(inherited)",
312312
"@executable_path/Frameworks",
313313
);
314-
MARKETING_VERSION = 1.2.2;
314+
MARKETING_VERSION = 1.2.3;
315315
PRODUCT_NAME = "$(TARGET_NAME)";
316316
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
317317
SUPPORTS_MACCATALYST = NO;
@@ -344,7 +344,7 @@
344344
"$(inherited)",
345345
"@executable_path/Frameworks",
346346
);
347-
MARKETING_VERSION = 1.2.2;
347+
MARKETING_VERSION = 1.2.3;
348348
PRODUCT_NAME = "$(TARGET_NAME)";
349349
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
350350
SUPPORTS_MACCATALYST = NO;
@@ -384,7 +384,7 @@
384384
repositoryURL = "https://github.com/ButterflyNetwork/ImagingSDK-iOS";
385385
requirement = {
386386
kind = exactVersion;
387-
version = 1.2.2;
387+
version = 1.2.3;
388388
};
389389
};
390390
/* End XCRemoteSwiftPackageReference section */

Example/ButterflyImagingKitExample/ButterflyImagingKitExampleApp.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// Copyright 2012-2024 (C) Butterfly Network, Inc.
1+
/// Copyright 2012-2025 (C) Butterfly Network, Inc.
22

33
import SwiftUI
44

Example/ButterflyImagingKitExample/ContentView.swift

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// Copyright 2012-2024 (C) Butterfly Network, Inc.
1+
/// Copyright 2012-2025 (C) Butterfly Network, Inc.
22

33
import ButterflyImagingKit
44
import SwiftUI
@@ -32,8 +32,7 @@ struct ContentView: View {
3232
await model.connectSimulatedProbe()
3333
}
3434
}
35-
} else if model.probe?.state == .ready,
36-
!model.availablePresets.isEmpty {
35+
} else if !model.availablePresets.isEmpty {
3736
if model.probe?.isSimulated == true {
3837
Button("Disconnect simulated probe") {
3938
Task {
@@ -190,8 +189,15 @@ struct ContentView: View {
190189
availablePresets = state.availablePresets
191190
}
192191

193-
Task { try? await imaging.startup(clientKey: clientKey) }
192+
Task { try? await model.startup(clientKey: clientKey) }
194193
}
194+
.alert(
195+
"Error",
196+
isPresented: $model.showingAlert,
197+
presenting: model.alertError,
198+
actions: { _ in Button("OK", role: .cancel) { model.clearError() } },
199+
message: { detail in Text("Error: \(String(describing: detail))") }
200+
)
195201
}
196202
}
197203

Example/ButterflyImagingKitExample/Helpers.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// Copyright 2012-2024 (C) Butterfly Network, Inc.
1+
/// Copyright 2012-2025 (C) Butterfly Network, Inc.
22

33
import ButterflyImagingKit
44
import Foundation

Example/ButterflyImagingKitExample/Model.swift

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// Copyright 2012-2024 (C) Butterfly Network, Inc.
1+
/// Copyright 2012-2025 (C) Butterfly Network, Inc.
22

33
import ButterflyImagingKit
44
import UIKit
@@ -23,6 +23,9 @@ class Model: ObservableObject {
2323
@Published var updating = false
2424
@Published var updateProgress: TimedProgress?
2525

26+
@Published var alertError: Error? { didSet { showingAlert = (alertError != nil) } }
27+
@Published var showingAlert: Bool = false
28+
2629
private let imaging = ButterflyImaging.shared
2730

2831
static var shared: Model = Model()
@@ -67,9 +70,14 @@ class Model: ObservableObject {
6770
stage = .ready
6871
}
6972
case .startingImaging:
73+
// If we have an image then we are “imaging”.
7074
if image != nil {
7175
stage = .imaging
7276
}
77+
// If the user disconnects the probe while we are starting imaging, revert.
78+
if state.probe.state == .disconnected {
79+
stopImaging()
80+
}
7381
case .imaging:
7482
if state.probe.state == .disconnected {
7583
stopImaging()
@@ -86,12 +94,21 @@ class Model: ObservableObject {
8694
var parameters: PresetParameters? = nil
8795

8896
// Send custom initial depth if it represents a change from the default one.
89-
if let preset,
90-
let depth,
91-
preset.defaultDepth.converted(to: .centimeters).value != depth {
97+
if
98+
let preset,
99+
let depth,
100+
preset.defaultDepth.converted(to: .centimeters).value != depth
101+
{
92102
parameters = PresetParameters(depth: .centimeters(depth))
93103
}
94-
Task { try? await imaging.startImaging(preset: preset, parameters: parameters) }
104+
Task {
105+
do {
106+
try await imaging.startImaging(preset: preset, parameters: parameters)
107+
} catch {
108+
alertError = error
109+
print("Failed to startImaging, with error: \(error)")
110+
}
111+
}
95112
}
96113

97114
func connectSimulatedProbe() async {
@@ -106,6 +123,15 @@ class Model: ObservableObject {
106123
inProgress = false
107124
}
108125

126+
func startup(clientKey: String) async throws {
127+
do {
128+
try await imaging.startup(clientKey: clientKey)
129+
} catch {
130+
alertError = error
131+
print("Failed to start up backend, with error: \(error)")
132+
}
133+
}
134+
109135
func stopImaging() {
110136
stage = .ready
111137
imaging.stopImaging()
@@ -127,4 +153,8 @@ class Model: ObservableObject {
127153
}
128154
updating = false
129155
}
156+
157+
func clearError() {
158+
alertError = nil
159+
}
130160
}

Example/ButterflyImagingKitExample/QuickStartView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// Copyright 2012-2024 (C) Butterfly Network, Inc.
1+
/// Copyright 2012-2025 (C) Butterfly Network, Inc.
22

33
import ButterflyImagingKit
44
import SwiftUI

Package.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import PackageDescription
44

5-
// Release: https://github.com/ButterflyNetwork/ButterflySDKIOS/releases/tag/1.2.2
6-
let binaryUrl = "https://sdk.butterflynetwork.com/garden/ButterflyImagingKit/1.2.2/ButterflyImagingKit.xcframework.zip"
7-
let binaryChecksum = "9726bddcd5566173961bde4e180dae7ac6e32b9fa73bca781cf331a6e53eebd5"
5+
// Release: https://github.com/ButterflyNetwork/ButterflySDKIOS/releases/tag/1.2.3
6+
let binaryUrl = "https://sdk.butterflynetwork.com/garden/ButterflyImagingKit/1.2.3/ButterflyImagingKit.xcframework.zip"
7+
let binaryChecksum = "aafa340a3224a9c0c8af3ff040ac9d6d1792bde11b2cc9095a26e62deba9edef"
88

99
let package = Package(
1010
name: "Butterfly",

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The SDK consists of a few key objects:
1919

2020
## Requirements
2121

22-
* Built and tested using Xcode 15.0.1 and macOS Sonoma 14.5.
22+
* Built and tested using Xcode 16.0 and macOS Sonoma 14.6.
2323
* Available for iOS 16.0 or newer.
2424
* Apps developed using the SDK should only be installed on [Butterfly supported devices](https://support.butterflynetwork.com/hc/en-us/sections/360004521832-Mobile-Devices).
2525
* Not compatible with beta software.
@@ -122,4 +122,4 @@ And you should be good to go!
122122

123123
## License
124124

125-
Copyright 2012-2024 (C) Butterfly Network, Inc.
125+
Copyright 2012-2025 (C) Butterfly Network, Inc.

0 commit comments

Comments
 (0)