HW required for Apple platform(s) development

Rolf N

Recurring Membmare
Veteran
Looking to get a sensible host platform to develop for iPhone (et al) and potentially for Mac OS X itself. I understand that the mininum OS required for X-Code will continually move upwards, which means not any old Mac will do, certainly not going forward.

I reckon either a Core 2 Duo-based Mac Mini (late '07 and onwards) or the corresponding Macbook would be the best bet, to get Snow Leopard running, to in turn get the latest X-Code and iPhone SDK running. Correct?

But then there's the issue of target platforms. I'd like to avoid buying an iPhone for now, as it seems rather expensive and beyond my (already covered) needs in Smartphone functionality. I'm much more likely to get an iPod touch actually. For now, I just want to get my feet wet. No idea how far I want to swim. I want to minimize hardware expenses for now, and my ideal would be to just run with the Mac, and nothing else, at least for a while.

How accurate is the emulator? Are there any big gotchas (UI, service integration) when developing without tests on target hardware?
 
Looking to get a sensible host platform to develop for iPhone (et al) and potentially for Mac OS X itself. I understand that the mininum OS required for X-Code will continually move upwards, which means not any old Mac will do, certainly not going forward.

I reckon either a Core 2 Duo-based Mac Mini (late '07 and onwards) or the corresponding Macbook would be the best bet, to get Snow Leopard running, to in turn get the latest X-Code and iPhone SDK running. Correct?

Yes, the cheapest option is definitely a Core 2 Duo based Mac Mini. I bought myself the cheapest 2GB model (549 euro here) just for that purpose. While not a powerful beast, it's more than powerful enough for iPhone OS development, and can ran the iPad and iPhone Simulators without any issues.

How accurate is the emulator? Are there any big gotchas (UI, service integration) when developing without tests on target hardware?

Emulator is very good for the most part. Testing multi-touch interfacing is difficult on it though, for that you really need an iPod touch at least. I use an iPod Touch right now for that.
 
I found the simulator covered pretty much everything you need and does it well. Performance testing is pointless on a simulator and there's no way to trigger the accelerometers, but you can definitely go a long way into iPhone development on the simulator before buying the hardware (and the annual licence to deploy apps to it). Certainly it's all you need when getting up to speed in Obj-C and Cocoa Touch.
 
As the other posters said, a Mac Mini should be enough to get you started. A second hand Mac Pro can be a good option if you have more cash to spend. I found one on Ebay which has become my desktop and couldn't be happier with it.

The SDK is excellent. I did quite a lot of coding before testing on real hardware. Keep in mind that you need to pay $99 fee to join the Apple developer program that allows you to debug on real hardware. If you don't want to buy an iPhone an iPod Touch can be a good option. Is what I use to test on real silicon.

Obj-C is one language you will either love or hate. Personally I cannot stand C++'s half assed OOP but really enjoy Obj-C programming.
 
Thanks for the tips!

Heh, of course I knew about the touch interface on the iPhone/iPod/iPad. I was hoping mouse clicks would be an acceptable surrogate to start with :)
I meant gotchas more in the sense of aesthetics and expectations, approval issues and the like. Standout things that wouldn't be apparent if you haven't actually used an iPhone (like myself).

And man these Mac things command high prices, even used. I've just watched a completely banged-up late 2007 Macbook (multiple pixel defects, bent lid asf), soar past the 500€ mark. Crazy! Macs seem to be serious financial commitments, much like a marriage, or a yacht. Going by how often I used "for now" in the OP, I was clearly not in the right mindset for this!

... but I'm confident I'll emerge beMacced from this weekend.
 
The simulator has some OpenGL-related foibles, but for the non-GPU stuff it's certainly considered nice and accurate, if a little clunky to use IMHO. My development tends to only start off in the simulator for a new application, since the round-trip time for deploying and running on a device isn't long, and there's nothing like the real device in terms of performance measurement.
 
As for Obj-C, I find the experience with the language and frameworks rather verbose. It's a lot of typing if you use the supplied Core frameworks at times, both because of the syntax of the language and the verbosity in the APIs.

It's a nicer place for me to play than C++ however, although I'd certainly like GC as an option for non-performance critical applications.
 
Yeah, graphics testing won't be so great, as the Mac Mini I ended up buying only has the GMA950 graphics. Thankfully I'm not really looking to extract significant 3D perfomance.

Objective C strikes me as a language for/from people with a deep-seated hate for the C syntax. Not to disclaim its ability to solve OO problems of course, but as an evolutionary path from C, and mixed in with C code, it just looks completely alien. I don't intend to use it more than I have to.
 
Objective C strikes me as a language for/from people with a deep-seated hate for the C syntax. Not to disclaim its ability to solve OO problems of course, but as an evolutionary path from C, and mixed in with C code, it just looks completely alien. I don't intend to use it more than I have to.

It's because I like C syntax that I appreciate Objective-C. There's a generally clear delineation between the thin layer of new features and the untouched, underlying C core; switching between the two modes is intellectually clean.

Conversely, C++ pervasively overloads unfamiliar meaning onto familiar-looking forms. Coming from a long C background, C++ code tends to just look like C with errors.
 
even cheaper would be a hackintosh, piece together an Intel system (celeron E3200/3300, G31 or G43 chipset, 350W PSU). then, isn't OS X 10.6 sold at 30€/$?

that gets it down to about 250 euros, then you pay the developer tax or maybe unlock the ipod till you decide to pay it.
I don't know if it's a good idea to suggest that but why not :p
 
Day 3. Everything's dark grey and low contrast. The underbrush is thick and the birds are anxious.

Are there any Mac users who like the dock? It's designed to replace both the application menu and the task bar, but it does neither well. I'm particularly displeased about how much screen real estate it pisses away for so little functionality. But you still have to use it. There is no other application menu.

Fortunately, for task switching there's Exposé. I like that a lot. Now if that weren't just key bindings, but maybe clickable icons in a proper task bar type dealie, that'd be a good interface.

Free pro tip for Xcode: open files are not automatically saved when you hit build. If you use the UI builder, save every time you do anything.

Is there any way to pull Xcode onto my Ubuntu desktop over ssh? I've enabled the X forwarding and SSH service, and it does work on the console, but when I do ssh -X rolf@skiff /Developer/Applications/yaddayadda/Xcode, the window opens on the Mac OS desktop. It's not forwarded. The other way around works fine.
 
Day 3. Everything's dark grey and low contrast. The underbrush is thick and the birds are anxious.

Are there any Mac users who like the dock? It's designed to replace both the application menu and the task bar, but it does neither well. I'm particularly displeased about how much screen real estate it pisses away for so little functionality. But you still have to use it. There is no other application menu.

Yes, I like it. However, I moved it to the left side of the screen, just as I did in Windows 7. I like it much better there. Also make sure you have a mouse that can right-click (like any PC mouse or as I am using a Magic Mouse), as when clicking on one of the icons there that has windows open, it gives you a Windows 7 style menu with common options and open windows (guess where Windows 7 got that from ... ;) )

Fortunately, for task switching there's Exposé. I like that a lot. Now if that weren't just key bindings, but maybe clickable icons in a proper task bar type dealie, that'd be a good interface.

It's not - you can set it up so that if you go to one or any corner of your screen all open screens show up for you to select, very nice.

Free pro tip for Xcode: open files are not automatically saved when you hit build. If you use the UI builder, save every time you do anything.

Free pro-tip from me right-back - you can configure the heck out of XCode, and make it act almost any way you want.
 
Day 3. Everything's dark grey and low contrast. The underbrush is thick and the birds are anxious.

Are there any Mac users who like the dock? It's designed to replace both the application menu and the task bar, but it does neither well. I'm particularly displeased about how much screen real estate it pisses away for so little functionality. But you still have to use it. There is no other application menu.

Two different solutions:
1. Make the dock hide until you move the pointer to activate it. I've always done this on displays with less than 4 million pixels. :)
2. Make a folder to store your apps, another for active docs, another for downloads, another for.... and keep those folders in the dock. This is partly how the OS sets it up anyway by default, so if you are unhappy with having apps taking up dock real estate, simply remove them and just keep the app folder in the dock. The dock will shrink to fit.

By your description it seems as if on your Day 3 you are moving through thick jungle underbrush. Remember the lesson of all hunters - don't fight your environment, blend with it.
 
Yeah, Expose (with active screen corners) is pretty much what makes working with OSX so great. There are also some shortcut keys for switching between apps, but I don't know them all yet. There's Command + Tab, and I think a couple eithers that cycle through windows in different ways.

I put the Dock on the left side and drag all the app icons for stuff I use frequently in there. You can also change the size of the dock under Dock in the System Preferences. That's also where you change screen position and some other settings.
 
Last edited by a moderator:
Are there any Mac users who like the dock? It's designed to replace both the application menu and the task bar, but it does neither well. I'm particularly displeased about how much screen real estate it pisses away for so little functionality. But you still have to use it. There is no other application menu.


The dock is not meant to replace anything. The dock started with NeXTSTEP and is a different way of organizing your desktop. Note that you can scale it or make it autohide. On my 24" display I just keep on the right side because that's the way I used it when I was using Windowmaker on FreeBSD.

Fortunately, for task switching there's Exposé. I like that a lot. Now if that weren't just key bindings, but maybe clickable icons in a proper task bar type dealie, that'd be a good interface.

You can command-TAB to switch between apps and even mouse over on the running apps when doing so. You can also command-` to switch between windows of a single app.

Is there any way to pull Xcode onto my Ubuntu desktop over ssh? I've enabled the X forwarding and SSH service, and it does work on the console, but when I do ssh -X rolf@skiff /Developer/Applications/yaddayadda/Xcode, the window opens on the Mac OS desktop. It's not forwarded. The other way around works fine.

MacOS X does not use X, it uses Quartz. You can also start an X server on your Mac and run remote unix apps on it, but not the other way around.

Just a small tip: Do not approach MacOS X from a Windows user's point of view, you are going to be extremely frustrated. Learn how Macs do things, once you've spent a while using the system everything will make sense.
 
For Task Bar/start menu.
I tend to use the Dock as a task bar with a few things pinned to it. For App launching I use google desktop search (I used to use Quicksilver until the developer moved to Google and stopped supporting it).

CC
 
The default dock is pretty terrible. As pointed out it's a big waste of screen pixels if it's on the bottom of the screen, and setting it to autohide in an attempt to reclaim the real estate for maximised apps is an exercise in frustration for me, since my habit is to move the mouse to the bottom of the screen to get it out of the way of my typing, which obviously brings it up again.

I put it on the left now, visible all the time (and filled with enough icons and stuff to make it fit the space so it feels like they're not wasted; psychological I know). App launching I do with the dock.

I find OS X a frustrating place to be on the whole, GUI wise. The shared menu bar is really pleasant now and I wish that same metaphor was present in other desktop OSes, but I simply can't get over only being able to resize a window from one corner. I don't know how other people manage their windows manually, but it drives me round the bend :cry:
 
I find that since I starting using OSX, I rarely resize windows anymore. It just seems easier to flip back and forth between windows using active screen corners, and rarely bother resizing windows so I can see them at the same time. The odd time I do want to view two windows at the same time, it is kind of annoying that you can only resize from one corner. It's rare that I actually have to do that. I guess it depends what type of user you are, and what you're doing. Because of the way the file system is organized, I tend to not have to move files around so much, so there isn't a lot of dragging and dropping to be done, which is when I usually wanted to windows visible. For things like adding mp3s to iTunes, you can just drag the files into the iTunes icon on the dock, and that's the same as dragging them into the iTunes window. I believe adding photos to iPhoto works the same, but I'm not much of a photo guy. A few days ago I was working on a cover letter and had to resize windows so I could read the job description and edit my doc at the same time. Rarely do I find myself trying to resize and fit more than two windows into the screen space.

Can't you just use Spotlight for app launching of anything that isn't on the dock? Seems the easiest way.

I have to admit, when I first bought my mac, a year ago, I was a little disappointed until I got used to using the dock, expose, spotlight and the shared menu bar. Now I go back to work where I'm stuck with Windows XP and I HATE it. Haven't played with Windows7 much, but I do have it installed in Boot Camp.

One thing I will say is using OSX requires some behaviour change, and really taking advantage of it is not as simple as Mac users make it out to be. I think for a computer illiterate person, taking advantage of some of these things would be non-intuitive.

Back to the topic at hand, I'm really starting to enjoy working in XCode. It's very powerful, especially for something that comes free to every Mac user (well, you do have to pay the "Mac tax"), and it seems to run very well on the lower end Macs.
 
The only app I ever run on my Mac is XCode, and only for IPad development.
It's an OK environment, I like the context sensitivity of the autocomplete, although I do find it irritating to move windows around when I want to look at multiple open windows. I suspect it being a laptop and me not using a seperate mouse make it worse.
The debugger is passable, but some of the impenetrable Cocoa containers reduce me to printf debugging a lot more often than I'd like.

I could use OSX for everyday use at home without too much pain, but it wouldn't be my first choice.
 
Back
Top