What I Hate About the HTC Evo 4G, coming from the iPhone

I’ve just migrated from an iPhone 3G to an HTC Evo 4G. I can’t deny that I miss my iPhone. I wanted to express my thoughts about the change and hopefully it’ll be helpful to anyone migrating. Now granted, I still like many things about the Evo, and you’ll find thousands of post that describe what’s great about Evo: 4G capability, Android, widgets, more customizations, big screen, dual camera, and because it’s not AT&T… the ability to actually make calls from NYC! What I can’t seem to find enough though, are things people dislike, especially when coming from the iPhone.

All of these refer to native apps / peripherals and how they compare to iPhone native apps. I understand that you can get replacements from the Android store.

Contacts App

  • Contacts cannot be sorted alphabetically by last name.
  • Contact Pictures get pixilated when they sync with Google.

Other Apps / Widgets

  • Calendar widget on the desktop does not show the current date like the iPhone Weather app does NOT show any cities I’m interested (like Little Neck or Lindenhurst) in other than NYC.
  • Voicemail widget does not (at least for me) show the number of new voicemails.
  • No native Notepad.
  • Tight restriction on the size you can assign to your wallpaper or contact portrait.

Phone App

  • Sometimes when people call me, it doesn’t show the portrait because the phone recognizes the incoming number as 212-… and I used 1-212-… in their contact info

General UI

  • There’s generally 2x to 4x as many button presses to get to the actions that I want. For example, trying to assign a default action to a contact. I wouldn’t mind as much, except navigation is intuitive.
  • No media manager like iTunes. As much as I despise iTunes, it lets you manage podcasts.

Actual Phone

  • Does not come with a headset / headphone. What the HELL?!?!?
  • Finding a headset / headphone with a remote control like the iPhone that lets me control the music playback, is difficult. I’ve just tried 5 different ones and none of them work.

Android Store

  • Does not except Paypal
  • Credit card is not always excepted. I’ve put two credit cards (Mastercard and Visa), and they always get rejected with no helpful error message.

Peripherals

  • Easy to get peripherals – Any electronics store has a separate section for just iPhone. Android has been around for years, but because there’s so many variations of phones, there’s a less variation.

Important Phone Features

My AT&T contract expires in August and am considering what phone I should get. The progress of the iPhone is practically stagnating compared to how much Android is making progress. Not to mention the incredibly sucky service AT&T provides and how much cash you have to shell out for it. So I’m considering getting away from the iPhone. Anyways, for my next phone, I’m looking for:

  • Good reception
  • 4G
  • Act as a hotspot
  • Android or iPhone OS
  • The phone must have headphones that function as a remote to control songs (pause/play)
  • Physical Keyboard

That’s really it. Also, I’m looking for a platform that provides the following apps:

  • PDF reader
  • Chm reader
  • Weather
  • Google maps
  • Lirr schedule + map
  • Subway map
  • Rss reader
  • Twitter app
  • Fandango
  • Chat
  • YouTube
  • Radio podcasts
  • Wikipedia
  • Yelp
  • Imdb
  • Taxi
  • Soundhound
  • Facebook
  • Linkedin
  • Amazon

Which both the Android and iPhone OS provide. I would’ve gotten the EVO 4G except it didn’t have a physical keyboard. We’ll see what comes out this year.

Convert Minutes to Hours

I often use both Winamp and my iPhone to listen to music. These two, unfortunately, show the time differently in the songs. Winamp displays the time in minutes (mm) while the iPhone does it hour/minutes (hh:mm). Here’s a quick little script I whipped together because I’m too lazy to do this in my head, especially for audio books where an audio book can be over 500 minutes, and I need to convert to iPhone time because I want to continue listening where I had just left off on Winamp.

use POSIX qw(ceil floor); # used for the floor function
 
sub GetToken {
  # @_ = flatten args list from an array
  # @_[0] = first argument
 
  $data      = @_[0];
  $delimiter = @_[1];
  $token     = @_[2] - 1;
 
  @tokens_array = split($delimiter, $data);   
 
  return @tokens_array[$token]; 
}
 
sub chr_conver_min {  
  if (length(@_[0]) == 1) {
    return "0".@_[0];
  }
  else {
    return @_[0];
  }   
}
 
 
sub iphone_time_convert {
 
  # converts winamp time to iphone - winamp stores time only in minutes.  
  # @_[0]   =  winamp_time, e.g. 124:34
  # $hour   = floor($winamp_time/60);
  # $minute = $winamp_time % 60;
 
  $winamp_hour_min = GetToken(@_[0], ":", 1);  
  $winamp_seconds  = GetToken(@_[0], ":", 2);  
 
  return floor($winamp_hour_min/60).":".chr_conver_min( ($winamp_hour_min % 60) ).":".$winamp_seconds;
 
}
 
 
sub winamp_time_convert {  
 
  # converts iphone time to winamp  
  # @_[0] = iphone_time, e.g. 3:43:34    
  $iphone_hour     = GetToken(@_[0], ":", 1);  
  $iphone_min      = GetToken(@_[0], ":", 2);    
  $iphone_seconds  = GetToken(@_[0], ":", 3);
 
  return (($iphone_hour * 60) + $iphone_min).":".$iphone_seconds;
 
}
 
sub show_help {
  print "\nDisplays the conversion of time between winamp and iPhone.\n\n";
  print "   winamptime [-w2i|-i2p] [mm:ss][hh:mm:ss]\n\n";
  print "Example to convert winamp time to iPhone: \n\n";
  print "   winamptime -w2i 212:41\n\n";
  print "Example to convert iPhone time to winamp, seconds being optional: \n\n";
  print "   winamptime -i2w 2:31:41\n";
  print "   winamptime -i2w 2:31\n\n";
}
 
 
# START
 
# Optimize this:
if( $ARGV[0] eq "-w2i" ) 
{
  # winamp to iphone time
  if ( length($ARGV[1]) > 0 ) {
    print "iPhone Time: ".iphone_time_convert( $ARGV[1] )."\n";
  }
}
elsif( $ARGV[0] eq "-i2w" ) 
{
  # iphone to winamp time
  if ( length($ARGV[1]) > 0 ) {
    print "Winamp Time: ".winamp_time_convert( $ARGV[1] )."\n";
  }
}
else 
{
  show_help();
}

Output:

Converting M4P to MP3

The M4P format is proprietary to iPhones/iPods. I needed to modify some songs that I got from the iTunes store. First I used Sharepod to remove the M4P files from my iPhone. Then I used SoundForge to record the song from Winamp playback. Winamp does not play M4P files natively, so you’ll have to install the M4P plugin. Also, you may have to run the Windows Master Volume tool to properly unmute the audio source.

If you want to burn M4P files from iTunes, create a local playlist, and drag-and-drop the M4P files you got from Sharepod into the local iTunes playlist.

Sharepod Manages iPhone/iPod Songs

Just tried out Sharepod. It’s a great free program to extract songs from your device. No installation needed, since it’s a standalone executable. No ads or sign-ups. I did come across some quirks though.

I was able to:

  • Delete MP3s from my iPhone
  • Copy MP3s from my computer onto my iPhone
  • Copy MP3s from my iPhone onto my computer

I was not able to:

  • Update a playlist when I copied an MP3 from my computer to the iPhone – still need iTunes
  • Do anything with the Photos options on Sharepod – when I click on  “Photos” the application locks up.

Ways to Develop on the iPhone

So there’s a few ways so far to develop native apps for the iPhone. Let’s count the ways:

1. The Apple Way: These technologies are the native tools that Apple encourages developers to use. They include Objective-C, Cocoa, XCode and Interface Builder. You can find more information at the Apple Developer website.

2. The .NET Way: The Mono project’s version of the .NET framework. You can use C# and the .NET framework to make native apps. Check out MonoTouch for more information.

3. The Titanium Mobile Way: It’s a framework that lets you code native apps using HTML, CSS, and Javascript. Check it out!

4. The Adobe Way: In Flash Professional CS5 (not out yet). You can use ActionScript to create Flash applications that will compile natively to the iPhone. Read more about it in Adobe’s FAQ.

The biggest downside is if you’re a Windows user, you’re mostly out of luck. Flash Professional CS5 is the only one so far that lets you develop on a Windows machine. The rest are for MacOS’s.