feat(mobile): onnxruntime-react-native in EAS Build integrieren #79

Closed
opened 2026-04-26 09:10:57 +02:00 by admin-mrrm · 1 comment
Owner

Ziel

onnxruntime-react-native als native Abhängigkeit einbinden und den NNAPI-Backend auf Android aktivieren, ohne den Expo Managed Workflow zu verlassen.

Abhängigkeit

Setzt #77 (Spike) voraus.

Hintergrund

onnxruntime-react-native ist ein nativer Turbo-Module und benötigt EAS Build. Es bringt einen automatischen Backend-Selector mit:

  • Android: NNAPI (NPU/GPU) → Fallback CPU
  • iOS: CoreML → Fallback CPU

Da das Projekt bereits expo-image-picker nutzt, ist ein Development Build bereits Voraussetzung.

Aufgaben

Package

  • onnxruntime-react-native zu apps/mobile/package.json hinzufügen
  • Kompatible Version mit aktuellem Expo SDK prüfen

EAS Build

  • apps/mobile/eas.json – Build-Profile für Development und Production
  • Sicherstellen dass das native Modul korrekt gelinkt wird (expo-modules-core Kompatibilität)
  • Testbuild auf Android durchführen

Modell-Download bei App-Start

  • Modell-Dateien beim ersten Start herunterladen und in expo-file-system cachen
  • Download-Progress anzeigen (einmalig, beim ersten OCR-Versuch)
  • Integritätsprüfung via SHA256

Feature-Flag

  • ON_DEVICE_OCR_ENABLED Config-Flag – erlaubt schrittweises Rollout

Akzeptanzkriterien

  • App baut mit onnxruntime-react-native ohne Fehler
  • NNAPI-Backend wird auf Android erkannt (Logging beim Start)
  • Modell wird beim ersten Aufruf heruntergeladen und gecacht
## Ziel `onnxruntime-react-native` als native Abhängigkeit einbinden und den NNAPI-Backend auf Android aktivieren, ohne den Expo Managed Workflow zu verlassen. ## Abhängigkeit Setzt #77 (Spike) voraus. ## Hintergrund `onnxruntime-react-native` ist ein nativer Turbo-Module und benötigt EAS Build. Es bringt einen automatischen Backend-Selector mit: - Android: NNAPI (NPU/GPU) → Fallback CPU - iOS: CoreML → Fallback CPU Da das Projekt bereits `expo-image-picker` nutzt, ist ein Development Build bereits Voraussetzung. ## Aufgaben ### Package - [ ] `onnxruntime-react-native` zu `apps/mobile/package.json` hinzufügen - [ ] Kompatible Version mit aktuellem Expo SDK prüfen ### EAS Build - [ ] `apps/mobile/eas.json` – Build-Profile für Development und Production - [ ] Sicherstellen dass das native Modul korrekt gelinkt wird (`expo-modules-core` Kompatibilität) - [ ] Testbuild auf Android durchführen ### Modell-Download bei App-Start - [ ] Modell-Dateien beim ersten Start herunterladen und in `expo-file-system` cachen - [ ] Download-Progress anzeigen (einmalig, beim ersten OCR-Versuch) - [ ] Integritätsprüfung via SHA256 ### Feature-Flag - [ ] `ON_DEVICE_OCR_ENABLED` Config-Flag – erlaubt schrittweises Rollout ## Akzeptanzkriterien - [ ] App baut mit `onnxruntime-react-native` ohne Fehler - [ ] NNAPI-Backend wird auf Android erkannt (Logging beim Start) - [ ] Modell wird beim ersten Aufruf heruntergeladen und gecacht
Collaborator

Done-by-spike #77: onnxruntime-react-native v1.22 läuft in EAS-Dev-Build, ORT-RN-Polyfills in apps/mobile/src/services/nli-classifier-polyfill.ts integriert. KV-cache-Decoder bit-identisch validiert, 449 ms warm-latency auf Pixel 8a.

Done-by-spike #77: onnxruntime-react-native v1.22 läuft in EAS-Dev-Build, ORT-RN-Polyfills in `apps/mobile/src/services/nli-classifier-polyfill.ts` integriert. KV-cache-Decoder bit-identisch validiert, 449 ms warm-latency auf Pixel 8a.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#79
No description provided.