Skip to content

Commit eb711e3

Browse files
authored
chore(ios): remove 'Experimental' naming and debug logs (#240)
- Rename `ExperimentalViewConfiguration` → `ViewConfiguration`, `ExperimentalBindData` → `BindData`, `ExperimentalAssetLoader` → `AssetLoader` - Rename `toExperimentalFit` → `toRiveFit`, `toExperimentalAlignment` → `toRiveAlignment` - Remove `RCTLog` debug lines from `RiveReactNativeView` and `HybridRiveFileFactory` - Remove `RCTLogInfo` from `AssetLoader` — error/warn logs are sufficient - Update "Experimental API" comments to "concurrency API"
1 parent e443ed0 commit eb711e3

6 files changed

Lines changed: 19 additions & 39 deletions
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ enum AssetType {
3131
}
3232

3333
@MainActor
34-
final class ExperimentalAssetLoader {
34+
final class AssetLoader {
3535

3636
static func registerAssets(
3737
_ referencedAssets: ReferencedAssetsType?,
@@ -161,25 +161,21 @@ final class ExperimentalAssetLoader {
161161
type: AssetType,
162162
worker: Worker
163163
) async throws {
164-
RCTLogInfo("ExperimentalAssetLoader: Registering \(type) asset '\(name)' (\(data.count) bytes)")
165164
switch type {
166165
case .image:
167166
worker.removeGlobalImageAsset(name: name)
168167
let image = try await worker.decodeImage(from: data)
169168
worker.addGlobalImageAsset(image, name: name)
170-
RCTLogInfo("ExperimentalAssetLoader: Image '\(name)' registered successfully")
171169

172170
case .font:
173171
worker.removeGlobalFontAsset(name)
174172
let font = try await worker.decodeFont(from: data)
175173
worker.addGlobalFontAsset(font, name: name)
176-
RCTLogInfo("ExperimentalAssetLoader: Font '\(name)' registered successfully")
177174

178175
case .audio:
179176
worker.removeGlobalAudioAsset(name: name)
180177
let audio = try await worker.decodeAudio(from: data)
181178
worker.addGlobalAudioAsset(audio, name: name)
182-
RCTLogInfo("ExperimentalAssetLoader: Audio '\(name)' registered successfully")
183179
}
184180
}
185181
}

ios/new/HybridRiveFileFactory.swift

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,10 @@ final class HybridRiveFileFactory: HybridRiveFileFactorySpec, @unchecked Sendabl
2020
guard let fileURL = URL(string: url) else {
2121
throw RuntimeError.error(withMessage: "Invalid URL: \(url)")
2222
}
23-
RCTLog("[HybridRiveFileFactory] fromURL: downloading \(url)")
2423
let data = try await HTTPDataLoader.shared.downloadData(from: fileURL)
25-
RCTLog("[HybridRiveFileFactory] fromURL: downloaded \(data.count) bytes")
2624
let worker = try await HybridRiveFileFactory.sharedWorkerTask.value
27-
RCTLog("[HybridRiveFileFactory] fromURL: got shared worker")
28-
await ExperimentalAssetLoader.registerAssets(referencedAssets, on: worker)
25+
await AssetLoader.registerAssets(referencedAssets, on: worker)
2926
let file = try await File(source: .data(data), worker: worker)
30-
RCTLog("[HybridRiveFileFactory] fromURL: created file")
3127
return HybridRiveFile(file: file, worker: worker)
3228
}
3329
}
@@ -44,7 +40,7 @@ final class HybridRiveFileFactory: HybridRiveFileFactorySpec, @unchecked Sendabl
4440
}
4541
let data = try FileDataLoader().loadData(from: url)
4642
let worker = try await HybridRiveFileFactory.sharedWorkerTask.value
47-
await ExperimentalAssetLoader.registerAssets(referencedAssets, on: worker)
43+
await AssetLoader.registerAssets(referencedAssets, on: worker)
4844
let file = try await File(source: .data(data), worker: worker)
4945
return HybridRiveFile(file: file, worker: worker)
5046
}
@@ -58,7 +54,7 @@ final class HybridRiveFileFactory: HybridRiveFileFactorySpec, @unchecked Sendabl
5854
throw RuntimeError.error(withMessage: "Could not find Rive file: \(resource).riv")
5955
}
6056
let worker = try await HybridRiveFileFactory.sharedWorkerTask.value
61-
await ExperimentalAssetLoader.registerAssets(referencedAssets, on: worker)
57+
await AssetLoader.registerAssets(referencedAssets, on: worker)
6258
let file = try await File(source: .local(resource, nil), worker: worker)
6359
return HybridRiveFile(file: file, worker: worker)
6460
}
@@ -68,13 +64,10 @@ final class HybridRiveFileFactory: HybridRiveFileFactorySpec, @unchecked Sendabl
6864
throws -> Promise<(any HybridRiveFileSpec)>
6965
{
7066
let data = bytes.toData(copyIfNeeded: true)
71-
RCTLog("[HybridRiveFileFactory] fromBytes: got \(data.count) bytes")
7267
return Promise.async {
7368
let worker = try await HybridRiveFileFactory.sharedWorkerTask.value
74-
RCTLog("[HybridRiveFileFactory] fromBytes: got shared worker")
75-
await ExperimentalAssetLoader.registerAssets(referencedAssets, on: worker)
69+
await AssetLoader.registerAssets(referencedAssets, on: worker)
7670
let file = try await File(source: .data(data), worker: worker)
77-
RCTLog("[HybridRiveFileFactory] fromBytes: created file")
7871
return HybridRiveFile(file: file, worker: worker)
7972
}
8073
}

ios/new/HybridRiveView.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ typealias HybridDataBindMode = Variant__any_HybridViewModelInstanceSpec__DataBin
1111

1212
extension Optional
1313
where Wrapped == HybridDataBindMode {
14-
func toExperimentalBindData() throws -> ExperimentalBindData {
14+
func toBindData() throws -> BindData {
1515
guard let value = self else {
1616
return .auto
1717
}
@@ -195,13 +195,13 @@ class HybridRiveView: HybridRiveViewSpec {
195195
return
196196
}
197197

198-
let config = ExperimentalViewConfiguration(
198+
let config = ViewConfiguration(
199199
artboardName: artboardName,
200200
stateMachineName: stateMachineName,
201201
autoPlay: autoPlay ?? DefaultConfiguration.autoPlay,
202202
file: riveFile,
203-
fit: toExperimentalFit(fit, alignment: alignment, layoutScaleFactor: layoutScaleFactor),
204-
bindData: try dataBind.toExperimentalBindData()
203+
fit: toRiveFit(fit, alignment: alignment, layoutScaleFactor: layoutScaleFactor),
204+
bindData: try dataBind.toBindData()
205205
)
206206

207207
try MainActor.assumeIsolated {
@@ -222,12 +222,12 @@ class HybridRiveView: HybridRiveViewSpec {
222222
private var initialUpdate = true
223223

224224
// MARK: Helpers
225-
private func toExperimentalFit(
225+
private func toRiveFit(
226226
_ fit: Fit?,
227227
alignment: Alignment?,
228228
layoutScaleFactor: Double?
229229
) -> RiveRuntime.Fit {
230-
let expAlignment = toExperimentalAlignment(alignment) ?? .center
230+
let expAlignment = toRiveAlignment(alignment) ?? .center
231231

232232
switch fit ?? .contain {
233233
case .fill: return .fill(alignment: expAlignment)
@@ -245,7 +245,7 @@ class HybridRiveView: HybridRiveViewSpec {
245245
}
246246
}
247247

248-
private func toExperimentalAlignment(_ alignment: Alignment?) -> RiveRuntime.Alignment? {
248+
private func toRiveAlignment(_ alignment: Alignment?) -> RiveRuntime.Alignment? {
249249
guard let alignment = alignment else { return nil }
250250

251251
switch alignment {

ios/new/HybridViewModelImageProperty.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,14 @@ class HybridViewModelImageProperty: HybridViewModelImagePropertySpec {
3030
do {
3131
let experimentalImage = try await worker.decodeImage(from: hybridImage.rawData)
3232
instance.setValue(of: prop, to: experimentalImage)
33-
RCTLogInfo("HybridViewModelImageProperty: Set image on path '\(prop.path)'")
3433
} catch {
3534
RCTLogError("HybridViewModelImageProperty: Failed to decode/set image: \(error)")
3635
}
3736
}
3837
}
3938

4039
func addListener(onChanged: @escaping () -> Void) throws -> () -> Void {
41-
// TODO: Experimental API image property listener - API changed, needs update
42-
// The triggerStream method may have been removed or renamed
40+
// TODO: image property listener not yet available in concurrency API
4341
return {}
4442
}
4543

ios/new/HybridViewModelListProperty.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ class HybridViewModelListProperty: HybridViewModelListPropertySpec {
77
private let worker: Worker
88
private var listenerTasks: [UUID: Task<Void, Never>] = [:]
99

10-
// Note: Experimental API doesn't validate property paths - non-existent properties
11-
// return garbage values instead of throwing. This is a known limitation.
10+
// Note: the concurrency API doesn't validate property paths non-existent
11+
// properties return garbage values instead of throwing.
1212
init(instance: ViewModelInstance, path: String, worker: Worker) {
1313
self.vmiInstance = instance
1414
self.prop = ListProperty(path: path)

ios/new/RiveReactNativeView.swift

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@ import RiveRuntime
22
import NitroModules
33
import UIKit
44

5-
enum ExperimentalBindData {
5+
enum BindData {
66
case none
77
case auto
88
case instance(ViewModelInstance)
99
case byName(String)
1010
}
1111

12-
struct ExperimentalViewConfiguration {
12+
struct ViewConfiguration {
1313
let artboardName: String?
1414
let stateMachineName: String?
1515
let autoPlay: Bool
1616
let file: File
1717
let fit: RiveRuntime.Fit
18-
let bindData: ExperimentalBindData
18+
let bindData: BindData
1919
}
2020

2121
@MainActor
@@ -38,9 +38,8 @@ class RiveReactNativeView: UIView {
3838
return true
3939
}
4040

41-
func configure(_ config: ExperimentalViewConfiguration, dataBindingChanged: Bool = false, reload: Bool = false, initialUpdate: Bool = false) {
41+
func configure(_ config: ViewConfiguration, dataBindingChanged: Bool = false, reload: Bool = false, initialUpdate: Bool = false) {
4242
dispatchPrecondition(condition: .onQueue(.main))
43-
RCTLog("[RiveReactNativeView] configure called - reload: \(reload), dataBindingChanged: \(dataBindingChanged), initialUpdate: \(initialUpdate)")
4443

4544
if reload {
4645
cleanup()
@@ -51,10 +50,7 @@ class RiveReactNativeView: UIView {
5150
configTask = Task { [weak self] in
5251
guard let self else { return }
5352
do {
54-
RCTLog("[RiveReactNativeView] Creating artboard: \(config.artboardName ?? "default")")
5553
let artboard = try await config.file.createArtboard(config.artboardName)
56-
57-
RCTLog("[RiveReactNativeView] Creating state machine: \(config.stateMachineName ?? "default")")
5854
let stateMachine = try await artboard.createStateMachine(config.stateMachineName)
5955

6056
let dataBind: RiveRuntime.DataBind
@@ -80,7 +76,6 @@ class RiveReactNativeView: UIView {
8076

8177
guard !Task.isCancelled else { return }
8278

83-
RCTLog("[RiveReactNativeView] Creating Rive instance...")
8479
let rive = try await RiveRuntime.Rive(
8580
file: config.file,
8681
artboard: artboard,
@@ -91,7 +86,6 @@ class RiveReactNativeView: UIView {
9186

9287
guard !Task.isCancelled else { return }
9388

94-
RCTLog("[RiveReactNativeView] Rive instance created successfully")
9589
self.riveInstance = rive
9690
self.setupRiveUIView(with: rive)
9791

@@ -106,7 +100,6 @@ class RiveReactNativeView: UIView {
106100
}
107101
self.viewReadyContinuations.removeAll()
108102
}
109-
RCTLog("[RiveReactNativeView] Configuration complete!")
110103
} catch {
111104
RCTLogError("[RiveReactNativeView] Failed to configure: \(error)")
112105
}

0 commit comments

Comments
 (0)