It was only several weeks ago that i was still dismissing the iPhone as some kind of geeky technology gadget. An overhyped mobile phone. A status symbol. I did not find it convincing, not even the prospect of being able to develop for it – not even the fact that development is said to be easy and it’s actually quite feasible to make money off of it, even enough to live from it.
So, what happend between 2 months ago and now? I mean, apart from the fact that i now own an iPhone, a Mac Mini and i’m a registered Apple Developer running the new iPhone OS 3.0 beta.
The answer is seemingly simple: opportunity happened!
An opportunity to start my own company together with two of my colleagues. A company which is targeting the iPhone App Store with unique, compelling, innovative and high quality games. The opportunity i’m talking about is taking my professional life into my own hands, making lots of new experiences and learning a great deal of both new technologies (for me at least) and other aspects of starting and (hopefully) running a business.
At the moment we are building our network of contacts, we are talking to prospective employees, we are gaining insights each day and are learning something new about the App Store, the iPhone users, Investors and the business of starting a company while improving our business plan based upon that newfound knowledge. It is exciting to say the least and i will keep blogging in detail about these experiences from now on. However, if you are still on the other side of the fence – aka a Windows programmer – and haven’t had any hands-on experience with a Mac or the iPhone i can understand that you’re hesitating. Let me take you by the hand and lead you over to the other side, safely. But first of all, let’s understand the barriers for entry as i define them:
- Investing in the Hardware
- Getting used to Mac OS X (old habits die hard)
- Becoming an Apple Developer
- Learning to code in Objective-C using Xcode
- Getting the right Game Engine
Let’s start with the Hardware. As has been written time and time again before, all you need is a modern Mac mini. I say “modern” only to make sure you understand there are several versions of the Mac mini, and it needs to be a Mac mini capable of running Mac OS X 10.5 (nicknamed Leopard), running on an Intel Core 2 Duo processor with Nvidia Geforce 9400M graphics. Gibberish, just make sure you check the specs if you buy a used one, if you buy a new one you’re good.
So, Mac mini – that’s it? Seriously, even if you plan to develop 3D games all you need is a Mac mini. Even if you plan on using and compiling iTorque (written in C++) all you need is a Mac mini. It takes maybe a minute to rebuild all the source code from TGB and i assume iTGB won’t be any slower than that, probably to the contrary. It takes maybe 15 seconds to rebuild the source of the free Cocos2d engine (written in Objective C). This is for full rebuilds, incremental builds are near instanteneous. For only 600€ you get the programming hardware you need to target the iPhone. And it gets better: whereas on Windows you need to spend several hundreds on Visual Studio or have to use the free but very limited Express editions, you get Apple’s development environment Xcode 3 for free with the iPhone SDK. Or with any Mac for that matter.
Still not convinced to spend 600€ on a Mac mini? Maybe you fear that the learning curve is too steep for you, or it’ll be just another one of your spontaneous ideas you’ll drop after two weeks. Well, i (personally) can’t help you with the latter – either stick to it, or don’t. But it’s easier to follow through if you have someone to share the experience with, so find some Internet forum where you can get all the help and feel comfortable – it might make the difference. The former, the learning curve, don’t worry too much about that. If you’re a decent developer you’ll figure it out. The Internet is a great resource. Just don’t get too frustrated with how the Mac OS X user experience is designed – remember it’s not Windows! Things actually work like you would expect them to. You’ll get used to it. Trust me.
If your experience is anything like mine, you’ll have your moments of frustration. Some of them even constantly like Apple’s “move the view, not the cursor” philosophy … hit HOME/END while writing any text and it will NOT jump to the end of the current line but instead scroll the view to the start/end of the document. Luckily, if you look around on the Internet and happen to use the correct search terms, you’ll find a solution to fix the behaviors that you don’t like. In this case, how to change the Home/End and PageUp/PageDn keys to behave like in Windows.
And then there’ll be moments of sheer joy. The first time i’ve used the multi-monitor preferences i was impressed to find that as soon as i opened it i got two dialogs with lists of acceptable screen resolutions, each one on the respective monitor. Clicking on a monitor also indicates clearly how the monitors logically set up without you having to apply the new settings and try them out. Things like this just blew me away at the beginning. The amount of care that went into designing that interface and the experience for something that a typical user uses maybe 3-4 times a year but when i need to do that on Windows, it always confuses the hell out of me.
What else is there to say? Maybe you’ve had previous experiences with other operating systems. Maybe you’ve tried out some Linux version, maybe even a recent build with a fancy interface like GNOME, KDE and whatever they’re called. It’s probable that it didn’t convince you with all its fancyness and windows-look-aliky-but-not-quity attitude. Maybe you’ve heard that Mac OS X is based on UNIX and you’re making a connection there that you don’t like. True, if you open a terminal window, you’ll get to use commands like sudo. This is sort of like the equivalent of “runas admin” for you. A few (system) programs like Perforce (Source Control) or Synergy (share Keyboard & Mouse with your Windows PC and Mac) actually make you install them by copying them into a specific folder that is hidden from the Finder‘s (this is Apple’s “Explorer”) view. How do you even get there? And why can’t i dir in a terminal window but have to use ls instead? I understand. It’s the learning curve i was talking about. However, as sobering my personal experiences with *nix operating systems were, learning these parts on the Mac were surprisingly simple compared to my previous experiences with Linux – even the fancy modern graphical UI versions. At least for the programs i’ve tried the documentation was friendly and helpful. It took me longer to figure out how to navigate hidden folders with the Finder, even though that functionality is within its menu by using the “Go to Folder” functionality, than to learn how to install certain programs in /usr/bin and making them executable.
Ok, so you still don’t think the Mac mini is something you should dig into? Consider this: if you do end up regretting that you’ve bought the Mac mini … give it to your girlfriend as a present. Because you love her so much. She’ll be delighted!
Btw, if you are in germany and are looking for a Mac reseller, check out MacTrade. Their prices are cheaper than the official prices and the service is top. Unfortunately they’ve sent my Mac without the 1 GB memory expansion installed but as a seperate chip in the shipment. At first i thought the Apple technology is so far advanced that you can just plug in the memory by opening a side-plate or something. Turns out, if you ever wondered how to open a Mac mini yourself, you are going to need specialized tools like a putty. After seeing this i decided it’s better to return the Mac for upgrading instead of doing it myself even though i’ve had previous experience opening Xbox 360′s – this process frightened me plus the 600€ for the Mac mini is a more expensive machine to break compared to about 180€ for the Xbox 360. So i called them, sent them the Mac mini and the memory and got it back within a week with no cost at all for me, plus an apology that it really shouldn’t have happened. I was thinking “Yeah, i’ve worked with interns, too.” … or someone just had a bad day. Whatever, i don’t grief about such things, even though it was an inconvenience.
So once you’ve decided to buy the Mac mini, you’ll have to figure out wether you need a VGA adapter. The Mac mini already comes with a Mini-DVI to DVI adapter so any regular LCD monitor can be hooked up with no problems – however, you can not use the Mac mini’s DVI connector to plug in one of the ubiquitious DVI to VGA adapters, much to the annoyance of many new Mac user. The DVI port of the Mac mini doesn’t have a VGA signal and as a consequence, the DVI connector is a DVI-D (digital only) connector. You can’t even physically plug in the DVI to VGA adapter. If you really need to plug your Mac mini to a VGA monitor or your LCD TV via VGA, you’ll need a proper VGA adapter and i recommend the DisplayPort to VGA adapter even if it is a bit more expensive. The reason is simply that with the DisplayPort to VGA adapter together with the Mini-DVI to DVI adapter you can use both outputs at the same time for a multi-monitor setup. Yes, even the tiny Mac mini has dual monitor support! Btw, never mind the bad reviews you may be reading about the DisplayPort to VGA adapter, it worked for me on 3 different monitors and some of the problems have already been fixed with a firmware update.
Next up is the iPhone 3G. You can pick it up for a bargain on eBay if you’re feeling lucky but make sure you don’t get one of the jailbroken ones (pun intended). I have no idea what happens if you use a jailbroken iPhone for development and i wouldn’t recommend it. In any case, it doesn’t make much sense to just get an iPhone but not the mobile part. If you want to develop for the iPhone, get the iPhone everyone is using with the same options and features – meaning a mobile phone contract. For us in germany that means getting one of the T-Mobile iPhone contracts. I’m using the 30€/month “Complete 60″ rate which gives me 60 minutes free phone calls and 200 MB free data transfer on a 24 month contract – which costs you 780€ in the first two years and so it’s about the same as the iPhone hardware without a contract. Personally, even after 3 weeks of regular usage i’ve used up only about 10 minutes for phone calls and 70 MB for transfers – if you do your App Store downloads mostly via the PC or Mac it helps to keep the data transfer limits in check. Plus i have the luxury of not having many friends to call, so …
Btw, i hear that for US citizens you’ll have to get your iPhone from AT&T.
If you do need to keep your expenses in check try the iPod Touch instead. You can get it for slightly below 200€ if you look around. You don’t get GPS, Phone, or wireless Internet connection but you’ll still be able to use Wifi hotspots to connect to the Internet. Also the iPod touch is about only half as thick and heavy as the iPhone which makes it more suitable for shirt pockets. But that should be the least of your concerns.
In case you are toying with the idea of borrowing your friend’s iPhone or iPod Touch to try developing on it before getting one for yourself – you may not even have to. First of all, if you’re just trying things out then by all means use the iPhone Simulator that comes with Xcode and the iPhone SDK. Secondly, if you do that and register your friend’s iPhone or iPod Touch you agree that the registered device is used for development which can’t be undone. Apple doesn’t say a word about in how far that changes the device – i haven’t noticed anything in particular. However, you should better check with your friend wether this is ok for him/her especially if you plan on upgrading the device to a beta OS (currently: OS 3 beta 5). Such an upgrade can’t be undone.
So for today this shall be enough to get you to actually buy a Mac mini and an iPhone and at the very least get you up to speed on what you need in terms of hardware and a little bit on the software and skills side when you want to become an iPhone developer. If you have any questions please post a comment and stay tuned for the next posts as i will go into detail on how to set up your Mac mini and how my first experiences with the Mac OS X environment were.
In the meantime, if you get ahead of myself, there are a few books i would like to recommend to fellow followers and soon-to-be iPhone developers:
|
|
|










[...] the first part of my series describing what hardware you need to become a developer for Apple’s iPhone platform i’ve already highlighted some aspects which will make your first steps on the Mac OS X [...]