
Re-inventing Android : Ice Cream Sandwich - Arkid
http://microreviews.org/re-inventing-android-ice-cream-sandwich/
======
joebadmo
The thing that really stands out to me about ICS is the focus on user
experience. Duarte seems to have addressed all the little complaints I've
always had, and some I never realized I had.

* Moving away from long-presses.

* More consistent app navigation via swipes.

* More usable but still powerful task management/switching.

* Better representation of useful data like contacts and calendars.

* Order of magnitude better camera app, faster, cleaner, with extremely easy sharing built in.

Apparently the UI is finally hardware accelerated as well (though apps have to
opt-in), so hopefully it means an end to Android's historically jittery
interface.

~~~
briancooley
The hardware acceleration opt-in is just one line in the AndroidManifest.xml
file, so it should be widely adopted.

~~~
nextparadigms
It's actually enabled by default on Android 4.0. It's optional only in
Honeycomb.

~~~
foobarbazetc
It depends on your targetSdk. It can't be enabled by default because it breaks
a lot of apps.

~~~
ZeroGravitas
You're currently downvoted, but you're correct. Apps targetting older sdks
will need to opt-in to make use of the acceleration, even on ICS. But it's an
easy switch to flip, assuming it doesn't cause visual glitches, which it can
in some cases.

------
pbz
Any word on fixing stability issues? In my experience that's by far the number
one issue with the OS (keyboard crashes, slowing down after about a day
without reboot, the actual phone app acting up, the call not going through,
not being able to answer, text messages not being delivered all the time, etc
etc)

~~~
darshan
I've never experienced any of those issues in my 2+ years with Android. I've
always used stock Android (on the MyTouch 3G and then the Nexus One) -- I
think you must be using a buggy build.

~~~
pbz
It's definitely something weird going on, but I can promise you I'm not alone.
Starting with 2.1 (Nexus One stock, no tweaks) every version got worse. Tried
a reset, wipe, and eventually installed CyanogenMod. CM is actually a bit more
stable, but those weird things happen on it as well. A daily restart is a must
if I want a functioning phone. I know others that have Eris, Droid, and
MyTouch 4G devices (all stock) that experience similar issues. For example,
here's a thread about the keyboard issue:
<http://code.google.com/p/android/issues/detail?id=15311>

It's very eerie when you click the phone app to make a call and it freezes for
a second, then half the app is drawn, you shake it a bit and it sometimes
comes back, but then the call doesn't go through. Then you go to send a text
and it won't load your messages or the keyboard doesn't show, or it pops up
but you can't see any keys, or you see the keys but when you type nothing
shows up until you close the keyboard, or it takes two seconds before what you
typed shows up. All these are symptoms that you need to restart.

------
rpearl
Is Android going to be open source again? (Well, I say open source, but what I
mean is--will the source code be available, as opposed to development being
open. Google doesn't tend to take patches from outside contributors anyway...)

~~~
nextparadigms
Yes, about 2 weeks after Galaxy Nexus is launched I believe, so sometime in
December.

------
_vandy
One small thing which I haven't yet understood is Why Google is supporting so
many (latest) versions of Android yet again. We have Android 2.3.2,
Gingerbread and now we have Ice Cream Sandwich. This is confusing. Isn't it?

~~~
klausa
Gingerbread is 2.3.x branch, perhaps you meant Honeycomb?

And while it is a little bit confusing, it _kinda_ makes sense. Gingerbread is
latest phone release, Honeycomb was tablet-only thing, and with Ice Cream
Sandwich they're merging it into one release.

~~~
Arkid
Will this not cause fragmentation again in the near future?

~~~
Arkid
Developers have to develop for all three versions. Right??

~~~
Pewpewarrows
(Android dev here)

No. You release one .apk file (the Android equivalent of .app). Within a
manifest inside it, you can specify a "target" release API version and a
"minimum" version. No one running a device below the minimum can see or
install your apk. The target one is more of a suggestion to the Dalvik VM with
how to approach running your application (if it know you're targeting the
latest release, it can expect you to use some new features and adjust
accordingly, etc).

Just like with web sites, you progressively enhance an Android app during
development using Java's reflection, and/or gracefully degrade by bundling up
back-ported modules and UI components in your apk. If you absolutely can't get
around a particular function not being present in an old version of the API,
then you just don't have that feature even visible to the end-user.

The current recommendation is to set your min level to 7 (which is Android
2.1), and as of a few days ago, to set your target to 14 (Android 4.0, or Ice
Cream Sandwich). According to raw statistics of devices active and in the
wild, this hits 97% of all potential Android customers. Fragmentation used to
be an issue back when supporting the Android 1.x line of APIs was still
necessary. Now it's nice and streamlined, and I barely notice writing for
compatibility any more.

And if you really can't get around some problems, the Market now lets you
upload multiple apks for a single "release" of your app, each targeted towards
different ranges of API levels.

~~~
tadfisher
Are there Android devices released with 2.1 that have not received an update
to 2.2?

~~~
drivebyacct2
Some. [http://developer.android.com/resources/dashboard/platform-
ve...](http://developer.android.com/resources/dashboard/platform-
versions.html)

