Python and iPhone development on Mac - minimum/recommended hardware? - iphone

What is the minimum configuration to do some Python and iPhone development on Mac ?
Platform wise: Mac Mini, Mac Pro, Mac Book, Mac Book Pro ?
Memory requirement
CPU speed
Thanks for your advice.
Laurent

The minimum requirement is an intel mac. Any intel mac will work. iPhone development is unsupported on PPC.
Python can be done on any mac that runs os x.
The minimum requirement, and what's pleasant are different things. Everything you've listed will work pretty great. You might want to bump up the ram a little on what they ship with, but other than that you're good to go.

Any of those platforms are going to be more than adequate for iPhone development, but since Apple is not allowing anything that requires a VM or an interpreted environment, there is no way to do iPhone development using Python at this time.
EDIT: Looks like I misread that as doing Python development on an iPhone, so just ignore the second part of my answer. Any of those platforms are going to be fine for either iPhone or Python development.

Rather ephemeral in our requirements, aren't we. 'Some' python/iPhone....
You will be well served by a mini, starting # $600, they're a steal. Upgrade the processor (2.53ghz), add RAM to 4GB (after purchase, if you're comfortable) throw a generic keyboard, mouse and Monitor on it and you've got a heck of a machine.
Don't bother with a HD upgrade, just get an external USB disk and put all your VM's and extra necessities on it.

Any system that Apple sells is sufficient to do Python and iPhone development on the Mac. I generally consider 2 GB to be the minimum amount of RAM that I would want to use, and 4 GB if I'm going to be doing any significant amount of work in a VM (for instance, VMware Fusion or Parallels for running Windows within Mac OS X). But I think all configurations currently come with at least 2 GB of RAM, so you should be set there, too.
Of course faster machines are always better, so you should get a machine that's fast enough for you, but I have a couple year old Mac Book Pro and find that's fast enough for me.
The biggest help for development is multiple monitors. Having two monitors helps a lot (and three is good, too). I believe that all of Apple's current systems support two monitors.

Related

System Requirements for a Mac to Develop in MonoTouch and XCode

I want to develop C# and .NET based iPhone applications in MonoTouch. But my goal is to develop iPhone applications so things may end up with Objective-C -so Xcode- too.
Obviously, I have to buy a Mac. I've been lookin' for sales and found a couple of good machines but I still want to make sure that I can use these 2 programs in good performance.
So I want to know that if anyone uses these programs could advice me some system requirements? For example, does the CPU matters? Should I buy an iMac with Intel CPU our is G4-G5 better? And what about the VGA and RAM? Is 1GB or 2GB enough for ram and 256+ for VGA?
Of course better properties mean better performances but what's the minimum for this? We can talk on iMac.
Read this thread from the monotouch mailing-list. It's about laptop initially but it will give you the specs people are using and recommending.
(It's Mac not MAC).
It'll have to be an Intel one for any iOS development. I'm relatively happy still on a mid 2009 MacBook Pro with 4GB of RAM. To develop with the iOS 5 SDK you'll need at least Snow Leopard - so any Mac capable of running that will be a minimum.

Why is Windows Phone 7 emulator so slow compared to, um, iPhone OS Emulator?

I don't mean to start a war between iPhone vs Windows Phone 7, nor am I against Windows Phone 7. But I've noticed on both of my computers Windows Phone 7 emulator (Beta and CTP) lags like it's running on a crappy last-decade Celeron computer.
I have 2 computers: Macbook Pro 13" (2010 Model) with 2.4GHZ Core 2 Duo, 4GB RAM and ASUS G1 with 2.0 GHz Intel Core 2 Duo, 3GB RAM with fresh install of Windows 7.
Now iPhone emulator on Mac OS X is on the other hand so much smoother, and loads faster and just has better feel to it.
So why is Windows Phone 7 emulator so slow? Is that what we should expect from the devices that will be coming out this october? I hate more than anything on the phone is laggy UX; it just gets under my skin.
It would be nice if someone with the prototype device could comment on this issue.
That is because the so called "iPhone Emulator" is a simulator (hence the real name is "iPhone Simulator"). Simulators are non-native programs re-written for that computer. Emulators are non-native programs not re-written they are emulated which takes extra effort to translate everything to display the right things etc. This is why the Windows Phone 7 Emulator is slower than the iPhone Simulator.
But, since simulators do not quite as accurately represent the device as an emulator you can get better error results since the stuff is rewritten in simulators but everything is preserved in an emulator. But, even saying that, you usually don't need to worry about that.
Boy, there's a lot of "emulators are this, simulators are that" in some of those answers and I feel more confused after reading them, especially when we get into suggestions that things are "re-written for that computer"
What you need to understand is that the iPhone Simulator is an OPERATING-SYSTEM simulator, not a DEVICE simulator.
When you build for the simulator, you are compiling for an Intel x86 CPU. You link against special libraries that are for an x86 CPU but which implement the functions that are part of the iPhone operating system (call that UIKit)
When you build for the device, you are compiling for an ARM CPU. You link against special libraries that are for an ARM CPU, again which implement the UIKit.
This means that your code runs at full "machine" speed in both environments. There is no notion of "emulating a CPU" which is presumably what the Windows Phone 7 Emulator is doing, something similiar to the MacOS Virtual PC product of years ago (that Microsoft bought from Connectix, as I recall)
The problems that Rob Napier mentions are probably related to using native headers and libraries in his build (call those AppKit). There are some APIs that Apple have let bleed into the wrong SDKs, I recall there were issues with NSTask being available in the SDK even though it wasn't on the iPhone itself, for example. I'm sure there are other problems in this space, its not ideal (though its pretty cool)
Anyway, unless Microsoft have a compiler-toolset that can target both the Phone CPU and the regular Windows PC CPU, they are stuck with emulation at the CPU level, rather than at the Operating System Level.
The only advantage that this cpu-emulation approach has, to my mind, is that you can take the exact same binary and move it between device and PC and run it on both. Apples simulator approach requires you to rebuild the binaries for each platform. Personally, even on my "bottom of the line MacMini", my build times are so small that its just not an issue to rebuild whenever I switch platform.
The Windows Phone Emulator is actually the Windows Phone 7 operating system compiled for x86 running in a virtualized environment. It uses a derivative technology from Microsoft's VirtualPC/VirtualServer/Hyper-V. Thus it is really neither emulation (there is no ARM to x86 emulation going on) nor pure simulation.
The typical Windows Phone 7 device will be running an ARM processor at close to 1GHz. Emulating (as in CPU emulation) of an ARM processor requires a very powerful x86 processor. The strategy of using visualization allows the OS to execute at native x86 speed. Applications written in managed (.NET) code are executed by the x86 based .NET runtime on the OS.
So code performance on a typical PC (~1.5 - 3GHz) should typically exceed what is found on an actual ARM based WP7 device.
However, GRAPHICS performance is a whole 'nother story. Windows Phone 7 is built from the ground up on a Direct3D stack. The core OS and all graphics all the way up to the Silverlight and XNA runtimes use Direct3D. In the Windows Phone Emulator the low-level D3D graphics are "passed through" to the host PC's D3D implementation. Many problems people see with Windows Phone Emulator performance are due to poorly performing host PC graphics adapters or drivers.
See this forum response for some troubleshooting tips.
http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/c4754ebd-f688-4c33-972a-a578b9db12ff
EDIT: Addressing Jeff's comment below asserting "Anyway, unless Microsoft have a compiler-toolset that can target both the Phone CPU and the regular Windows PC CPU, they are stuck with emulation at the CPU level, rather than at the Operating System Level."
All Windows Phone 7 applications & games are .NET based, thus are CPU independent. Repeating what I said above: The Windows Phone 7 Emulator does NOT emulate at the CPU level. It is running a native x86 compiled version of the OS in a virtual machine and runs the exact same application "binary" (a .XAP file) that will run on a physical device.
You need a directx 10 graphics card to get the best performance.
The beta appears to have introduced a problem effecting some peoples systems whereby GPU acceleration is not working in the emulator. The symptoms are slow rendering which is to be expected. I'd suggest adding your system details to the thread while the issue is being looked into for the best chance at a resolution on your system.
I think we need to clarify the meaning of this question to glean any type of meaningful answer from it. At the moment we could all very well be talking about different types of performance observations which potentially reduces this to more of a religous debate. I've added a comment to this effect, but you have to click "more" to see it.
The official MS document on this subject provides the reason for the slowness.
"Windows Phone Emulator is designed to provide comparable performance to an actual device "
http://msdn.microsoft.com/en-us/library/ff402563(v=VS.92).aspx

iPhone dev box?

I would like to try some iPhone development but am not a Mac user. I'm not keen to spend a load of cash on a new mac, so if I were to buy an old Mac on ebay, what system should I look at as a minimum for an acceptable iphone dev machine. Cheaper the better obviously.
Note: Not keen on running mac os on a pc so really looking for an apple hardware option. Is an old mac mini suitable?
Any Mac with an Intel processor will do fine.
You can spend your time searching eBay for an old Intel Mac but in my experience it a false economy (especially if it's more than 3 year old).
One tip for anyone looking for a
secondhand Mac, as I did in the late
90s during the last economic downturn,
buy computers from graphic design
agencies or software houses that have
gone bust.
Good
Mac Mini - It'll do every thing you need (albeit not very fast). You might consider extra memory and if you have a a spare keyboard and monitor (or KVM switch) your away.
Better
New MacBook - released yesterday (2009-06-08) the new MacBooks are reasonably priced and a great option especially if you want (or are replacing) a laptop. Again RAM is a consideration and if you plan on long coding sessions a decent keyboard and monitor are essential.
Best
Dive right in and get a iMac (20" or 24")! I suggest you only do this if you want to replace an older non-Apple box. The calculation you have to make is: How much would I spend on a new PC plus how much would I spend on my development Mac. If the total is even close the price of an iMac it's an option.
You'll have the option of virtualized Windows, (unlimited) Linux installs, Boot Camp if your a Gamer and Mac OS X for your iPhone/Cocoa development.
If money is no problem you can even go for a Mac Pro.
My system is a Mac Pro - I run Windows XP, Vista and 2 x Cent OS's (simultaneously). Also I have Windows 7 Beta and a few Ubuntu's for ad hoc work.
It works great - but wont be for everyone taste. I replaced my Uni set up of: 1 x Mac, 1 x PowerBook, 1 x Wintel box and only using Linux on campus with MacPro and iPhone (I still have the PowerBook, but it's hardly ever used).
Also, if wanting to buy a 'new' mac, you can buy refurbished macs from Applestore which are hundreds less than their newer equivalents. They have full warranty and are pretty much brand new anyway. (Returned for some issue that has since been fixed)
Of course, if you're happy to jailbreak your iphone, you can ssh into it and compile apps directly on the device (the jailbreak can install gcc and make and the rest). I've done this for a couple of experimental projects while trying to learn objective C and all that stuff. Worth trying out if you're not totally sure whether or not you want to go ahead with it.
I use a mac mini, works ok so far.
In addition you need a monitor with dvi, a usb mouse and usb keyboard.
The main drawback is, that i use a regular usb keyboard and the keyboard layout is terrible, e.g. POS1, END, PAGE_UP, PAGE_DOWN are not where they should be.
You can use PearPC, i used it for the same reason as you.
Check it here: PearPC Mac OS X on PC
But i just wanted to experiment something with the iphone SDK, if you want to develop seriously you should consider getting a MAC because a virtual machine is terribly slow.
If you really want a cheap option you could go for a Dell Mini 9. It runs OS X very well and if you upgrade to 2M ram you could probably make it work for you. I picked it up for a bit over $200, have been reasonably happy with it.

iPhone development on Linux, Windows

I'm buying a mac in a month or so but could like to start working on an Iphone app before I actually get my mac. Is this possible on xp or ubuntu? I know that I won't be able to compile it or test it for the iPhone to I get my mac but maybe I can get alot of my upfront work out of the way.
If you're brave you can turn your PC into a hackintosh and dual-boot into Leopard. I did this for several months for iPhone development before getting a Mac.
Yes, you can use VMWare to run MacOS X. I'm not going to link to any sites but there are a number of downloads available for a hacked OSX image for VMWare.
You can do a Hackintosh but beware:
Apple can and does force iPhone devs to update to the latest OS to handle the latest iPhone SDK. Your hackintosh will lag official OS updates by several weeks or months, until Kalyway team (or whomever) gets it working and stable. So effectively you are locked into older firmware development when this happens.
Hackintoshes are notorious for suddenly not working, and not BOOTING at all because of some internal tweak you made when you installed something. Not yours of course, you are awesome and would of course keep a complete backup of your entire OS partition at all times to handle this. It's a PITA.
It takes some doing to install Mac OS X on commodity hardware. It's a pain in the ass and took me like 20 installs of the OS to get right. You of course are awesome and would do it much more quickly and with less headaches.
Hackintoshes (and PCs in general) are LOUD. Gamer-spec fans and so forth are loud, compared to my Mac Pro, which sits here silent as the grave. It's not that big a deal but it really got on my nerves how loud my machine was.
In short, you can do it, but it's hardly worth the effort. You do get a charge when you've got it booting into OS X the first time though, which is kind of neat. But for serious production use? Get a Mac Mini for 500 bucks and get to work. If you're like me your time is more valuable than the small amount you will pay for a real Mac.
Don't think so. Maybe you could build a hackintosh.
I've heard from someone at our cocoaheads that they managed to find a VMWare image for OS X

Install Leopard inside VMWare

I’m thinking about trying some development for the iPhone, is it possible to install Leopard inside VMWare? I already have a pretty high spec PC with a comfy setup that I’d like to use, or do I need to buy a real Mac?
It is legal to run Mac OS X Server in a virtual machine on Apple hardware. All other forms of Mac OS X virtualization are currently forbidden.
We are in no way affiliated with any of the providers below.
We have tried many virtual cloud mac providers including:
Mac in Cloud
virtualmacosx.com
xcodeclub
By far the best support we got was from xcodeclub. Daniel (the owner) personally provisioned a trial virtual machine and allowed us to see if our programs ran before purchasing the service. Java 7 ended up not working on virtual Mac due to some graphics drivers issues but Daniel spent over an hour of his personal time helping us. Now that is how customer service should be like. We highly recommend his service.
You can rent a virtual Mac with a service like www.MacinCloud.com.
Legally, you need to buy a Mac. It is "possible" to run (at least Tiger) in VMWare -- the experience is not optimal, but you can do it. It's also possible to run OS X on PC hardware; however, it's an exercise in illegal software and hacks.
I've run OSX under VMWare, and I can tell you with confidence that it is not an environment that you would find comfortable for developing applications in. It was barely (not really) usable for testing Mac specific browser bugs that couldn't be reproduced in Safari on Windows.
On the other hand, if your hardware is supported by OSx86, you can run it natively at reasonable speeds, and I would expect it to make a fairly nice dev environment.
For all cases, I'm going to assume that you have a legal OS X license, and don't mind the legal ambiguity of running it on hardware which the license explicitly forbids (the legality is unclear, imo, but I really think you'd be ok as long as its not a pirated copy).
Unfortunately, there's no legal way to run OS X in a virtual machine.
For developing iPhone apps you probably don't need a particularly beefy machine, so maybe look into grabbing a mac mini? They're the cheapest Macs you can get, and should probably be just fine for doing iPhone work. Plus, now you have a mac that you can use for testing other things too! :)