- The above video is from Luke Hutchinson, a mobile developer, who helped debunk the rumor today (via comments) on VentureBeat that Google took out the multi-touch capabilities on the G1 Android phone because Apple put pressure on them. Why is this important? Because whether or not this is true plays a huge part in whether or not the rumors of Apple suing Palm over their new multi-touch Pre is legitimate or not. Last week I broke down why the lawsuit would not happen between the two companies. This analysis by Luke gives us a little more insight into what actually happened with Apple and Google over multi-touch.
I’m the guy that implemented the multitouch solution shown in the video above. Forget the conspiracy theory. There isn’t a trace of implemented-then-removed multitouch code in the Android codebase, I have been through pretty much all of it that has anything to do with event processing, from the low-level kernel driver to the singleton class that receives events across the JNI bridge to the event processing pipeline. The kernel driver always supported multitouch because it is based off of generic synaptics code that already supported multitouch.
My conclusions after going through the code and scouring the web for reasons why it wasn’t implemented in 1.0, as well as conversations with Google employees and all sorts of interactions with the community since the multitouch release are the following:
(1) The G1 was simply never intended to be a multi-touch device. HTC didn’t spec it that way (their top leadership came out and said “it was designed to be a single-touch device”), Google didn’t ask for them to design an MT-capable device, it wasn’t on Google’s list of things to do for 1.0.
(2) Apple’s multitouch patent may not even cover the pinch gesture. So far they have not even approached me with a C&D, and I don’t expect they will. (And anyway, I never made a cent off of this, and I am doing no more development on multitouch now that the capability is out there in firmware images that you can flash on your own phone.)
(3) Google *is* interested in multitouch capabilities, it’s just nowhere near the top of their priority list. Anyone in the community could step forward today with a well-designed extension to the MotionEvent class that properly supports MT, and the Google guys and gals would vet it just like any other community submission, and it would stand as good a chance of making it into the codebase as anything else. (HOWEVER the Google Android engineers have been rushed off their feet for about the last two years straight, including lots of late nights and weekends, and the pace sped up if anything after 1.0, so they are so busy with their own internal priorities that the Android *platform* is only a community project in name at the moment, because the ones that can actually commit to the repository at the moment are mostly/all(?) Google engineers, and they’re just plain flat-out busy… time will tell if that changes, or if their community module ownership handout system works.)
(4) Google will deal with legal issues if and when they come up, but that hardly stops them doing something they think should be done. Take a look at Book Search and YouTube (I know, I used to work at Google on Book Search…)
(5) Apparently the driver for a resistive MT-capable/iPhone-like touchscreen was checked into the git kernel tree after the 1.0 release, so we now have (at least?) two MT-capable drivers in the tree. This is barely surprising given the huge number of Android devices of every form factor currently in the pipeline. You can bet somebody wants to market the devices even if it means licensing from / fighting with Apple.
(6) I could go on, but basically put away your tinfoil hats, people.
(7) One more thing: if you really want to know what happened with Android 1.0, read through the Android platform source. All of it. Or as much as you possibly can in the next year or so. You will quickly come to realize that the pulling-together of Android in the short period of time over which it was accomplished constitutes one of the greatest software engineering accomplishments of our time. The code is, for the most part, polished, clean, well-written, low on bugs and seamlessly integrated. I don’t know how on earth they managed to (a) write (/acquire ) that amount of code in such a short time, (b) so seamlessly integrate the efforts of what must have been a very large number of programmers, and (c) somehow also build a complete working lightweight linux distribution, an Eclipse IDE and debugger, an entirely new VM, and (working with HTC) an actual physical device that stands to be one of the best physical 1.0 releases of a complex device of all time.
Once you catch the vision of that, you will understand why MT conspiracies are ridiculous — why would MT or other bling even be an issue when you’re trying to accomplish so many far more difficult engineering tasks and meet a shipping deadline?
Trying to stay up on your mobile game? Check out these articles.