Starting iPhone Development

I hope it has become apparent through my writing that I really want to become a part of the startup ecosystem as soon as I can. Even though this is a great time to be looking for a job with a startup, there are two big hurdles for me to achieve this goal. First, I am not confident enough in my programming abilities to feel like I would make a meaningful contribution in a small startup. And second, it is hard to meet other like-minded geeks where I currently live (Tampa, FL). I don’t see us moving anytime soon (without a job waiting for me at the other end of the journey!), but I am trying hard to improve my coding skills in the meantime to overcome my first hurdle.

I am a huge fan of Apple products and own an iPhone, iPad, and MacBook Pro (and want a new iMac and MacBook Air!). I absolutely love my iPhone and see it as a very promising platform for the foreseeable future. Apple has a large, growing, happy userbase (that is willing to pay for apps if I decide to go it alone and sell my own apps). So, since I love my iPhone and am confident in the future of the iOS platform, I am going to focus my coding on just that. I spent some time during college in a mobile app development class where I learned some iPhone development, but mostly learned Android development. So I am basically starting from scratch.

I recently purchased two books: Craig Hockenberry’s iPhone App Development: The Missing Manual and Joe Conway & Aaron Hillegass’ iPhone Programming: The Big Nerd Ranch Guide. I have tried going through both of them, but it is really hard for me to stay focused reading so much about development before actually getting to get my hands on the code. I’ve also tried the Stanford iPhone programming courses available via iTunesU, but run into the same problem - I tend to lose interest. Does anyone have any suggestions for other, more hands-on ways to learn iOS development that are still comprehensive? (I fear that going through simple tutorials I find online would not be comprehensive enough.) Anyways, hopefully this will (finally) mark the beginning of a successful month or two of learning iOS development for me.

Why I Like(d) Echofon

I love twitter. I may not tweet a lot, but I am following 214 people and read every tweet that comes my way. Twitter is great for content consumption. I learn about breaking news, all sorts of new technologies and web services, and what some of the people I respect the most have to say 140 characters at a time. Since I spend most of my waking hours at work, I tend to use an iPhone twitter client as my main way to access twitter. My main twitter client has been Echofon for quite some time. I tried twitter’s official client right when it was introduced, but never could quite get into it. I have a few main requirements for my twitter app:

  • FAST and easy Instapaper integration. Most articles I come across on twitter that I find interesting are too long for me to read immediately, so I use Instapaper to read them later. Instapaper is a great service, and I love using it, but it takes three actions in twitter for iPhone to send a link to Instapaper. You have to swipe the tweet, tap the paper clip icon, then tap “read later”. In Echofon, all you do is hold your finger down on the link for a second and then click “Add to Instapaper”. (More on this in a bit.)
  • Ability to load many (~200) tweets at a time. Since I like to read every tweet that comes my way, I need the ability to load all tweets that come my way overnight. This is usually around 150 tweets. Echofon can load up to 199 tweets at a time it seems, while twitter for iPhone can only load around 100.
  • Ability to quickly access links (especially pictures). Another nice feature of twitter for me is all the pictures people share. Echofon has a great feature where it can load only the image (and not the rest of the link) for images shared through many popular image sharing services. Twitter for iPhone does not, unfortunately (edit: it looks like it does work for TwitPic and yFrog, but not others like Instagram or Flickr).

Since Echofon satisfies all these requirements for me, and I’ve been using it pretty much exclusively since I joined twitter years ago. Twitter for iPhone is a great app. It’s very intuitive and elegant, but it just doesn’t fit into the main ways I use twitter. Yesterday, however, Echofon came out with an update that basically broke Instapaper integration. I am going to see if I can roll it back tonight, but it looks like I need to find a new iPhone twitter client to use until Echofon updates their app. Any suggestions out there? Leave them in the comments!

My current home page. I find it interesting too see what services and apps I decide to keep on here and how it changes over time.

My current home page. I find it interesting too see what services and apps I decide to keep on here and how it changes over time.

Path

I know I’m about a week late to this, but wedding planning has kept me pretty busy lately. I want share my thoughts about the latest social network in town…Path, the new photo sharing social network with a twist. The twist is that you can only “friend” up to 50 people. After 50, you have to start deciding which friends mean more to you than others. I think this is a very interesting concept for several reasons.

First, I truly believe that once several of my friends join Path, I will become a much more active user of it than of Facebook. I don’t really participate in Facebook because I don’t care to share my life with ALL my “friends”. I enjoy learning what my good friends are up to, but couldn’t care less about all the farming and quizzes all of my friends are participating in. Path is all about sharing experiences (moments) only with your close friends, which is the only part of Facebook I really enjoy.

Second, and related to my last point, is the 50 friend limit. Imposing a 50 friend limit will ensure just that…that they are truly my friends. While 50 may seem like an arbitrary number, I think it is plenty for me. I think it would be hard to keep that many close friendships, and that is what Path is all about - close friendships.

Finally, Path has a beautifully simple interface - both on the iPhone and the website. This reminds me of a recent post by Fred Wilson where he talks about how startups should develop for the mobile web first and then says that some of the best websites mimic their mobile counterparts. Path’s website is very similar simple and very elegant, just like the iPhone app. While the Facebook iPhone app is similarly simple and elegant, the Facebook website is too cluttered and busy for me.

Overall, I think Path could have a  very interesting future. I find it very refreshing and useful that you are limited to 50 friends on Path. I think that will make for a much more tightly-knit community. One thing I wondered about, however, was Path’s apparent choice not to use foursquare or some other service to provide locations. When I created my first “moment” on Path, I was forced to add my work to the location directory. I wonder if they had any specific reason for not using foursquare’s API…

Fast App Switching in iOS 4

Like a lot of people, I downloaded iOS 4 to my iPhone as soon as it was available. I really like the direction Apple is going with this new OS, especially with the multitasking functionality. There is one aspect of the new “fast app switching” that bothers me a little bit. With the old OS, whenever I would open a stream-based app (like Echofon, Tumblr, or Facebook), the app would automatically load new posts for me, which I liked a lot. I did not have to click the refresh button every time I opened the app. After upgrading the OS, I started receiving updates to the different apps. Facebook and Tumblr updates came fairly quickly. Both of those apps now require me to click the refresh button every time I open them.

I understand the necessity for this functionality for fast app switching and multitasking to work (it wouldn’t be so fast if you had to wait for a refresh every time you jumped between these apps would it?). I was hoping that there could be some way to make the apps automatically refresh themselves if you haven’t opened the app in a certain amount of time or by some other measure, because most of the time when I open one of these apps, it has been a while since I last checked the app and would like it to update. It does just take the press of one button, but I liked how it used to be where the app would refresh itself automatically.

Finally, last night, I saw an update to Echofon and downloaded it, but was not looking forward to having to refresh it every time I wanted to check Twitter. To my delight, they appear to have added some sort of time period after which the app will update itself once you open it. If you quickly switch away from and back to Echofon, it will not update itself. But if it has been a while since you were last in the Echofon app, the Twitter stream automatically updates itself. I love it! I hope that all stream-based apps will function more like this going forward.

Online Storage Providers

I’ve spent quite a bit of time over the past several months looking at different online storage companies. I’ve looked at several, including dropbox, box.net, SugarSync, GoAruna, Windows SkyDrive, and simply using space within my gmail. Let me start by saying that it is truly amazing how much you can get for free with these services. With most, you get 2 GB for free. With SkyDrive, you get 25 GB! That is incredible. I can remember my first email account having a few megabytes of storage available and now storage is so cheap that these companies can offer gigabytes for free. I am amazed by how much you can get for free on the web - from streaming music (Pandora/Last.fm) to blog hosting (Tumblr/Posterous/Wordpress) to productivity suites (Google Apps/Microsoft Word and Excel in SkyDrive).

Anyways…at the beginning, I simply wanted a way to see all my recipes while I was in the grocery store (or anywhere, really), so I needed a storage service that had an iPhone app (or was at least easily web-accessible). After looking at SkyDrive and my gmail option, I ruled those out. The web interface just wasn’t that great when compared to the native iPhone apps. The first app I downloaded was dropbox (which has ended up being my favorite). Their iPhone app is a great, easy to navigate app that works very well. I used that for a while, both for my recipes and for documents I had to read or refer to for classes.

There are small features that dropbox has and that other services are missing that make it my favorite. First, dropbox allows you to download a document directly to your device for offline viewing (great for reading something during a flight!). Box.net, on the other hand, didn’t offer this feature. Dropbox also allows you to have a folder in your computer that is always synced to the cloud. I added my recipes folder and my school folder to this and it has made me much more productive this semester. GoAruna (which I just recently discovered) requires you to log in to the iPhone app every time you want to sync your files, which is a less-than-ideal user experience in my opinion. SugarSync works pretty well, but their apps are not as intuitive to use as others.

Dropbox has created a great experience, from the first time I went to their website (and it was a very easy download/registration process) to syncing my folders to using their iPhone app. I really can’t wait until they release their iPad app! I am sure it will rock. I really, really hope that it will allow editing of the documents (through the iWork suite).

iPhone vs Android

I have been working on my ND Dining Android app for a while now and got to borrow a Google Nexus One phone from my teacher to test it on. I’ve had the Nexus One for a couple months now and while I can’t make phone calls or anything, I’ve been able to play around with it pretty significantly. As a result, I thought I would write down some of my thoughts about how the Nexus One (and Android OS) compares to my iPhone.

The first thing that you notice when using any Android device is that the touchscreen just doesn’t feel the same as it does with the iPhone. I think CrunchGear wrote a great post about this. That initial experience really sums up the main differences I see. With the iPhone, everything just works. They spent a lot of time on the user experience and it really shows. When I demo my Android app to classmates, they have trouble “clicking” the back button at the bottom of the phone. I do sometimes too (even after using it so many times while developing this app). The placement of the sensors for the four buttons at the bottom of the Nexus One is not perfect. It is close enough, but there are times when I think I hit it and nothing happens.Nexus One Image

Another issue I’ve noticed is when you turn of wifi and then turn it back on, it can take forever to reconnect - even on my super-simple home wifi network. While this isn’t a very big issue, it can be very annoying - having to wait a long time after turning wifi back on to access the Internet.

This isn’t intended to be an Android-bashing post - I absolutely love the idea behind Android. The integration with Google services is amazing and the openness is very appealing. And the iPhone definitely has its own problems (…AT&T?). I think that some of the big issues I have found with Android devices relates to Apple’s obsession about the user experience (and other companies not being as obsessive). I’m sure Apple has paid extra for such a high quality touchscreen, but that initial user experience is why I really love Apple’s products.