
Nexus One from an iPhone Developer's Perspective - r11t
http://iphonedevelopment.blogspot.com/2010/02/nexus-one-from-iphone-developer.html
======
theBobMcCormick
Ahem... I'm gonna take the liberty of reposting my comment from another thread
where this "review" cropped up.

 _When you hit the home button, the previous application keeps running, which
means it keeps eating memory, keeps using processor cycles, and keeps eating
battery.....To truly quit most applications requires a multi-step navigation
that is neither intuitive nor well-documented._

That one is one of the most pernicious bits of misinformation about the
Android platform. Applications that are no longer visible to the user are NOT
"background" applications like they are on a desktop OS. Applications that are
no longer visible to the user are stopped. They no longer consume CPU
resources, but the OS does hold them in memory in case the user returns to the
app. Stopped applications may be killed by the OS, thereby freeing up the
memory used by them, at any time by the OS when it determines it needs
resources. Think of it like caching. The app state is cached in memory so that
if you switch momentarily to another app (to answer a call for example) you
can return immediately to the previous app with minimal delay and minimal
resource cost (ie, the app doesn't need to be re-loaded, etc). The Android
developer docs have more information:
[http://developer.android.com/guide/topics/fundamentals.html#...](http://developer.android.com/guide/topics/fundamentals.html#..).

The only things that truly run in the background on Android are service
process. These are somewhat like worker threads that are created specifically
to handle long running background tasks (like playing music, or downloading
data over the network, etc).

There is absolutely no need to go through any "multistep navigation" to quit
apps, nor do non-visible apps continue "using processor cycles and eating
battery" (with the exception of course of apps that are supposed to be using
processor cycles, ie, music players, etc. running in a background service
process).

~~~
bmalicoat
I have little Android experience so forgive me if this is obvious after using
the device, but your description makes it sounds like you can't reliably know
if an app will be in the state you left it, is that true? Meaning sometimes
the OS will kill the app if necessary but other times it will not.

If that is the case I'd prefer the iPhone way wherein the onus is on the
developer to preserve the state and if they have, the app will always return
to the way you left it or, if they haven't it will always be restarted from
scratch. For me, knowing is better than not knowing.

However, if it is the case that the OS rarely kills apps then the Android
method seems preferable.

~~~
theBobMcCormick
That _would_ be highly unusable, but fortunately that's not the way Android
works. Roughly what happens is that when an app (actually an Activity.. but we
won't get into the difference right now) is no longer visible to the user, the
OS automatically saves most of the apps state, and calls the apps onStop
method to signal the app to save any app specific state. If the app _is_ later
killed, the next time it's started one of the items passed to the app by the
OS is a reference to the previously saved state.

The effect for the user is much like you describe it for the iPhone. It's as
though your apps never die. Whenever you restart them, whether it's 5 minutes
from now or 5 days, everything is exactly as you last left it. Except that,
unlike on a PC, those "background apps" don't take up any resources. Obviously
there is room for poorly written apps to flub up, or for apps to override the
normal behavior for specific reasons.

------
bkrausz
Some valid points, but much of the article seems very iPhone-biased.

I agree that a search button is totally unnecessary, and I never use it, but
I've had a use for the menu button on every screen. Keep in mind that most
iPhone apps have a button bar on the bottom with items. This is just smart
screen management. The back button has a few software design quirks that give
it inconsistent result, but again most apps use it well.

The author then assumes the higher resolution is just to show off a big
number. There's a reason 300dpi is the minimum for print...the eye can detect
lower resolutions (and usually higher) [1].

I find it interesting that he dismissed some Android features that "most
people won't care about", citing the "average user", and then goes on to
dismiss multitasking, saying:

"Everybody except most 'tech pundits' knows that the iPhone's Mach kernel
supports full preemptive multitasking and also knows that at any given moment
there are somewhere on the order of twenty daemons and other processes running
on a stock (non-jailbroken) iPhone."

I don't know if that's a typo or a joke, but I don't think the "average user"
cares, I think they just want to listen to Pandora while checking email.

I'm not going to pick apart everything I disagree with the author about, and
I'm probably as much of an Android lover as he is an iPhone lover, but I do
think this article presents a fairly biased view of the two devices, even
though the author claims to not be judging them "purely on what [he] was
already accustomed to."

[1] <http://www.clarkvision.com/articles/printer-ppi/> and other sites found
on Google.

~~~
elblanco
The multitasking bit stood as to me as well. From that point on I knew that I
couldn't really take this criticism seriously. "Multitasking isn't important,
but the iPhone _could_ do it if mother Apple really wanted it to so Nyah."

After that I noticed that pretty much everything the Nexus One does better
than the iPhone was minimized or excused away.

------
jrockway
You can pry the hardware buttons and the trackball out of my cold, dead hands.
I love them.

 _When you hit the home button, the previous application keeps running, which
means it keeps eating memory, keeps using processor cycles, and keeps eating
battery._

It's a lot more complicated than this. There is a battery monitor application,
and background apps don't use much power. (Keeping wifi on and scanning is my
biggest power sink. It makes Locale more accurate, though.)

Background apps are quite nice. With K-9 mail and my home IMAP server, I get
true push email. Whenever I order something from Amazon or forget my password
or something, the little trackball lights up instantly. It's really cool, and
it doesn't need any special support. If I had an iPhone, I could never get
this functionality.

Anyway, apps are what make Android great, and it's strange that he didn't talk
about any of them. If you want nice effect when scrolling through your Twitter
feed, get an iPhone. If you want advanced software, get Android.

~~~
theBobMcCormick
Agreed. The trackball is awesome for moving back and forth within a text field
(to correct a missed typo for example). I also find it nice when browsing
websites with lots of close together links.

~~~
sofal
* forehead smack * I did not know I could do that with the trackball until I read your comment.

------
donaq
_While I tried to be fair, it should come as no surprise that I believe in
Apple's approach to both hardware and software_

Wait, wait, wait. Isn't this sort of like a creationist reviewing evolution as
a theory? What's the point of "reviewing" something when you already "believe
in" the opposition?

[added quote below]

 _Not chintzy or cheap like the Motorola Droid or most cell phones. It feels
solid and very much like the iPhone._

Ok, well, if "like the iPhone" == good to you, then maybe you should just
ignore other devices?

~~~
ellyagg
Baffling. So, if you like one thing, you can't express your opinions about
some similar thing? Isn't that specifically why we even have disclosure
statements like the one he made?

If you like, take his review as "this is how far the Nexus One diverges from
my favorite industrial design philosophy, as embodied by Apple".

~~~
donaq
Well, a more accurate title given the tone of the post would be, as another
commenter on this thread has written:

"The iPhone is the best thing in the universe, and anything on the Nexus One
that seems to be better actually isn't and anyone who thinks so is clearly
mistaken"

If you think that's a post worth reading, we have very different preferences
in reading material, that's all. The criticisms I directed at it were made
given the premise that I expected to read a post about what the title said it
was about.

------
elblanco
I give points for the excellent commentary on the search buttons and attention
to detail in the UI. But I take them all back with the Apple apologetics
concerning the things that the Nexus One does better than the iPhone.

It should have just read, "In conclusion, the iPhone is the best thing in the
universe, and anything on the Nexus One that seems to be better _actually_
isn't and anyone who thinks so is clearly mistaken."

------
jsz0
One of the things I greatly dislike about the search button is sometimes it
has a function inside an application, sometimes it's just a web search. So I
have to use trial & error to figure out which apps actually use it and which
ones are just going to send me off to an unwanted Google web search.

------
rbanffy
Was I the only one expecting more of a comparison between Android and iPhone
SDKs?

The article could be better described as a tech-savvy user opinion rather than
a developer opinion.

------
amalcon
The one hardware button he thinks is worth having is the one that seems to me
least useful (well, except search). "Home" would be a perfectly good option to
have in the menu, or a function of holding down the "Back" button. "Back", on
the other hand, is something I could hardly live without, and "Menu" is at
least understandable.

------
harrygeo
This is very similar with my experience with the N1. The screen sensitivity
problems and outdoor screen visibility were too great of issues to ignore and
I returned the phone for refund.

One additional comment about the scroll ball and hardware buttons is that the
UX is poor when used in landscape mode and now you have to move your finger in
a different position to perform the same task.

------
megaduck
He's right about one thing: Multitasking on Android is something of a disaster
from a UX perspective. There's no intuitive and obvious way to see what's
running, and 'quitting' an application is often inconsistent and non-obvious.
Most people just push 'home', and treat it just like an iPhone. Of course,
performance and battery suffer.

This leads to weird contortions in user behavior. For example, my father-in-
law's favorite application on his Droid is 'Advanced Task Killer'. From my
perspective, the fact that the application even exists is horrifying. A phone
should not require sysadmin tools.

In stark contrast, look at how WebOS handles multitasking. You know exactly
what's running at any given point, because you have a visible card up. To
close an application, flick the card up and off the screen. It's intuitive and
obvious, even to non-technical people. It's really an amazing design.

My suspicion is that Apple will never allow multitasking on the iPhone unless
they can make it Palm-like in it's simplicity. However, that would probably
require a major UI refactor, which is not going to happen any time soon.

EDIT: This contains some bad info. See thread below.

~~~
theBobMcCormick
Actually, he's completely _wrong_ about multitasking on Android, and BTW, your
father-in-law is (IMHO) wasting his time with "Advanced Task Killer". That app
is in general a waste of time. Refer to my post elsewhere is this thread for
more detail, but the short version is that apps _don't_ need to be
specifically killed on Android. Apps do not normally run in the background at
all, they are stopped as soon as they're not user visible anymore. Apps that
_do_ wish to do things in the background, like play music, can register a
service process, which is kind of like a background worker thread. The service
process is the only thing that actually runs in the background.

~~~
megaduck
I'm happy to be corrected on this particular point. From appearances, it
looked like they'd taken the Windows Mobile model and made it even worse. Good
to hear that it's actually sensible.

Apologies for spreading bad info.

~~~
theBobMcCormick
No need to apologize. We're all friends here right? Besides, the odds are good
you'll get to return the "favor" one of these days. :-)

BTW... The mis-information about how Android background apps work is pretty
widespread, so I wouldn't feel bad about having it incorrect. Heck, that's
what I believed the situation was until I got an Android phone. :-)

------
timdorr
Can anyone speak to the misalignment of the hardware buttons activation area?
I'm seriously considering a Nexus One since my AT&T contract ran out and I
could see that being a serious nit to pick (slowness and the misclicks
associated with it being my major issue on my iPhone 3G right now).

~~~
pkulak
Yes, you have to click slightly at the top of the buttons. It's like that on
the Eris too, the only other Android phone I've owned, so it may be an HTC
thing.

And the touchscreen really is less sensitive. Scrolling a web page is jerky,
whereas on the iPhone it really does feel like you're dragging around a piece
of paper with your finger.

And not having scroll bounce on the menus _will_ drive you nuts. It really
does seem like the phone froze.

Something he didn't mention is that the new apps launcher blows hard. They
tried to go with some pointless 3D effect where the rows snap into place. All
it does though, is make sure that right after you scroll, your apps move just
a little bit, making tapping the right one a game you'd rather not have to
play every damn time.

However, all that said, widgets and multitasking are huge. I got rid of my
Nexus One to go back to my iPhone, but only because I'm stuck with AT&T and
couldn't handle edge for everything. Every day I miss the snappiness of
switching between apps that don't close and regret having to open the calendar
app all the time to check what's coming up because I can't make it a widget.

------
wglb
So if the screen resolution is not such a big deal, how does the HD video from
youtube on the iPhone compare to the HD video resolution on the android
devices?

