Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I just did an interesting side-by-side test of scrolling within a browser displaying Google on an new iPhone 4 and an older Android phone (HTC Incredible. I didn't actually see much difference as to how "smooth" or "choppy" the scrolling was, but there were distinct differences to fast motions.

The iPhone seemed better at keeping up with a fast moving finger. If you put your finger on a line at the top of the screen, and scrolled quickly until your finger was at the bottom, the same line would still be under your finger. On the Incredible, the line you started on would only end up 2/3 of the way down the screen.

More surprisingly, this seemed to happen to a lesser extent even on very slow scrolls. Put you finger down on a line, drag it to the bottom, and the amount scrolled is always significantly less than the distance your finger moves. Rather than being a rendering problem, this seems more like an event loop that throwing away some of the events!



Besides the event flooding mentioned previously, the built-in Android GestureDetectors leave something to be desired. In the revamped Firefox Mobile that's under development we're noticing all sorts of bugs (e.g. http://bugzil.la/706684) that are related to gesture detectors malfunctioning, and we already reinvented the kinetic panning gesture detector because we were unhappy with the responsiveness of the built-in one (it does too much rounding).


Touch gestures generate a ton of events, specially in early versions. The most common fix is sleeping for a few ms in the UI thread. http://www.badlogicgames.com/wiki/index.php/Touch_Event_Floo...


I have to kind of wonder if Apple is buffering touch events on their controller and then sending them onward to the UI as postprocessed events and gestures.

Maybe I'm the only one left with a boggy 3G running iOS4, but when the system lags down I can usually keep typing and the keystrokes will catch up. Does the same thing happen on Android?

If gesture processing is being done on the controller side, that would take a lot of perceived bog out of the UI.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: