I got an iPhone on the very first day it was available officially in my
country. I have used it every day since then and am now ready to decide
how good it really is. Summary: it is a great piece of technology and the
only tradeback is the locked down platform. I have abandoned my Palm and
am not looking back.
Hardware: the hardware is just perfect. 4 buttons (Home, Power, Volume Up
and Down) and 1 switch (Mute) are all very clear, easy to find and press
and frankly are enough. The touchscreen is reasonably fast and very
precise nicely corrected by software that guides your presses toward UI
points of interest if such are within your finger. The casing is
absolutely solid - there is no gaps, no wobble, nothing. All glossy
surfaces attract fingerprints, but a couple passes with a microfiber cloth
(included) clean it up easily. The loudspeaker is phenomenal - all sound
comes from a single small hole, but it can easily fill a small room with
music. Call sound quality is impeccable. You can plug in any headphones,
but if you use the included headphones you get a microphone with a button
that can pickup and hand up calls, start/pause music and skip to the next
track. I also love that the only charger included is a very small power
brick that provides a power-only USB port and a USB charging cable. That
is a good way to reduce number of power bricks for gadgets. The iPhone 3G
(that is what I have) also has a GPS build-in, but let us be clear - it is
not good enough to replace a car GPS, the iPhone GPS is slow (takes
several seconds to refresh the location and tens of seconds to find it
first time) and the precision is measured in meters or even tens of
meters. The WiFi is very good at getting a connection and doing it very
fast. Oh and there is an acceptable
camera.
Out of the box software: the software included surely is better than on
any other phone I have seen (including Palm). The UI widgets are nicely
written specially for a touchscreen interface - the best example is having
click wheels instead of drop down menus. It is much easier mentally to
flick a wheel up or down then to click on a list, click to scroll the list
and then click to select an entry. And the click wheel makes it much
easier to correct off-by-one errors. Switches that look like regular
physical switches instead of checkboxes is another very useful UI concept.
I think a lot of this can be reused on the desktop as well.
iTunes: and here comes the bad spot, the lock-in part. To get anywhere
with the iPhone you need to associate it with an installation of iTunes.
It fails to work in Wine or even in a virtual machine - apparently there
are some errors related to avahi or something. Unfortunately, this means
that you need wither Windows or MacOS to do nything with your iPhone.
iTunes is the only way to backup, restore and upgrade your iPhone, it is
the only way to get contacts and music on the iPhone (there is an iTunes
Store app in the newest version that allows purchasing music over the
air). Even after doing a jailbreak (see further) it is currently not
possible to add music to the iPhone from any third party applications,
because the iTunes database has a hashed checksum that the build-in iPhone
music player (and iTunes) check before doing anything. If the checksum is
wrong the only thing you can do is a full restore of the phone from
backup.
Crypto geeks - please help decrypt that hash, so that we can sync
iPhones to amaroK.
The iTunes itself is a bit weird - to get music onto the phone you need to
create a playlist and then you can sync that playlist over. One of the
playlist options is a smart playlist with a random feature and a limit on
number of matches. That is the way to get random music from your
collection onto the phone. I do dislike the fact that iTunes syncs all the
contacts from Google to the phone and not only contacts for a certain
group or only those that have a phone number, for example. Search and
favorites do help here.
Third party software (iTunes Store): it is very easy to install new
software on the phone over the WiFi and there is plenty to choose from.
You do need a Mac to develop this software which restricts the developer
base a bit. The main bases that I needed (or did not know I needed) are
covered: Last.fm player, TwitterFon, LockBox password storage, Stanza
ebook reader, Shazam music identificator, Wordpress client, BigOven
cookbook and lots of fun games. Have not used any paid-for apps due to the
fact that iTunes store is not available in Latvia and the official
documentation recommends registering with a fake address in UK or US. :)
Most of the software is rather stable and useful, but there is also a lot
of fluff. User reviews and ratings help a lot, can we have those for
Debian packages?
Jailbreak and third party software (Cydia): thanks to some anonymous
hackers, we have the ability to break the software jail on the iPhone and
install software that Apple did not approve. The process is made very
simple, but again it does require you to boot into Windows or MacOS X. The
main thing the jailbreak process does is install an installer on the
phone. Currently the best one is Cydia which is built on top of ...
apt-get and dpkg! After that is done, you can install a terminal, a ssh
server and BossPrefs advanced preferences. There are also other
interesting programs there - a different dock, file manager, caching
youtube player, quake, themed app launcher with categories and startup
page (winterboard). Theoretically the ssh server allows you to manage your
music over WiFi from any platform, but unfortunately until the iTuned
database hash algorithm is decoded, we can only copy music from the phone
to the PC and not back. It is possible to copy files over using ssh and
then play them using third-party players, but those players are very crude
and featureless.
To summarize: an iPhone is a great phone and a decent application
platform. To make using an iPhone with Linux easier we need to make iTunes
run in Wine (and allow it to see the iPhone) and reverse engineer the
iTunes database hashing algorithm so that we can get music on our phones
with Linux tools. I also wish there was a way to develop iPhone apps in
Linux, but that really is reaching for the stars.