A mobile application that allows users to take selfies and check if their images have been used elsewhere on the web.
- Take selfies using your device camera
- Upload images to check for matches
- View where your images have been found
- Save images to your device gallery
- Share images directly from the app
- Dark mode support
- Offline detection and handling
- Haptic feedback for better user experience
- Responsive design for all device sizes
- Proper handling of app lifecycle events
- Support for safe areas on notched devices
- Node.js 16+
- npm or yarn
- Android Studio (for Android development)
- Xcode (for iOS development, Mac only)
Clone the repository and install dependencies:
git clone [your-repo-url]
cd mr-detector-app
npm installnpm run devnpm run ionic:serveEnsure you have installed all required native modules:
npm install @capacitor/core @capacitor/camera @capacitor/haptics @capacitor/network
npm install @capacitor/preferences @capacitor/splash-screen @capacitor/status-bar @capacitor/sharenpm run resourcesAfter making changes to the web app, always sync with Capacitor:
npm run syncFor real-time development with device hot-reloading:
# For Android
npm run cap:run:android
# For iOS
npm run cap:run:ios- Ensure you have Android Studio installed
- Run the build command:
npm run build:android- Android Studio will open - click Run to build and run on a connected device or emulator
- Ensure you have Xcode installed
- Run the build command:
npm run build:ios- Xcode will open - select a development team and run on a connected device or simulator
src/- Source codeviews/- Main application viewscomponents/- Reusable componentsrouter/- Application routingimages/- Static imagestheme/- CSS and theme variables
public/- Public assetsandroid/- Android platform filesios/- iOS platform filescapacitor.config.ts- Capacitor configurationionic.config.json- Ionic configuration
The app checks for network connectivity and provides appropriate feedback when offline. Certain features like image uploading and searching are disabled when offline, but users can still:
- Take photos with the camera
- View previously loaded results
- Save images to their device
- Lazy loading of heavy components and images
- Efficient memory management with proper cleanup of listeners
- Optimized animations and transitions
- Camera: Direct access to device camera
- Share: Native sharing interface for images
- Haptics: Tactile feedback for user interactions
- Splash Screen: Customized native splash screen
- Status Bar: Properly themed status bar
- Network: Real-time network connectivity detection
- Testing on Real Devices: Always test on real devices before releasing
- Performance: Keep app size and memory usage low
- Offline Support: Handle offline scenarios gracefully
- Battery Usage: Minimize operations that drain battery
- Native UI Guidelines: Follow platform-specific UI guidelines
- Camera not working: Ensure permissions are properly set in capacitor.config.ts
- Build errors: Run
npm run syncbefore building for mobile - White screen on launch: Check for JavaScript errors in the console
- Sharing not working: Ensure proper URLs and file types are being shared
- Permission errors: Request permissions at appropriate times and handle rejections gracefully
[Your License Information]