A Swift library that uses ARKit Face Tracking to require users to smile before unlocking an iOS app.
SmileToUnlock is a Swift library for iOS that uses ARKit Face Tracking to detect when a user smiles, allowing developers to require a smile as a condition to unlock or access certain parts of an app. It solves the problem of creating more engaging and playful authentication mechanisms by leveraging facial expressions instead of traditional passwords or biometrics.
iOS developers looking to add unique, smile-based authentication or engagement features to their apps, particularly those targeting iPhone X and newer devices with ARKit support.
Developers choose SmileToUnlock for its simplicity, seamless ARKit integration, and customizable UI, enabling them to implement a fun, interactive unlock experience with minimal code.
This library uses ARKit Face Tracking in order to catch user's smile.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Cocoapods and Swift Package Manager with minimal code, as shown in the README's setup examples, making it quick to add to iOS projects.
Offers configurable text, background colors (blue, red, purple, or custom), and a skip button, allowing basic branding adjustments without deep UI work.
Leverages ARKit's face tracking for accurate smile measurement in real-time, with an adjustable successThreshold to control sensitivity.
Includes an isSupported property to verify compatibility on iPhone X and newer real devices, preventing crashes on unsupported hardware.
Only works on iPhone X and newer real devices, excluding simulators and older models, which severely restricts the target audience and testing options.
Smile detection is not a secure biometric method; it's designed for engagement, making it unreliable for any authentication that requires protection against spoofing or fraud.
The README lists feature requests for improving the face model and adding emotions, indicating the current implementation is simplistic and lacks advanced tracking or UI options.