Apple Pencil Pro Haptic Initiation

Hello,

The Apple Pencil Pro brought with it the UICanvasFeedbackGenerator API, which lets us trigger haptic feedback on discrete events initiated by the pencil. That works fine.

My question then: is it possible / are we "allowed" to trigger haptic feedback on events that weren't initiated by the pencil?

For example, say the user is using a left hand finger to drag a slider, while holding the pencil in their right hand-- would it be possible to make the pencil vibrate to indicate the dragged slider knob reached a certain point? Or is the rule that vibration is only possible/allowed when the pencil itself generated a touch?

Thanks!

For example, say the user is using a left hand finger to drag a slider, while holding the pencil in their right hand-- would it be possible to make the pencil vibrate to indicate the dragged slider knob reached a certain point?

I haven't specifically tried in detail, but my expectation is that, yes, this is possible and "should" work. The concrete example here is to imagine a drawing canvas where the user is drawing with one, moving the canvas with the other, and haptics should occur when the pencil hits the "edge". IMHO, I think it's reasonable for the two cases below to both vibrate in exactly the same way:

  1. The user moves the pencil until it hits the edge.

  2. The user holds the pencil stationary and move the canvas until the pencil hits the edge.

The point of haptics in a scenario like this is to make the edge feel more "physical" and NOT allowing #2 actual subverts that goal. In addition, if you look at more complicated cases where both the pen and the target are moving, NOT allowing #2 can actually lead to inconsistent haptics depending on EXACTLY how you define "stationary"* relative to the moving object.

*In concrete terms, if the user moves the pencil where they THINK the line is (but they're wrong) and the line then animates "in" to the pencils location, what should happen?

Or is the rule that vibration is only possible/allowed when the pencil itself generated a touch?

Anything related to "rules" is very tricky to answer, as it really depends on specifics of what your trying to do, the nature of your app, and how well your final implementation actually works. The HIG's guidance here is fairly non-specific and I don't believe our current review guidelines mention haptics at all. However, I'm sure it's possible to come up with sufficiently broken/weird/flawed haptic usages that shouldn't be implemented.

For drawing apps, I think the critical factor here is simply how "well" the final feature works, not any artificial rule or restrictions. For use cases outside of that area, I think the best option would be to contact App Review to discuss the issue directly.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Thanks for the comprehensive reply!

  1. I'm afraid I haven't made my point clear, in the scenario described above the user is holding the pencil without it touching the screen at all, what I want is to trigger its haptic engine over-the-air in response to a finger touch (to compensate for the lack of a haptic engine in the iPad itself).

  2. Even in the other scenario, where both a finger and the pencil are touching the screen simultaneously, I can't get a finger touch to generate a "buzz" in the pencil. Only when I trigger the feedback from a pencil-generated touch does the pencil ever buzz.

I'm guessing there's some protection in place that blocks any "generated feedback" from getting to the pencil unless its own touch triggered its invocation. That's what I mean by "rules", even before looking at the guidelines.

Apple Pencil Pro Haptic Initiation
 
 
Q