Grapevine_Disease_Detection/VinEye/package.json
Yanis 086de7c05c feat(scanner,ml): real TFLite inference + preload + flip camera + analyzing skeleton
ML
- Reinstall react-native-fast-tflite + react-native-nitro-modules and
  register the fast-tflite Expo plugin in app.json
- Wire model.ts to the real native module: dynamic require + lazy
  loadTensorflowModel (cached), softmax/argmax on output, build Detection
  with the project 0-100 confidence convention. Falls back to mockDetection
  on any load/inference failure so the app never breaks.
- Align preprocessing input size to 256x256 to match the Python
  MobileNetV2 export.

Scanner UX
- Preload the TFLite model on Scanner mount to avoid the ~1-2s decode hit
  on first capture
- Add a flip-front/back camera control with a toast warning that the rear
  camera gives better results
- Show a full-screen analyzing skeleton overlay while inference runs
- Memoize ConfidenceMeter color into a single computed value

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 11:31:17 +02:00

77 lines
2.2 KiB
JSON

{
"name": "vineye",
"version": "1.0.0",
"main": "index.ts",
"scripts": {
"start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web"
},
"dependencies": {
"@expo/vector-icons": "^15.1.1",
"@gorhom/bottom-sheet": "^5.2.12",
"@react-native-async-storage/async-storage": "2.2.0",
"@react-native-community/netinfo": "11.4.1",
"@react-navigation/bottom-tabs": "^7.15.9",
"@react-navigation/native": "^7.2.2",
"@react-navigation/native-stack": "^7.14.10",
"@rn-primitives/portal": "^1.4.0",
"@rn-primitives/separator": "^1.4.0",
"@rn-primitives/slot": "^1.4.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"expo": "~54.0.33",
"expo-camera": "~17.0.10",
"expo-constants": "~18.0.13",
"expo-crypto": "~15.0.9",
"expo-dev-client": "~6.0.21",
"expo-haptics": "~15.0.8",
"expo-image": "~3.0.11",
"expo-image-manipulator": "^55.0.15",
"expo-linear-gradient": "~15.0.8",
"expo-localization": "~17.0.8",
"expo-location": "~19.0.8",
"expo-navigation-bar": "~5.0.10",
"expo-network": "~8.0.8",
"expo-status-bar": "~3.0.9",
"i18next": "^26.0.1",
"jpeg-js": "^0.4.4",
"lottie-react-native": "^7.3.6",
"lucide-react-native": "^1.7.0",
"nativewind": "^4.2.3",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-i18next": "^17.0.1",
"react-lucid": "^0.0.1",
"react-native": "0.81.5",
"react-native-fast-tflite": "^3.0.1",
"react-native-gesture-handler": "~2.28.0",
"react-native-nitro-modules": "^0.35.6",
"react-native-reanimated": "~4.1.1",
"react-native-safe-area-context": "~5.6.0",
"react-native-screens": "~4.16.0",
"react-native-svg": "^15.12.1",
"react-native-web": "^0.21.2",
"react-native-webview": "~13.15.0",
"react-native-worklets": "0.5.1",
"sonner-native": "^0.24.0",
"tailwind-merge": "^3.5.0",
"tailwindcss": "3.4.17",
"zod": "^4.4.1"
},
"devDependencies": {
"@types/react": "~19.1.0",
"tailwindcss-animate": "^1.0.7",
"typescript": "~5.9.2"
},
"private": true,
"pnpm": {
"onlyBuiltDependencies": [
"@expo/config-plugins",
"expo",
"expo-modules-core"
]
}
}