I can’t believe I’m feeling this way. It’s like I’m in love. As someone who’s come from working with Ruby on Rails, it’s hard to imagine falling in love with another programming language. But it’s happened. Only a week into Mobile Makers, and I already LIVE for coding iPhone apps! It’s just so much fun. Here is what makes me love iPhone development so much:
XCode: One Tool To Rule Them All
When I was graduating Dev Bootcamp last summer, I have to admit I was a bit worried. In my new company, will they be using Vim or Emacs or TextMate or Sublime? I wasn’t very comfortable with Vim, so I was happy that we use RubyMine as the standard IDE. Since I never used RubyMine before, I had to learn the shortcuts and the capabilities of it on the job, by observing my coworkers when I paired with them.
In contrast, XCode is pretty much the only iOS IDE out there! It is managed by Apple and it has been perfected since somewhere in the 80s. It is the industry standard, so, as a new iPhone developer, I don’t have to worry about picking a tool to do my job. I can just focus on the coding.
Everything In One Place
In web development, there are so many components that make up your coding environment. There’s the IDE where you write code, the terminal where your output is printed out, then there is the website, at localhost:3000, where you can see your progress, and of course when you’re stuck, you pretty much have to Google around for the documentation or StackOverflow questions and answers. This results in me constantly trying to resize all the screens I have open! And, to be honest, I still haven’t found that optimal screen placement where I have everything I need in one place.
With iPhone development, XCode provides all the components you need to stay in XCode! It includes the IDE, the logging, the errors, the iPhone simulator, and, of course, the documentation. It takes up your whole screen, and I’ve found that besides occasional Googling for more complex implementations of something I’m working on, I pretty much stay in XCode the whole time I’m writing code. I’ve actually found that this makes me go into the amazing flow state a lot quicker than anything I’ve experienced in web development so far.
I know, the crazy Objective-C syntax can be off-putting at first. I mean, semi colons, square brackets, curly braces, strong typing, etc! It’s definitely scary coming from a beautiful and simple language like Ruby! But the nice thing about iPhone development, is that the whole thing is using Objective-C, even the views!
It’s definitely been refreshing to open up XCode, and start and finish my project all in one language, Objective-C. And back to the whole flow thing, it’s definitely helps when your mind is focused on the code, and not switching between the different syntax of CoffeeScript vs Ruby vs HAML and how they should all work together best!
I cannot express how happy I am to not have to worry about making sure my code works in Internet Explorer!! On the web, you have to make sure your code works with IE, Safari, Chrome, Firefox, and not only that, but that it also works on different screen sizes (is responsive). With Android programming, it’s a similar situation – there are so many custom devices, it’s almost impossible to test for all of them.
With Apple, it’s different. There’s the iPhone and the iPad and they’re very standard. My code will work on all the devices! Goodbye IE!
I really love that the iPhone has a small screen (compared to the web). That means that an app can only do so many things! I’ve found it really hard to limit my projects on the web. There are always more features or more links or more pages I can add to the website. But with iPhone projects, less is really more.
For example, this weekend, I’m working on a timer app. The functionality includes entering a time, clicking start to have it count down, clicking pause to pause it or cancel to cancel it, and that’s it! I love that small and simple projects like these can be so powerful and useful on a mobile device.
Have you tried iPhone programming? If so, how do you like it?