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:
-
The user moves the pencil until it hits the edge.
-
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