Ditching the MyTouch 3G for the MyTouch 4G
My first smartphone was the second Android phone released—the original MyTouch 3G. Not the Fender. Not the 3.5mm headphone jack. The original. From the beginning, it was a pretty crappy phone. I mean it did basic smartphone things but the touch responsiveness was poor (you really had to press into the screen to get it to respond), and the 192 MB of RAM meant it took an extra couple of seconds to do anything. Angry Birds is basically unusable on that phone. So after a year and a half, I’ve been dying to upgrade.

For a while I was considering the MyTouch 4G, the Nexus S, and the (at the time upcoming) Samsung Galaxy S 4G. The Nexus S definitely appealed to me for being pure Google Android. No Zip Whiz bang my head non-Sense overlay. At the same time, it did, in fact, feel like cheap plastic. Its screen was a fingerprint magnet. And it was still 3G speeds, which is not that big a deal now, but as the T-Mobile network keeps growing, (what they call) 4G will be something I want to take advantage of. The Samsung Galaxy S 4G had potential but it also felt a bit light, and it had no flash on the camera and less internal storage than the original Samsung Vibrant.

I had heard quite a few bad things about the MyTouch 4G, too, though. It’s ugly. The speakerphone sucks. The battery life sucks. There’s too much bloatware and trialware. After futzing around, I finally went with the MyTouch 4G. Yes, I know there are crazy dual-core phones right around the corner, but Angry Birds was calling me, and I had to answer. Besides, the MyTouch has 768 MB of RAM. That’s four times what my old phone had.

HTC Sense on the MyTouch 4G: unbearable
I’d tried Swype before on the MyTouch 3G, and I was not enamored with it. It takes too long to drag my finger over every letter. I can use the Android regular autocomplete suggestions after two or three pecked letters, and it’s much faster and takes less concentration. I thought I could just select the regular Android keyboard instead of Swype. I thought Sense may be heavy but I can use ADW Launcher instead. I thought the bloatware is there but I can just not use it. I don’t need to actually remove it. I was wrong on all counts. The version of Android the MyTouch 4G comes with is terrible. I couldn’t stand it.

First of all, the choices of keyboard are Swype, Touch Input, and Dragon Dictation. If you change the keyboard from Swype to Touch Input, you don’t get the regular Android keyboard. Instead you get basically the same Swype keyboard but with no Swype. This keyboard is annoying because the autocomplete suggestions either are not there at all or are selected for you automatically. I don’t want the keyboard telling me which of the suggestions I want. They are suggestions only. I’ll decide for myself which suggestion is best. I tried to install the stock Android keyboard manually, but it would force close every time I tried to actually type something. After Googling, I found that force-close was a common problem.

ADW Launcher allowed my home screen to look relatively normal, but the app drawer and all the system settings interfaces still looked overly bubbly and cartoony.

And the bloatware was extremely excessive, to the point where I would have to basically have an iPhone-like home screen littered with all my app icons, since sifting through all the app icons in the drawer and skipping over the bloatware would take too much scrolling. Never mind that it was difficult to scroll left or right without accidentally activating one of the icons I was trying to scroll past.

Also, the so-called “Genius button” is basically useless and slow. I just wanted my normal search button back.

If I didn’t know anything about rooting, I’d have just returned the phone for a refund. This OS was godawful.

The rooting process: harder than before
When I rooted the MyTouch 3G, it was easy to find instructions that worked, and the instructions weren’t that intimidating. Not so this time. I spent a good chunk of the night and then the next morning doing trial and error and a lot of Google searching to figure out what really worked. The instructions on the Cyanogen wiki left me trying to adb and being told permission was denied. The Android SDK didn’t include adb at all initially. Some rooting instructions said to use Visionary to temproot. Others said specifically not to.

For the curious among you, here’s what actually worked for me. I’m using Ubuntu Linux, but similar instructions probably apply for Windows and Mac OS X.

Download the Android SDK and make sure adb is installed
Go to the Android SDK website and download the appropriate SDK. I’m using Ubuntu so I downloaded the Linux one. There is one for Windows and one for Mac. I also installed Java. Specifically, I installed the sun-java6-plugin package, but I’m not sure if one of its dependencies was all I needed.

Then I right-clicked the SDK download and selected Extract here. Using the terminal, I changed to the tools subdirectory and did ./android and chose to update all and that installed adb. Once I did that, I was able to ./adb whatever commands I needed.

Prepare your phone
Install Android Terminal Emulator, ROM Manager, and VISIONary.

Make sure USB debugging is on. Turn off the fastboot option in settings.

Download gfree and extract its contents into the android-sdk-***/platform-tools/ directory.

Doing the actual rooting
The full instructions (including a whole bunch of disclaimers and instructions for unrooting later) are on Xda Developers. Here are the highlights, though.

  1. Plug your phone into your computer.
  2. Using the Android SDK and adb, run the command
    adb push gfree /data/local

    (I had to actually run

    ./adb push gfree /data/local

    to get it to work).

  3. Unplug your phone.
  4. On your phone, run VISIONary to gain temporary root. To verify this worked, scroll through your list of apps. The SuperUser app should be in that list.
  5. On your phone, open the Android Terminal Emulator application and type
    su

    to get root privileges.

  6. After confirming root privileges is okay, type
    cd /data/local

    and then

    chmod 777 gfree

    and finally

    ./gfree -f
  7. After a bunch of terminal output, it should be done.
  8. Turn off your phone. Then while holding the volume down button, power up again. Double-check that s=off and the bootloader version is 0.86.0000. If so, it worked! You’re rooted.
  9. Reboot and run VISIONary with temporary root but check to set the system to r/w afterwards. If that works, then run VISIONary to set permanent root.

Install the Cyanogen rooted ROM

  1. Download the latest Cyanogen ROM (for me, that was Cyanogen 7.0.0 RC 1). Optionally, also download the corresponding Google proprietary apps. Put these in the top-level directory of your phone’s MicroSD card.
  2. Launch up the ROM Manager application.
  3. Click to install the ClockworkMod Recovery.
  4. Once that’s successfully installed, click to reboot into ClockworkMod Recovery.
  5. Once booted into recovery mode, select Wipe data/factory reset. Then select Wipe cache partition. Then Install zip from sdcard and select the Cyanogen ROM. Then Install zip from sdcard and select the Google Apps if you want them.
  6. Finally, select Reboot system now to boot into the Cyanogen rooted ROM.

Gingerbread is sweet
Now I get the appeal of the Nexus phones. Maybe the Nexus S doesn’t have cutting edge hardware specs. Maybe the plastic feels a little cheap. Maybe it’s tough to see the screen in the sunlight. Maybe it’s a fingerprint magnet. But the vanilla Android is much easier to use than HTC Sense + Swype + bloatware. I’ve got my normal keyboard back. I’ve got not too many extra applications. The “Genius button” has changed back to a normal search button.

Thank you, Cyanogen team! I donated to you only once, but I’ve gotten more than my money’s worth back.

A couple of years ago, I posted An unbiased view on Macs, because I couldn’t find anything even remotely resembling an unbiased view. I looked to see if there was an unbiased view of Android vs. iPhone, and I actually found one. It’s right here: Android vs. iPhone. It’s an extensive list, from a Mac developer who also happens to have a Nexus One, of pros and cons of Android, using iPhone as an opposing reference. I quite like the list. It really doesn’t reek of fanboyism. So if you’re interested in a comprehensive list of pros and cons, that’s the link you want.

I’m presenting it in a bit of a more personal view—why the iPhone appeals to me (why I love using my wife’s iPhone), and why I still use an Android phone.

First of all, I want to say that I think arguments fangirls and fanboys have about Android and iPhone are usually stupid. They tend to be arguments about which platform is “better” or which is more popular. The problem with “better” is that it is a vague and meaningless term that doesn’t help consumers make a choice. The bottom line is that neither the iPhone nor an Android phone will be the best smartphone product for everyone‘s mobile lifestyle. iPhone will be better for some. Android will be better for some. And some will find both equally good or equally useless.

So I’m more interested in the practical. What are the kinds of things that are important to you in making a smartphone purchase?

What I like about the iPhone
I know a lot of people who have iPhones. I’ve played with my friends’ iPhones. I’ve seen strangers use them on the bus. I’ve played with them in the Apple Store. I’ve “borrowed” my wife’s iPhone periodically. Here is what I can tell:

  • iPhones are sexy. The displays look good. The casing looks sleek. Even third-party apps generally tend to look better than their Android counterparts.
  • The interface is designed with touch in mind. That makes sense, since it is a touchscreen OS. One hard button takes you to the home screen if you press it once and then to search if you press it twice. Everything else is through the touchscreen. Android has too many hard buttons (Menu, Back, Search, Home, a trackball).
    Edit (March, 2012): I now own a Galaxy Nexus, which uses soft buttons for Recent Apps, Home, and Back. By default, there is a contextual Menu button and no more dedicated Search button. It looks as if Google is trying to move more in the direction of going fully touchscreen.
  • The touchscreen is very responsive (you’ll notice in a lot of YouTube videos comparing iPhones to Android phones that the reviewer often has to swipe or tap a couple of times for it to register on the Android phone). Pinch-to-zoom is a lot faster—there is no lag.
  • Multi-tasking is not a priority. Yes, I know some people view this is as a con against the iPhone, but I view it as a pro. I agree with Steve Jobs that performance and battery life matter more than multi-tasking. I really don’t use more than one app at a time anyway.
  • Here’s another one I like that I’ve heard many iPhone users complain about—notifications. I like that they just appear and then disappear. One thing I dislike about Android is that, to get rid of notifications, I have to swipe down the notification bar and then either click on the notification or click Clear to clear it. A notification should just notify me and then go away. I don’t need it lingering and requiring a lot of extra taps and swipes to remove.
    Edit (March, 2012): Since iOS 5, iPhones now use an Android-like notification in addition to the old notification system that pops up. This, for me, has now become a con for iPhone, since it essentially has the Android problem, making the interrupting notifications redundant… but still interrupting.
  • Updates come right away to all phones whose hardware can support the latest version. Don’t get me wrong—I definitely think criticisms of so-called Android fragmentation are exaggerated. Fragmentation doesn’t have much direct effect on the end user. But there is a real sense in which consumers just like to have the latest and greatest. If a new version comes out and Google says “Hey, it’s got this cool feature and that cool feature,” and you know your phone is powerful enough (enough processor speed, enough RAM) to support the update, it can be frustrating not to be able to install the update right away, and not everyone is geeky enough to risk a voided warranty to install a rooted rom (rooted roms can also be extremely buggy). With the iPhone, you just plug your phone into your computer, and iTunes will install the newest version of iOS as soon as it’s released.
    Edit (March, 2012): Google has three items in its “Nexus” line that get vanilla Android and over-the-air updates from Google in a timely fashion—the Nexus One, the Nexus S, and the Galaxy Nexus.
  • I may be the only Linux user who thinks so, but iTunes is a nice interface, and over the years it’s just gotten snappier in performance. I love the smart playlists and syncing capabilities. When it works, it works extremely well. Of course, I also know some iPhone users (particularly ones who have tried to use their iPhones with multiple computers) who have had a lot of bad experiences with iPhones and iTunes connectivity.
  • Even with the growth of Android as a platform over the past two years, sometimes there are apps available for the iPhone that are not available for Android. One that comes to mind is Netflix streaming. The iPhone has had this many months now (almost a year). Netflix just has murmurings about it possibly coming to Android “soon” and then for only select devices.
    Edit (June, 2011): Netflix now has streaming on just a handful of Android devices.
    Edit (March, 2012): Now almost all (maybe all?) Android phones on the market can play Netflix.

Why I’m sticking with Android
I don’t get fanboyism or fangirlism. How can you think one popular product is superior to another in every single way and not acknowledge that people have different needs and preferences? How can you not even acknowledge that almost everything (if not everything) in life has both pros and cons? Well, I’m definitely an Android user, but, as you can see, there’s a lot I admire about the iPhone.

Nevertheless, I won’t be switching to an iPhone any time soon. Here are some great things about Android that keep me there:

  • I love Google Voice, and its integration into Android is seamless. Back in 2009, they tried to submit an app to the iTunes App Store, and Apple rejected it (or just simply didn’t accept it, depending on what semantic backflips you want to employ). My guess is that Google then put zero effort into the iPhone Google Voice app for the next year and a half so that by the time it was released it was just garbage (I know because my wife tried it out on her iPhone). Maybe after a few updates Google Voice for the iPhone might be usable, but even then there are some levels of integration Apple simply will not allow. With Google Voice I get free, unlimited text messaging. I can block numbers. More importantly, I have one number I can give everyone, and it can ring my Android phone when I have my phone on, or it can ring my GMail account when I’m on the computer. Voicemail transcriptions are notoriously inaccurate (almost hilariously so), but they are still better than nothing.
    Edit (March, 2012): Google has since updated to the Google Voice iPhone app, and it’s now better, but it still doesn’t match the quality of the Android app and, without jailbreaking, cannot integrate fully with the iPhone.
  • On a related note, Android has the ability (and has had this since at least Android 1.5, Cupcake) to send certain numbers straight to voicemail. So even if people call my real cell phone number (not my Google Voice one) as a wrong number, I can just add them to my “wrong number” contact, and I’ll never have to hear the phone ring again when they call. If they call my Google Voice number as a wrong number, I can add them to “wrong number,” and they’ll simply be blocked—they won’t even have the opportunity to leave me a voicemail.
  • The keys on the iPhone keyboard are easier to peck at accurately, but I still prefer the Android keyboard for a couple of reasons. To sum up quickly, it’s the visual distinction between upper- and lower-case letters, as well as the autocomplete suggestions. You can read in more detail in my The Pros and Cons of the Android Keyboard entry.
    Edit (March, 2012): the Gingerbread (Android 2.3) keyboard is the best I’ve found so far (yes, I’ve tried Swype and all the Swype-like keyboards—no thanks), because of how many auto-suggest options it presents for words as you type. Unfortunately, the stock Ice Cream Sandwich (Android 4.0) keyboard regressed a bit (only three suggestions, and you have to long-press the middle suggestion to get more suggestions). Fortunately, you can still install the Gingerbread keyboard through the Android Market (now called Google Play).
  • Occasionally we’ll rent a ZipCar and drive around some place we’re unfamiliar with. Turn-by-turn GPS navigation is really helpful during those times, and that comes with Android for free… even though the voice is a little scary. My wife and I call her the dominatrix.
  • I don’t think it matters that the iTunes App Store has more applications than the Android Market has. Most of the important ones are present in both stores. More importantly, Google can’t tell you what not to install. Even if an app is rejected by the Android Market (which is rare), you can still choose to override that and install apps outside the Android Market (you get a big warning that is a security risk, of course). Now with the new web Market, you can install apps on your device remotely using your computer. Google also allows you to install various web browsers and email clients. There are no restrictions on apps with a claim that they duplicate core functionality of Android.
    Edit (March, 2012): Apple is now allowing for other web browsers like Dolphin, Opera, and Skyfire, but you can’t set your default web browser to anything other than Safari without jailbreaking.
  • In theory, at least, Android can use Flash in its web browsers. You have to have Android 2.2 or higher, though, and your phone has to have hardware that supports it. The ability to play Flash is never a con. Even if you don’t like Flash, you don’t have to use it, and as far as I can tell it is just Flash on demand anyway (you have to manually decide to play Flash to get it to play).
    Edit (March, 2012): Adobe is going to stop developing Flash for Android in the future

So should you get an iPhone or an Android phone?
Well, I don’t know who you are, but I will tell you that the iPhone world and the Android world are very much eco-systems.

If you want the best experience from an iPhone, you should have an iTunes account and use iTunes to manage your music. It’d be nice to have a Mac with Mail and iCal as your main email client and calendar, respectively, and to use iPhoto to manage your photos. Your music, mail, address book, and photos will sync up when you plug in your iPhone.

If you want the best experience from an Android phone, you should have a Google account and use it for GMail, Contacts, Google Voice, and Calendar. You shouldn’t mind dragging and dropping music files to removable storage (even from iTunes) instead of having things automatically sync. Ideally, you should actually prefer dragging and dropping to iTunes syncing.
Edit (March, 2012): I have found an amazing pay-for app in Google Play called iSyncr. If you’re really conflicted about wanting an Android phone but “needing” iTunes, iSyncr is worth the investment.

Since I use Windows, Mac, and Ubuntu all regularly, drag-and-drop (as opposed to iTunes syncing) is ideal for me. I know that isn’t the case for everybody. And since I use three different operating systems, it’s nice to sync to “the cloud” my emails, contacts, and calendar, instead of to a single computer.

It’s certainly possible (and I know people who do it) to use an iPhone with a Windows computer and a GMail account. I just don’t think you’re getting the most out of it by doing so. Likewise, a hardcore Mac-Safari-iCal-Mail-MobileMe user who has no GMail account could use an Android phone but would also not get the most out of the phone by doing so.

I hope this has been helpful in some way. As always, use what’s best for you. There is no empirical “best” for everybody.