spen_remote

Flutter

spen_remote, a Flutter library I developed to bridge the gap between Flutter apps and the Samsung S Pen Remote SDK.

As many Flutter developers know, one of the biggest advantages of Flutter is building cross-platform mobile experiences from a single codebase, but sometimes device-specific hardware features still pose a challenge. In particular, Samsung’s S Pen remote input (button presses, stylus gestures) can be a powerful differentiator in apps geared toward productivity, annotation, presentations or stylus-centric workflows.

With spen_remote you can integrate that hardware layer directly into your Flutter app. The plugin wraps the native Samsung SDK on Android, exposes a Dart-API, and allows you to respond to S Pen remote events like connection state changes, button clicks, and stylus gestures.

Why does this matter?

  • Feature enhancement: Your app can listen for a stylus remote button press (for example advancing slides, triggering an annotation action, capturing a picture) without writing native bridges.
  • Enterprise readiness: For companies building apps for stylus-heavy workflows (education, design, field-work annotation), supporting advanced input devices elevates the user experience and sets the app apart.

Key features of spen_remote:

  • Published on pub.dev : Dart packages
  • Compatible with Samsung with Android
  • MIT-licensed, with example code and documentation to make integration straightforward.

Why I Developed It

I wanted to go beyond typical note-taking or drawing use cases. I was working on a game that used the S Pen’s built-in gyro sensor and remote button. the idea was to control a crosshair on the screen by moving the stylus, and fire projectiles on enemies by pressing the S Pen button, similar to the classic Duck Hunt game on Nintendo : Castle Defense.

To make that possible, I needed access to the S Pen’s motion data and button events directly from Flutter but there was no existing package that exposed the Samsung S Pen Remote SDK to Flutter developers.

That’s what led me to create spen_remote.
It bridges the native Samsung SDK into Flutter, allowing developers to:

  • Detect and respond to S Pen button clicks
  • Track gyro movement and orientation of the pen
  • Handle connection state and device events

So originally, this project was born out of a personal creative need to make a fun experimental game but it evolved into a useful open-source tool that any Flutter developer can now use to bring S Pen remote interactions into their apps.