Showing posts with label iphone. Show all posts
Showing posts with label iphone. Show all posts

Tuesday, March 02, 2010

Migrating from the iPhone to the Moto Droid: Week 1

droid-vs-iphone

I have been using an iPhone 3G for a little over two years, and a year before that I was using a first generation iPod Touch. For those 3 years the iPhone (and its operating system) has been my handy companion, helping to keep me entertained, and on track with every aspect of my life. It _was_ the ultimate smart phone.

I have spent many years using various Palm PDAs and they always left me felt wanting - I didn't know what I wanted, but the iPhone filled that spot perfectly.

I have been completely satisfied until recently, and this week signed up for a new 2 year verizon wireless contract, and bought a Motorola Droid.

What led me to do this?
- iPhone 3G was becoming increasingly slow. (Jailbroken or not). In an effort to speed it up, I restored it to stock firmware and lost 90% of the functionality that is important to me in a smart phone. iPhone 3G stock is useless to me.
- AT&T reception. Where I work, and spend most of my weekends, AT&T reception is poor at best. In most cases it would be faster to go to an Apple Store, buy an iMac, then hand carry that iMac to a starbucks to check my email then wait for the iPhone to find service and launch the email application.
- Boring, and nothing new in sight. 2 years is a long time to have a phone. Last year's update to the iPhone (iPhone 3GS) wasn't enough for me to extend my AT&T contract another 2 years, or plop down $500 for an unsubsidized phone. This last apple event apple announced the iPad. There was no discussion of the iPhone, or even the operating system they share in common. This disturbed me. Concentrate on the product everyone loves, dont split your focus to another product that doesn't solve a problem for me...

What do I want in a smart phone?


The Droid so far does _almost_ everything my jailbroken iPhone could do (and with speed and service). There of course are some gaps.

First, what do I do with my iPhone exactly? What is important to me in a smart phone that I keep with me 24/7?

- Calendar Notifications. I NEED my phone to sync with whatever calendaring system I am using (Google Calendar currently), and even more important I NEED it to notify me of events that are on that calendar. (iPhone: Stock calendar application)
- Calendar Agenda. Again, I am all about calendar support. I NEED to see what the days ahead have in store for me. (iPhone: Jailbroken LockCalendar)
- To Do List. I try to be a very organized person. I like lists. I keep extensive to do lists to organize my life. My phone needs to be able to sync with whatever solution I am using for To Do lists, even if I have to hand write it myself.(iPhone: Things)
- Note Syncing. I write notes about a lot of things that I need to remember. Same as above. (iPhone: simpleNote)
- Easy access to all of my email accounts. I get a lot of email (who doesnt) (iPhone: stock email)
- Real web browsing. I can stand stupid phone web browsers. The iPhone MobileSafari has spoiled me. I need that in a phone.(iPhone: stock browser)
- Reliable phone service. I work on an air force facility. I frequently need to make important phone calls. I need reliable phone service.(iPhone: I wish)
- Music playing. My phone is my iPod. I do not wish to carry multiple devices around.(iPhone: stock mp3 application)
- Terminal/SSH ability. I like to be able to access remote servers that I own at free will.(iPhone: Jailbroken MobileTerminal)
- Customization. I hate it when my phone looks exactly like everyone else's. My phone is mine, it needs to feel like home. (iPhone: jailbroken WinterBoard)

So why didn't I just get an iPhone 3GS and jailbreak it? It's faster than the iPhone 3G, and it meshes with my current environment, BUT the current model of the iPhone 3GS can't be jailbroken reliably. It currently requires to be tethered to a computer EVERYTIME you reboot it. Phones suck, they aren't stable, their batteries die, they get rebooted occasionally. This is a deal breaker for me.

Week 1


Android does everything Google under the box (makes sense). To even activate your phone you have to give it a gmail address.

It automatically sucked down my Google Voice contacts, and it was a chinch to setup Google Voice on it. The market place isn't as plentiful as the AppStore, but it does seem to have a lot of the quality applications covered.

So far I use the following to replace features of my iPhone:

- Handcent. Text messaging application at its finest. This is almost equivalent to biteSMS on a jailbroken iPhone.
- Astrid. Pretty solid to do list software supporting tags and due dates. Doesn't quite replace Things for me, as I rely fairly heavily on the syncing capability. Astrid does seem to sync with RememberTheMilk, so I will give that a whirl.
- KeePassDroid. There's too many passwords for me to remember. On my desktop I use KeePassX (http://keepass.info/ is free and open source for all platforms). iKeePass on the iPhone kind of sucked. KeePassDroid is pretty sweet.
- Haven't found a note syncing solution yet.
- BetterTerminal. Pretty great terminal.

Android lets me configure every notification sound to my content. Everything can have its own noise, no hacking required.

Best part of the new phone so far? The speaker is incredibly louder than my iPhone 3G so I can actually here phone calls and text messages.

I think I will keep it for now....

UPDATE: Three weeks later, I have decided to keep the droid, and even ported my AT&T number to VZW!  Goodbye iPhone!

Monday, November 23, 2009

Scheduled iPhone Sync (OSX)

One of the more annoying things with having a "smart phone" is when its not uptodate with all your stuff.  A few weeks ago I wrote an AppleScript to sync my iPhone nightly at 3:00am every day.

Copy this script into the AppleScript editor, and save to a location on your harddrive.

tell application "iTunes"
repeat with s in sources
if (kind of s is iPod) then update s
end repeat
end tell


appleScript_iphonesyncNext step is to download and install Lingon and setup a launchd configuration to schedule your nightly iPhone sync.  Here are the settings I used:

lingon_iphonesync
Save your launchd configuration, logout and log back in - and enjoy!

Monday, June 29, 2009

Interface Builder: Tab Bar Application and children views

This is something that always bothered me while designing an iPhone UI in Interface Builder: When making a "Tab Bar Application", my child/tab views were always messed up, and not rendered the same as what I would make in Interface Builder.


Of course the whole thing was a big neophyte mistake on my part, but I figured I would share my findings for others that have such a problem.


For the sake of this post, I am building an application called "DemoApp", from the "Tab Bar Application" template in XCode.  My UI design in Interface Builder looks like this:




For the sake of this demo, I have also thrown away the default "SecondView" that comes with the template, in favor of using my own custom one as an example.


So how does this render on the iPhone?  Not at all how it looks in Interface Builder...



It took me FOREVER to figure out why my Views were getting clipped, and generally rendered incorrectly whenever I made a custom view to go inside of a TabBarController.  The secret?  On your custom view, enable the bottom bar!



So now your interface should look like this in InterfaceBuilder:




Which makes it MUCH easier to arrange your UI to render correctly inside of a TabBarController.  This little checkbox and my own carelessness caused me much stress and anger towards Interface Builder - hopefully this post will help someone resolve the problem more quickly than it took me!


Wednesday, January 28, 2009

I am a programmer, a scientist. I am NOT customer service.

I really enjoy getting emails like the following, from users who don't understand all the work it takes to give them something free to bash.



Well Connor.  Its people like you, that explains why I don't bother wasting my time fixing bugs anymore.  Ungrateful and non-constructive emails like this ruin it for everyone else.

For those curious, my response to him was:
Hey Connor, just to let you know; constructive feedback helps me fix its problems.  Your email wasn't very useful. Thanks

Friday, August 22, 2008

Hacking your iTunes to enable management/playback of your iPhone music on multiple computers




The iPhone has this nagging restriction, thats been driving me crazy since I traded in my iPod Touch as my main music playing device.

You can't plug your iPhone into a second computer (for example, at work) and play back music from the iPhone on your computer!

This just makes no sense, because the iPod Touch (and any other iPod) can manually manage music on multiple computers.

Below is how you can hack your iTunes to circumvent this stupid restriction.  A few caveats:

  • I have no idea how well this will work if your 2nd installation of iTunes is actually managing any music in its library

  • I have no idea if you can actually add/remove songs from your iPhone on the 2nd computer.  I wouldn't recommend it, but it probably will work.


Lets Begin

You will need a text editor, and a hex editor for your operating system of choice.  There are many free options for both Windows and OS X.  For this post I will be using Windows and Ultra-Edit.  Make sure iTunes is closed on both machines before making these changes.  Make sure to backup "iTunes Music Library.xml" and "iTunes Library.itl" on the second machine before editing.

Determine your iTunes Library ID for your first computer (the one your iPhone syncs with primarily)

  1. Locate your iTunes Music Library.xml  (Windows:  Usually in My Documents\Music\iTunes  OS X: Usually in /home/[username]/music/iTunes)

  2. Open this file in a text editor and find the line that looks like the following:
    <key>Library Persistent ID</key><string>79273A3FF1AD7693</string>


  3. Write down the value between the <string> tags, in my case "79273A3FF1AD7693"




Hack your 2nd iTunes

On the second computer you wish to enable playback with, do the following:

  1. Open the same file from step 1 above on this computer

  2. Write down the existing <string> value like step 2 above.  (This will be different then the one you have already written down)

  3. Replace the existing <string> value with the one from step 3 above.

  4. Save. Close File

  5. In the same directory that you found "iTunes Music Library.xml", you should also see "iTunes Library.itl".  Open this in a hex editor.

  6. Search for your Library ID in the file.  If there are no results, try adding a space every two characters in the Library ID and search again.

  7. Replace this ID with the one from your first computer.  (Should be EXACTLY the same amount of characters, otherwise this will not work)

  8. Save file.

  9. Open iTunes, and plugin your iPhone!




Last Steps

Your 2nd iTunes might pop a warning that says your iPhone is currently synched with another computer, and that syncing will erase all content.  Cancel this dialog.  Make sure your iPhone is set to manually sync on this computer, and you should be fine!

Saturday, August 09, 2008

Progress Update: iXboxLive 1.1

Wow!  I've gotten a huge response from the Internet about iXboxLive 1.0.  Over all mostly positive, but there are some big issues that I need to fix for the first update.

  • I've fixed the crash that occurs when theres no active internet connection, which often resulted in your iXboxLive buddy list to be whiped out.

  • I've hopefully fixed the source of random startup crashes.

  • I've increased loading performance significantly.  iXboxLive will load its main interface and add buddys to the buddy list as their information is retrieved.  (As opposed to what it does now, and waits for all the information retrieval to be finished before displaying the main interface)


More info to come.

Wednesday, August 06, 2008

Introducing iXboxLive - Available in the Apple AppStore

Xbox Live is great - there's no questioning that, but sometimes you just really want to check your Buddy List without having to turn on the Xbox, or fire up Xbox.com in a browser.

iXboxLive is your Xbox Buddy List(*) on your iPhone or iPod Touch!

  • See your select buddy list

  • See what they are currently playing

  • See their gamer pic

  • See their gamer score, gamer reputation, and location

  • See their list of recent games, including scores and last played dates

  • More features to come!


* This application uses the Microsoft Xbox Community Developer SDK, which is private and only available to a limited number of developers.  Due to limitations of this SDK, you will have to specify which gamertags to view on your local buddy list, and you will not be able to use all of the features you would expect from Xbox.com (like messaging friends)
** It is highly discouraged to add more then a dozen or so gamertags to your local buddy list.  The initial loading time of the application will increase significantly for each gamertag you add - so be cautious!


Sunday, August 03, 2008

Sundays and Project #2

Now that project #1 is out the door, and pending Apple review... it is time to start planning and working on the more important project:  Porting MobileTwitter to the AppStore.

Laid some foundation work this afternoon, will definitely need to revisit the icons used in MobileTwitter 1.5 (as they look like crap, and I need someone to make me new ones)

Sundays and Project #2

Now that project #1 is out the door, and pending Apple review... it is time to start planning and working on the more important project:  Porting MobileTwitter to the AppStore.

Laid some foundation work this afternoon, will definitely need to revisit the icons used in MobileTwitter 1.5 (as they look like crap, and I need someone to make me new ones)

Friday, August 01, 2008

iXboxLive - Now with 10% more Xbox!

Changed around the Gamer Details screen a little bit again:

  • Using the Xbox Orange

  • Using the Gamer score icon where appropriate

  • Bold header for Recent Games list


iXboxLive - Now with 10% more Xbox!

Changed around the Gamer Details screen a little bit again:

  • Using the Xbox Orange

  • Using the Gamer score icon where appropriate

  • Bold header for Recent Games list


Sunday, July 27, 2008

iXboxLive: Who doesn't love screenshots?

Nearing completion I think... today I changed the DetailsView around a little bit, and now it looks like this:



For reference, you can see what it looked like in the last revision here.

Thursday, July 24, 2008

iXboxLive Screencast