From 917c7a4d2fe17f30a66e10366b375e86d321bf8b Mon Sep 17 00:00:00 2001 From: wangdl Date: Tue, 2 Jun 2026 19:33:45 +0800 Subject: [PATCH] feat: iOS integration docs + demo app skeleton --- .../ios/demo/MaterialReaderDemo/DemoApp.swift | 75 +++++++ docs/ios-integration.md | 193 +++++++++++------- 2 files changed, 197 insertions(+), 71 deletions(-) create mode 100644 bindings/ios/demo/MaterialReaderDemo/DemoApp.swift diff --git a/bindings/ios/demo/MaterialReaderDemo/DemoApp.swift b/bindings/ios/demo/MaterialReaderDemo/DemoApp.swift new file mode 100644 index 0000000..668309d --- /dev/null +++ b/bindings/ios/demo/MaterialReaderDemo/DemoApp.swift @@ -0,0 +1,75 @@ +import SwiftUI +import ZxDocumentRuntime + +/// Minimal demo app to verify zhixi-document-runtime integration. +@main +struct MaterialReaderDemo: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} + +struct ContentView: View { + @State private var filePath = "" + @State private var result = "" + @State private var events: [ReadingEvent] = [] + + var body: some View { + NavigationStack { + List { + Section("File Type Detection") { + TextField("File path", text: $filePath) + .font(.system(size: 14, design: .monospaced)) + Button("Detect Type") { + detect() + } + if !result.isEmpty { + Text(result) + .font(.system(size: 14)) + .foregroundColor(.secondary) + } + } + + Section("Reading Events") { + if events.isEmpty { + Text("No events yet") + .foregroundColor(.secondary) + } else { + ForEach(0..