Saturday 19 October 2013

iOS upgrades and further hate for iTunes

There aren't too many things I hate about the iPhone but there are many around iTunes: the lock-ins, the inability to get data back out of the phone, the single point of failure (sync PC crashes, then what).



But I still kept my iPhone. However, the iOS 7 and iTunes 11.1.0 mess really does make me consider the alternatives.


My iPhone 4S had been running iOS 5.0.1 since it arrived and all the data (music, videos, contact) is managed manually - previous experience with other iTunes sync'd/managed iOS devices (iPod Touch/iPhone 1G) all resulting in losing data with crashed PCs etc make me not trust iTunes.

However a lot of my heavily used apps have released bug fixes that were incompatible with the older iOS. So what to do? I had avoided jumping the newer iOS (5.1/6.x etc) frankly because my previous iOS upgrade experiences essentially destroyed all my data. Over time I had found things like CopyTrans (paid for) and SharePod (although no longer free after 4.x) to backup my iPod data to multiple device (PC, NAS, another PC) locations so whilst I expected the iOS upgrade to kill all data, at least I would have the data to restore.

To my surprise, the iTunes 11.1.0 initiated update was successful with all music/contacts in tact.

iTunes 11.1.0 mass storage failure device

The problems however started when more data (music and video) was manually copied to the iPhone. Everything appeared fine for the first few files dragged/dropped into the iTunes but then iTunes reported "waiting for changes to be applied". Then iTunes hung and crashed.

The subsequent restart of iTunes reported that the iPhone had a capacity of 0 bytes and that a restore was required. Great. So the crashing iTunes had appeared to have corrupted the iPhone's TOC (for a very lose term) used by iTunes even though the data and apps on the phone itself was still accessible and functional.

So a restore ensued. All data was lost. Annoying but this was the expectation for the iOS 7 upgrade so this was viewed as deferred pain. The restore (this time to iOS 7.0.2) was applied and the phone was clean but required all contacts and music/videos to be manually copied back via CopyTrans and iTunes.


Again iTunes 11.1.0 caused more (hidden) problems. Music would not copy or update to the iPhone - iTunes would hang reporting the same "waiting for changes to be applied" and then ultimately crash. Fine. Instead of copying all 1000+ music files in one batch smaller numbers were attempted. However, after the first few batches appearing to copy across successfully (sync, unplug iPhone, verify music played from iPhone, reattach) I noticed oddities. After the iTunes crash mid way through an copy/update, subsequent access to previously successfully transferred music would fail to play. The entries were listed on the iPhone but not a single file would play successfully. Same situation with the videos.

After more copying and iTunes failing/crashing I observed and concluded that iTunes 11.1.0 was clearing the iPhone's TOC during failed syncs resulting in the iPhone losing the data. The release notes for iTunes stated that the 11.1.0 release "improved sync speed for music". Hmmm. No transactional locks around updating the iPhone TOC, clearing out the TOC and then trying to apply all changes in one single update at the end maybe? Thanks.


iTunes 11.1.1 was released early Oct and copying files finally seemed to resolve the problem. However the first time the same iPhone was attached iTunes believed that the iPhone had been sync'd elsewhere and that it needed to delete everything again. This confirms to me at least that the iTunes 11.1.0 version had corrupted some very basic items on the iPhone.

Final syncs - Ringtones

Once the music was back on the iPhone the small lose ends were around the ringtones. As these ringtones were also manually sync'd/copied, iTunes 11.1 made it another unfortunate, painful and inconsistent experience. Ringtones on the filesystem could be dragged to the iTunes/iPhone panel but this would create greyed out entries that would never transfer to the iPhone. Trying to 'sync' ringtones with the iPhone would result in iTunes wanting to sync all music/videos/ringtones etc which was not acceptable.

Through trial and error I was able to manually copy ringtones to the iPhone from iTunes without sync'ing - it was not at all obvious. As noted above, iTunes allowed users to drag and drop ringtones (AAC files with their .m4a extensions renamed to .m4r) to the iPhone with no end result: the behavior above is consistent to the manner in which users manually manage and copy music files to the iPhone but this same behavior differs for manually managing ringtones. There should be no reason that iTunes should allow such a drag/drop if this would never copy.

Instead iTunes 11.1 requires for the ringtone to exist in it's library - this can be achieved by double clicking the .m4r file or dragging it to the main iTunes panel. Once the ringtone exists the iPhone should be attached and in the iTunes' ringtone panel the ringtone should be selected and dragged towards the right of the screen. With this action a new panel will pop up which contains the list of devices connected, including the iPhone, to which the ringtone is dragged and dropped resulting in a manually copy the iPhone.

An utter mess. Inconsistent, hidden and absolutely not obvious - another example of poor design and engineering.



In the end, the end user experience for the iOS 7 and iTunes 11.1.x rollout was very typical of rushed software release: software that was still beta but forced through due to externally committed deadlines (the global iPhone 5c/5s sales release). Having worked in the professional s/w development and delivery industry since the dot com boom, it's very clear where the issues have been: but even without the technical background/experience, the end result is the same: a poor end user experience for iOS 7 - an upgrade which clearly enhances and improves upon the previous iOS releases but let down by poor management and rollout.

No comments:

Post a Comment