48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# Hotdog
|
|
|
|
A Silicon Valley-inspired app that uses your iPhone camera to detect whether you're looking at a hot dog.
|
|
|
|
Built with **Expo SDK 56**, `expo-camera`, and on-device image classification. No server required.
|
|
|
|
## How it works
|
|
|
|
1. The camera shows a live preview.
|
|
2. Tap the shutter to capture a frame.
|
|
3. iOS uses the native vision classifier first, then falls back to MobileNet if needed.
|
|
4. MobileNet checks ImageNet labels on-device and applies a confidence/margin threshold.
|
|
5. The app shows **Hot dog** or **Not hot dog**, saves the scan to a local gallery, and can export a shareable image.
|
|
|
|
## Run on iOS
|
|
|
|
```bash
|
|
npm install
|
|
npx expo run:ios --device
|
|
```
|
|
|
|
Or start the dev server and scan the QR code with Expo Go on a physical iPhone (camera + ML require a real device):
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
> **Note:** Use a physical iOS device. The simulator has no camera, and ML inference works best on hardware.
|
|
|
|
## Permissions
|
|
|
|
The app requests camera access on first launch. Photo permissions are used for importing images and saving share cards. iOS permission text is configured in `app.json`.
|
|
|
|
## Release
|
|
|
|
This project uses local Xcode/App Store Connect tooling rather than EAS. See [docs/release-ios.md](docs/release-ios.md).
|
|
|
|
## Tech stack
|
|
|
|
- Expo SDK 56
|
|
- expo-camera
|
|
- expo-image-picker + expo-media-library
|
|
- expo-blur + expo-glass-effect
|
|
- @tensorflow/tfjs + @tensorflow/tfjs-react-native
|
|
- @tensorflow-models/mobilenet (ImageNet)
|
|
- @dariyd/react-native-image-description
|
|
- react-native-fs (required peer of tfjs-react-native)
|