Hey Juan,
It's true: the way the MetaWatch works, by sending raw screen pixels
from the phone to the watch, means that making the screen update in
inherently slow. Hopefully there will be a few optimizations we can
do to the internals of Cicada and the bluetooth protocol, and maybe
future watch firmware tweaks will allow for more chunks of autonomous
interaction on the watch. Ultimately, I don't see a full-screen
update being faster than a second or so, no matter what we do, as long
as we're sending raw pixels.
That said, Cicada tries to only send the rows of the screen that have
changed since the last update. The smaller the vertical area of the
screen that's being updated, the faster the screen should update. You
can see this in the Cicada app list; moving between the first few
items is faster than scrolling further, where the app names scroll and
update more of the screen. We should rewrite that to page rather than
scroll, so that the whole screen doesn't need to update as frequently.
Note that this optimization happens right before the pixels are sent
to the watch; it doesn't matter how much of the canvas you touch
during onDraw(), it's how many of the watch's screen rows are changed
as a result.
Cheers,
Joe