Here at imthemobile.guru, I have documented some of the jailbreak tweaks that have been extracted from the iPhone 6S, and Jailbreak Devs have utilized that code to create their own 3DTouch actions at various places in the operating system across the entire iPhone line of handsets.
Some have used the tap and hold, or ‘long press’ gesture to invoke the quick menu items from the springboard icons like you see above. But not all functions are like that. Those functions are based on triggers discriminated by time. Some trigger ‘pressure’ based functions. But before you get all caught up in the MEMS pressure sensor solution, let me tell you how Apple engineering defines what pressure is, in the context of the iPhone.
3DTouch is accomplished through deception. It’s a magic trick. If you have ever used the touchpad on a new 2015 MacBook, it tricks you into thinking you are clicking on the touchpad. But you aren’t. There are 4 microelectronic motors at each corner that vibrate in a way that makes you feel as if you are drilling into the interface. If you haven’t experienced this, you should go to The Apple Store and just try it. It’s voodo.
The hardware in 3DTouch
The iPhone approach is very similar. Apple included some new hardware and software in the iPhone 6S to make the trick complete. A new Taptic Engine that spins up much faster than the normally aspired alert vibrator. A MEMS (micro electromechanical system) based pressure sensor, that detects how far the panel moves depending on how hard you press it. But these alone are not enough.
Apple also used software behaviors to augment the hardware of 3DTouch. A visual blur, and a rubber banding expansion of view effect on SafariControllerView that gives you the sensation of visual depth. They also wrote some code that makes the pressure detection more precise. By taking advantage of the digitizer resolution and granularity, the iPhone can not only detect where and when you finger makes contact with the display, but how much of your finger makes contact as well. This is key. This component gives precision and impact values.
Because the electrodes that form an X,Y grid in the digitizer are densely laid out, there are more interconnects or intersections. As your finger touches the digitizer, these cross-points sense how much of the finger is making contact. The harder you press, the larger the surface area of skin impacts the screen. More force=more finger, and therefore you can see that because the digitizer can tell just how much of the finger is making contact with the display in surface area, all an engineer needs to do is measure the area of skin making contact and bump that against how much force is being applied, Incorporate that value into a variable that represents ‘pressure’ and we have a much more precise data set than we would using just the logic chip sensor.
Apple incorporates the analog MEMS value that the pressure sensor can detect, and augments that with the value of ‘pressure’ that is extrapolated from the this data set. It is created by the number of interconnections in the electrode grid of the digitizer are affected by the finger, then the iPhone mixes in a rapid vibration from the Taptic Engine. Those input stimuli get timed with some blurry-poppy visual voodoo…and Waa-lah.
Now, iPhone 6 doesn’t have the MEMS, nor does it have the Taptic Engine. But it does have an outstanding digitizer with an electrode grid density that is conducive to 3DTouch operations. It also has a decent vibrator motor. And of course it’s has iOS 9. So all it takes is someone with the gumption and the creativity to utilize what we already have and…Waa-lah.
It’s always easier for people like me , who went to public school, to actually see what I just described above. As I re-read this article I thought to myself, “What the hell am I talking about?” So for those you who are like me: Vidjas always make the story complete.