123 lines
3.9 KiB
Markdown
123 lines
3.9 KiB
Markdown
# RoomScan AI
|
|
|
|
RoomScan AI ist ein Starterprojekt fuer eine skalierbare iOS App zur Erstellung von 3D Raumscans. Die App soll Nutzer Schritt fuer Schritt durch einen Raumscan fuehren, Hinweise zu Geschwindigkeit, Richtung, Startpunkt und Fehlern anzeigen und am Ende ein 3D Raum-Modell visualisieren.
|
|
|
|
Die erste Version ist bewusst als React Native und Expo TypeScript Projekt aufgebaut. Sie nutzt nur notwendige Basis- und Navigationspakete, damit spaeter per `expo prebuild` sauber in ein natives iOS/Xcode-Projekt migriert werden kann.
|
|
|
|
## Features
|
|
|
|
- HomeScreen mit Projektziel und Scan-Ablauf
|
|
- ScanScreen mit Mock-Kameraansicht
|
|
- Instructions Overlay fuer gefuehrte Hinweise wie `Langsamer bewegen` oder `Richtung ändern`
|
|
- Ergebnis Screen mit Mock 3D Ansicht
|
|
- Stack Navigation mit TypeScript-Typen
|
|
- Vorbereitete Ordnerstruktur fuer Komponenten, Screens, Navigation, Services und Theme
|
|
|
|
## Tech Stack
|
|
|
|
- React Native
|
|
- Expo
|
|
- TypeScript
|
|
- React Navigation
|
|
- iOS-Zielplattform mit spaeterer Xcode-Erweiterung
|
|
- Geplante native Integration: ARKit und RoomPlan
|
|
|
|
## Projektstruktur
|
|
|
|
```text
|
|
roomscan-ai/
|
|
├── App.tsx
|
|
├── app.json
|
|
├── package.json
|
|
├── src/
|
|
│ ├── components/
|
|
│ │ ├── InstructionOverlay.tsx
|
|
│ │ ├── PrimaryButton.tsx
|
|
│ │ └── ScanProgressCard.tsx
|
|
│ ├── navigation/
|
|
│ │ ├── AppNavigator.tsx
|
|
│ │ └── types.ts
|
|
│ ├── screens/
|
|
│ │ ├── HomeScreen.tsx
|
|
│ │ ├── ResultScreen.tsx
|
|
│ │ └── ScanScreen.tsx
|
|
│ ├── services/
|
|
│ │ └── scanGuidance.ts
|
|
│ └── theme/
|
|
│ └── colors.ts
|
|
└── README.md
|
|
```
|
|
|
|
## Installation
|
|
|
|
Voraussetzungen:
|
|
|
|
- Node.js
|
|
- npm
|
|
- Expo CLI ueber `npx expo`
|
|
- Fuer native iOS Builds spaeter: macOS, Xcode und Apple Developer Account
|
|
|
|
Abhaengigkeiten installieren:
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
Entwicklungsserver starten:
|
|
|
|
```bash
|
|
npm run start
|
|
```
|
|
|
|
iOS Preview starten:
|
|
|
|
```bash
|
|
npm run ios
|
|
```
|
|
|
|
Hinweis: Auf Windows kann `npm run ios` kein lokales iOS-Simulator-Build starten. Fuer echte iOS-Entwicklung wird macOS mit Xcode benoetigt.
|
|
|
|
## Expo Prebuild und Xcode Vorbereitung
|
|
|
|
Das Projekt ist so vorbereitet, dass spaeter ein natives iOS-Projekt erzeugt werden kann:
|
|
|
|
```bash
|
|
npm run prebuild:ios
|
|
```
|
|
|
|
Dabei wird der Ordner `ios/` generiert. Dieser Ordner ist aktuell in `.gitignore` eingetragen, weil native Dateien erst versioniert werden sollten, wenn die RoomPlan-Integration konkret umgesetzt wird.
|
|
|
|
Wichtige iOS-Vorbereitungen in `app.json`:
|
|
|
|
- `bundleIdentifier`: `com.roomscanai.app`
|
|
- `NSCameraUsageDescription` fuer die spaetere Kamera- und RoomPlan-Nutzung
|
|
- `supportsTablet`: aktiviert fuer iPad-Kompatibilitaet
|
|
|
|
## RoomPlan Integration
|
|
|
|
RoomPlan ist eine native iOS-Technologie von Apple und wird nicht direkt durch Expo Go bereitgestellt. Die geplante Integration erfolgt spaeter ueber ein natives iOS-Modul oder eine Xcode-Erweiterung nach `expo prebuild`.
|
|
|
|
Geplanter Integrationspfad:
|
|
|
|
- Expo App als UI- und Navigationsbasis beibehalten
|
|
- iOS-Projekt per `expo prebuild --platform ios` erzeugen
|
|
- Native RoomPlan Capture Session in Swift implementieren
|
|
- Scan-Daten an React Native uebergeben
|
|
- Ergebnisdaten als 3D Modell oder strukturierte Raumdaten anzeigen
|
|
|
|
## Roadmap
|
|
|
|
- Mock UI fuer Scan Flow stabilisieren
|
|
- Gefuehrte Scan-Hinweise als State Machine modellieren
|
|
- Fehler- und Qualitaetsstatus fuer Scans erweitern
|
|
- Persistenz fuer Scan-Ergebnisse vorbereiten
|
|
- Native RoomPlan Integration in iOS/Xcode umsetzen
|
|
- 3D Ergebnisansicht mit echten RoomPlan-Daten anbinden
|
|
- Exportoptionen fuer Raumdaten pruefen
|
|
- TestFlight Build vorbereiten
|
|
- iOS App Store Veröffentlichung vorbereiten
|
|
|
|
## Ziel
|
|
|
|
Ziel ist eine saubere, erweiterbare iOS App fuer gefuehrte 3D Raumscans mit einem klaren Pfad zur nativen ARKit- und RoomPlan-Integration und anschliessender Veröffentlichung im iOS App Store.
|