Mobile App Gesture Recognition Implementation

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Mobile App Gesture Recognition Implementation
Complex
~1-2 weeks
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Gesture Recognition Implementation in Mobile Applications

Camera-based gesture recognition is touch-free interface. Used in fitness apps (rep counting), accessibility apps, AR interactions, and presentation modes. The key tool: MediaPipe Hand Landmarker.

MediaPipe Hand Landmarker: How It Works

MediaPipe Hand Landmarker detects up to 2 hands in frame, returning 21 landmarks per hand: wrist, metacarpals, phalanges. Coordinates are normalized (0..1) in image space plus 3D coordinates (z—depth relative to wrist).

Latency on modern devices:

  • Pixel 7 (GPU): ~12 ms
  • iPhone 14 (CPU): ~18 ms
  • Snapdragon 665 mid-range (CPU): ~45 ms

For real-time UI at 30 FPS, budget is 33 ms. On weak devices, choose: lower inference to 15 FPS or work with one hand only (numHands = 1).

Gesture Recognition on Top of Landmarks

MediaPipe Gesture Recognizer—wrapper over Hand Landmarker—recognizes 7 built-in gestures: Open_Palm, Closed_Fist, Pointing_Up, Thumb_Up, Thumb_Down, Victory, ILoveYou. Enough for basic control (next slide, like/dislike, confirm).

For custom gestures, two approaches:

Geometric. Compute angles between phalanges, distances between keypoints, determine "is finger bent" via dot product. Fast (no extra inference), easy to debug. Works well for static gestures (specific hand shape).

ML Classifier. Record landmark vectors for each gesture, train small MLP or custom GestureRecognizer via MediaPipe Model Maker. Better for similar-shaped gestures and dynamic gestures (hand movement).

Case: presentation control via gestures during standup. Gestures: "next slide" (swipe right), "previous" (swipe left), "stop" (open palm). Static gestures via geometry (Open_Palm from MediaPipe Gesture Recognizer). Dynamic swipes—via wrist position tracking (WRIST landmark) over 10 frames: if delta_x > 0.3 normalized units in 333 ms—swipe. Threshold tuned experimentally on 15 test users.

Binding Gestures to Actions

Recognized gesture is an event with confidence and timestamp. Not every event should be processed. Debouncing matters: "thumbs up" shouldn't retrigger if hand stays in frame. Maintain state: lastGestureTime, lastGestureType. New gesture counts only if >500 ms passed or type changed.

On iOS: MediaPipeTasksVision via Swift Package Manager, wrap GestureRecognizer in actor class. Results via @Published in ObservableObject.

On Android: MediaPipe Tasks Android SDK (com.google.mediapipe:tasks-vision). GestureRecognizerOptions with runningMode = RunningMode.LIVE_STREAM for video stream, callbacks via ResultListener.

Common Implementation Mistakes

Don't account for handedness—MediaPipe returns LEFT/RIGHT from model perspective (mirrored from front camera). "Thumbs right" from front camera detected as left hand. If logic depends on specific hand, apply mirror correction.

Don't account for distance to camera. Normalized coordinates carry no distance info—geometric thresholds working at 50 cm differ at 150 cm.

Timeline

Basic gestures via MediaPipe Gesture Recognizer + action binding: 1 week. Custom geometric or ML gestures + dynamic swipes: 2 weeks. Cost calculated individually.