PerchEye SDK provides advanced facial recognition functionality for mobile applications across multiple platforms, enabling face detection, enrollment, verification, and comparison using embedded TensorFlow Lite models.
- Android - Native Android SDK with Kotlin/Java support
- iOS - Native iOS SDK with Swift/Objective-C support
- Flutter - Dart plugin for cross-platform Flutter applications
- React Native - JavaScript/TypeScript module for React Native apps
- Location:
/android-aar/
- Language: Kotlin/Java
- Integration: Gradle dependency
- Documentation: Native Android implementation
- Location:
/ios/
- Language: Swift/Objective-C
- Integration: CocoaPods/Swift Package Manager
- Documentation: Native iOS implementation
- Location:
/flutter/
- Language: Dart
- Integration: pub.dev dependency
- Documentation: Cross-platform Flutter plugin
- Location:
/react-native/
- Language: JavaScript/TypeScript
- Integration: npm package
- Documentation: Cross-platform React Native module
val perchEye = PerchEye(context)
perchEye.init()
perchEye.openTransaction()
val result = perchEye.addImage(bitmap)
if (result == ImageResult.SUCCESS) {
val hash = perchEye.enroll()
val similarity = perchEye.verify(hash)
}
perchEye.destroy()
let perchEye = PerchEyeSwift()
perchEye.openTransaction()
let result = perchEye.load(image: uiImage)
if result == .success {
let hash = perchEye.enroll()
let similarity = perchEye.verify(hash: hash)
}
perchEye.destroy()
await PerchEye.init();
await PerchEye.openTransaction();
final result = await PerchEye.addImage(base64Image);
if (result == 'SUCCESS') {
final hash = await PerchEye.enroll();
final similarity = await PerchEye.verify(hash);
}
await PerchEye.destroy();
import { openTransaction, addImage, enroll, verify } from 'react-native-perch-eye';
await openTransaction();
const result = await addImage(base64Image);
if (result === 'SUCCESS') {
const hash = await enroll();
const similarity = await verify(hash);
}
All platform implementations provide:
- Face Detection - Identify human faces in images
- Face Enrollment - Generate unique biometric hashes
- Face Verification - Compare faces against stored hashes
- Batch Processing - Handle multiple images efficiently
- Offline Operation - No internet connection required
All platforms return consistent status codes:
SUCCESS
- Operation completed successfullyFACE_NOT_FOUND
- No face detected in the imageFILE_NOT_FOUND
- Image file not found (Android only)TRANSACTION_NOT_OPEN
- No active transactionSDK_NOT_INITIALIZED
- SDK not properly initializedINTERNAL_ERROR
- Internal processing error
- Offline Processing - All computation happens on-device
- No Data Transmission - Biometric data never leaves the device
- Hash-Based Storage - Only mathematical representations are stored
- Privacy Compliant - Meets GDPR and privacy regulations
Each platform includes a fully functional demo application:
- Android Demo -
android-demo/
- Native Android app - iOS Demo -
ios-demo/
- Native iOS app - Flutter Demo -
flutter-demo/
- Cross-platform Flutter app - React Native Demo -
react-native-demo/
- Cross-platform RN app
- Android: Android Studio, Gradle, API level 24+
- iOS: Xcode 12+, iOS 14.0+, Swift 5.0+
- Flutter: Flutter SDK 3.0+, Dart 2.17+
- React Native: Node.js 18+, React Native 0.70+
# Clone the repository
git clone https://github.com/Onix-Systems/PerchEye-SDK-Multiplatform.git
# Build Android SDK
cd android && ./gradlew build
# Build iOS SDK
cd ios && xcodebuild -project PerchEyeFramework.xcodeproj
# Build Flutter plugin
cd flutter && flutter packages get
# Build React Native module
cd react-native && npm install
- Face Detection: ~50-100ms per image
- Hash Generation: ~100-200ms per face
- Verification: ~10-50ms per comparison
- Multi-threading: Supported on all platforms
- Runtime Memory: ~50-100MB active usage
- Model Size: ~10-20MB embedded model
- Hash Size: ~2-5KB per face encoding
- Detection Rate: >95% for clear frontal faces
- False Accept Rate: <0.1% at 0.8 threshold
- False Reject Rate: <5% at 0.8 threshold
dependencies {
implementation(files("libs/perch-eye-1.0.3-4.aar"))
}
# Download PerchEye Framework from the official source
# Drag PerchEyeFramework.xcframework into your Xcode project
# Ensure the framework is added to Frameworks, Libraries, and Embedded Content
# Set Embed & Sign for the framework
# Run this in your Flutter project:
flutter pub add perch_eye
npm install react-native-perch-eye
Visit our comprehensive web documentation at:
- GitHub Pages: https://onix-systems.github.io/PerchEye-SDK-Multiplatform
- API Reference: Platform-specific API documentation
- Integration Examples: Complete code samples
- Best Practices: Performance optimization guides
- GitHub Issues: Report bugs and feature requests
- Documentation: Platform-specific guides
- Demo Apps: Working examples for each platform
- Community: Developer community and discussions
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! Please read our contributing guidelines and submit pull requests for any improvements.
Note: Each platform maintains its own specific documentation and examples. Refer to the individual platform folders for detailed implementation guides and platform-specific features.