Category Archives: Mobile

Getting Started With iOS Development

I’ve been playing with development in several of the mobile platforms over the last year, and for iOS in particular. Many developers are intimidated because of the differences between objective-c and other languages and the differences between cocoa touch and other frameworks. How to get started is one of the most common questions around.

First you’ll need an apple computer. There are some ways around this, but they are on the gray-side of the law and certainly outside of the OS X terms of use.

Next, you’ll need Xcode. Download it for free at https://developer.apple.com/xcode/. Xcode is the development environment for both OS X and iOS based applications. You can develop for free, and even test iOS apps in a simulator. If you join the iOS developer program, for $99 / year you can deploy to devices (up to 100) for testing purposes. You can sign up for the program at the iOS portal, which also hosts all kinds of tutorials and guides available to members and non-members.

Apple just recently posted this a getting started guide that will walk you through the basics. They have many other great docs available on the iOS developer site, including this objective-c primer and a longer version here.

I recommend The Big Nerd Ranch Guide for iOS. Among the iOS developers I know, it’s considered the best book to start with.

And for troubleshooting, no post about iOS would be complete without mentioning stackoverflow. It is the best site for any programming question, not just iOS / objective-c questions.

If you take the time to use the resources available, and work with (not against) the platform and supporting guidance, I think you’ll find iOS to be a friendlier platform than it’s reputation would suggest.

My 45 Days With Win Phone 7, and the Move Back to iPhone

A while back, I bought a Windows Phone 7, specifically an HTC 7 Surround. I bought it used via ebay (for under $150), so as to not have it count as my contract subsidized phone. It was not an unlocked phone, and I was able to switch my SIM card from my main phone (an iPhone 4) to the WP7 without problems.

I bought the phone in order to have a chance to do some Windows Phone 7 development. As a developer with Silverlight experience, it’s a pretty easy transition to make. Sure, the dev toolset has a simulator, but I wanted to try out some apps and have my hands on the real thing. Plus, it serves as a nice backup phone, and it makes a nice portable gaming distraction (with achievements). Even without swapping the SIM card, you can use email, online apps, as long as wifi is available.

Soon after the purchase, my wife’s iPhone 3gs broke. At this point, we knew a new Apple phone was coming soon, so I gave my new iPhone 4 to my wife, and used the WP7, waiting for the new phone. She knows I do a lot more “technical stuff” with a phone, and was fine with taking the 4 and letting me getting the new revision when it released (I used her upgrade for the 4s). Yes, for a tech guy, that’s a great way for a wife to show love. All I had to do was holdout for about 45 days with a WP7.

I kind of looked forward to it, thinking it would be a chance to get a feel for just how good the platform was. For the record, this was the version of the OS just before Mango. Mango released the week I got my iPhone 4s.

So what did I think?

What’s Good?

It was a very usable phone. Contact management is nice on Windows Phone. All LinkedIn, Facebook, and regular contacts are merged (including Twitter in Mango). From that persons page, you can contact them via any of those methods. And rather than a favorites person list, you can pin them to your homepage, allowing very quick access to your favorite contacts.

The basics are covered in terms of apps. Social sites, games, utilities. And they are cheap and often free. The store is closer to Apple’s than the wild west that is Android, so that’s good.

The phone itself had pretty good battery life, nice sound, and I liked the kickstand. That line has been discontinued, and I’m not sure why. Maybe HTC wanted some new Mango specific features and needed a redesign. Regardless, it was a fine phone.

You only have one page to customize, but it’s completely customizable. And the second page is essentially a list of every app on your phone. It was a different way to organize than iOS, but I found it very usable.

Those front page tiles (as of Mango) can show you various news and status updates. For example, the weather app shows the current temperature on it’s icon, and contacts show their latest social status. iOS could use this feature, though I suspect it’s icons are too small to provide useful data.

Zune pass is nice. Spotify is taking a bite out of this market, but I did a month trial of the Zune pass, and I could listen to anything I wanted that was on the store. A few gaps, but in general the marketplace has a lot of songs. Zune recently added some new pricing structures to compete with Spotify.

Cost… If you’re due for an upgrade, you can get a nice WP7 phone for free. And I think the free options for WP7 are higher end phones that the free versions of Android phones. And the only free iPhone is the 3gs, which is fairly dates at this point.

What’s Bad?

The depth of the marketplace just isn’t there compared to the App Store. This is understandable because of how new the marketplace is, but with such a low marketshare, I’m not sure it will ever catch up. Developers are monetizing on the App Store, and Microsoft and Google can’t make that case as well.

Mango changed this, but when I used the phone, it was one app at a time. That’s hard to go back to. Especially when Apps seem to take a while to initialize.

Phone manufacturers can brand some parts of the phone, and even have their own sub-pieces of the marketplace. There was an HTC Apps shortcut on my phone, that took me to specific versions of apps like Youtube, etc. I assume this is so they can optimize the experience for their phone, but it fractures the app stats, and makes integration with other apps harder. It’s a step in the Android direction, and I don’t think that’s a smart direction. (Why does it matter if app stats are off like popularity? When I’m looking for popular apps on a new phone, I would expect things like youtube to be at the top. But if youtube has 6 private label versions, it gets pushed down the list.)

Finally, there’s just a certain je ne sais quoi to the iPhone, that WP7 doesn’t have. Yes, that’s completely subjective, and a lot of it is based on personal experience. But this is a blog, and I’m telling you about my personal experience with the phone.

The Fine Print…

I bought a used phone, with some mild wear and tear. I have had 3 iPhones, all brand new purchases. That adds to the experience.

I’m invested in the iTunes store in terms of music and apps. I never really commited to WP7 and the Zune marketplace that way.

I should have spent more time seeing if there was cool integration options with my XBox. That kind of stuff sells me on a product.

Summary

WP7 is a nice platform. If I were banned from Apple products tomorrow, I would have to think long and hard about WP7 vs Android. I think WP7 is better (than Android), my only hesitation is that phones are about apps and integration, and both of those things suffer when marketshare is low.

Maybe the best way to describe the difference is by saying what I like best about iPhone. Despite being closed and proprietary, it doesn’t feel commercialized, because Apple is the only hardware maker, there isn’t hardware advertising and private labelling. Those things detract from the experience, and Apple is all about design and experience. Combine that with content, and you have a winner.

Apple brings huge headstart in content, and that’s hard to overcome. Just look at Windows vs OS X. There are virtual machines and compatablity layers, but at the end of the day, users had years of content and applications that ran on Windows, that they weren’t ready to give up on. As cloud based services and web-based applications take over, we’ve seen that the Windows market erode a bit. And eventually, that may be the case for phones and tablets too, but we’re not there yet. Apps still matter.

That’s why I think Microsoft’s Windows 8 strategy is smart. The more they can move developers to HTML 5 and Javascript, the easier it is to develop cross platform for mobile and tablet platforms. The WP7 and Windows 8 marketplaces can merge, and leech off HTML 5 developers that are targeting the higher marketshare platforms. If there is minimal overhead to developing cross platform, then WP7 will get a number of apps that is disproportionate to it’s marketshare.

I’m happy to have the WP7 around for development purposes. And would recommend it to users who don’t like the iPhone and aren’t invested in App Store already. Particularly if they are gamers with live accounts. But it isn’t a primary platform for me.