Skip to content

React Native library to simplify the integration of AI and ML features into your mobile app.

License

Notifications You must be signed in to change notification settings

rbayuokt/react-native-image-detective

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-native-image-detective

cover

✨ ALL IN ONE, ALL IN JUST ONE LINE ✨

late-night brain sessions often lead to interesting questions. lately, I've been pondering:
"can React Native and the wild world of AI/ML join forces and create some magic? yes, they totally can!" 😎

not one to let dreams stay as dreams, I dived into research mode. the burning question led me to a fascinating project where React Native and AI/ML got cozy.

why all this fuss? well, I'm on a mission to shake things up in the React Native community. forget pointing fingers, let's make it better together. this journey might be a baby step, but hey, even small steps can leave giant footprints.

powered by Google's MLKit, I whipped up native modules for Android (using Java), iOS (using Objective C) and TypeScript 🚀✨

Features

well, I'm striving to make this library easy to integrate and user-friendly with minimal effort, so let's get started!

  1. Face Detection
  2. Barcode Scanner
  3. Image Labeler
  4. Coming Soon ! 🚀

Installation

npm install react-native-image-detective
or
yarn add react-native-image-detective

npx pod-install

Usage

select a picture from either your camera or device using another library of your choice. in this example folder
I've used react-native-image-picker

  1. Face Detection

    face-detection-demo
import ImageDetective from 'react-native-image-detective';

// ... blablababla

const onImageChanges = async (res: ImagePickerResponse) => {
    try {
      if (!res.assets || !res.assets[0]?.uri) {
        return;
      }

      const imagePath = res.assets[0].uri;
      // MAIN CODE
      const image = await ImageDetective.analyzeFace(imagePath);
      // END OF MAIN CODE

      console.log('[Image response] :', image.faces);

      if (image.isValid) {
        Alert.alert(
          'Face detected',
          'Hoorayy !!'
        );
      } else {
        Alert.alert(
          'Face not detected',
          'Please reupload an image with your face in it.'
        );
      }
    } catch (error) {
      console.log('error', error);
    }
  };
  1. Barcode Scanner

    barcode-scanner-demo
    supports the following formats:
    Code-128, 39, 93, Codabar, Data Matrix, EAN-13, EAN-8, ITF, QR Code, UPC-A, UPC-E, PDF-417, and Aztec Code.
import ImageDetective from 'react-native-image-detective';

// ... blablababla

  const onBarcodeScan = async (res: ImagePickerResponse) => {
    try {
      if (!res.assets || !res.assets[0]?.uri) {
        return;
      }

      const imagePath = res.assets[0].uri;
      // MAIN CODE
      const barcode = await ImageDetective.analyzeBarcode(imagePath);
      // END OF MAIN CODE
      console.log('[barcode response] :', JSON.stringify(barcode));

      if (barcode.isValid) {
        Alert.alert('barcode result', JSON.stringify(barcode));
      } else {
        Alert.alert('Barcode not detected', 'Please reupload a barcode in it.');
      }
    } catch (error) {
      console.log('error', error);
    }
  };
  1. Image Labeler

    image-labeler-demo
import ImageDetective from 'react-native-image-detective';

const onImageLabeler = async (res: ImagePickerResponse) => {
    try {
      if (!res.assets || !res.assets[0]?.uri) {
        return;
      }

      const imagePath = res.assets[0].uri;
      // MAIN CODE
      const imageLabeler = await ImageDetective.analyzeImage(imagePath);
      // END OF MAIN CODE
      
      if (imageLabeler.isValid) {
        console.log('[image labeler response] :', JSON.stringify(imageLabeler));
      } else {
        Alert.alert('Oopss!', 'error !');
      }
    } catch (error) {
      console.log('error', error);
    }
  };
  1. coming soon ! 🚀

Contributing

Please help me make this library both fun and useful to use. Share your ideas about what AI/ML features could be on the list for the next version!

License

MIT


Made with ❤️ by @rbayuokt, thanks to create-react-native-library