iPhone App development on Windows

Has anyone used any of the third party tools for developing iPhone apps on windows? I’ve got a customer who wants to develop a simple iPhone app and I’m a Windows guy (at least when I program outside of the AS400/ISeries). This would be a fairly trivial program to write using my normal Windows tools.

I’ve done some simple programs for Windows Mobile using Windows Visual Studio .Net. It looks like something like the DragonFire SDK

http://www.dragonfiresdk.com/getstarted.htm

along with Visual C allows what I want to do.

Anybody have any experience using any of these tools or any recommendations?

Judging solely by that site, I’d try and find another way. You have to JailBreak your iPhone to run apps on it? A badly-designed “API” that has only 25 or so functions, including highly-specialized ones like a “shuffle” that requires exactly 52 elements? Typos galore throughout the site? They claim you can submit your apps to the app store directly (to the best of my knowledge, that requires a Mac for the signing process) or through them – this sounds like something Apple will clamp down on, eventually.

I’m not saying they’re not legit; they probably are. But I think trying to use such an obviously amateurish system just to be able to use the VC toolset will hurt in the long run.

My personal suggestion is to either borrow, rent, or buy a Mac and do it right if you need it to be an iPhone app (especially if you’re planning to sell it). (Don’t forget the refurb market for Macs, but make sure you can run Snow Leopard on the one you buy). If you don’t want to go that route, consider writing for Android or Windows Mobile instead, where you can use Windows tools to your heart’s content.

I’d also recommend buying/borrowing a Mac. For iPhone development, it’s not like you need a powerhouse. Any Intel mac will do. You could probably find a used Core Solo mac mini for a few hundred bucks, or perhaps a first-gen macbook. If you want to actually put your app on the app store, you’ll need to shell out $99 for the developer program as well, FYI.

Your other option is to do a webapp. If you know HTML/JS, you can do some pretty fancy stuff.

I actually already have a Mac, but it’s a little older one. It’s a PowerBook G4, with a 1.5 Ghz PowerPC chip, running OS X, 10.5.8. I don’t use it much because I don’t actually care for the Mac OS and way of doing things, but that’s largely based on what I’m used to, I’m sure. My wife uses it as her laptop.

I was told you had to have an Intel Mac to run the iPhone SDK, is this true?

I knew about the $99 fee to be able to submit apps for consideration on the iStore, that’s easy enough to live with, and I can include that in my charge to the customer. But I’d have a harder time padding in several hundred to cover even a Mini, plus the cost of an iPhone or iTouch.

I was kind of hoping to use the tools I was already familiar with, naturally, especially for what I see as probably a one time thing.

Any other Windows programmers done an iphone app? And how did you do it?

Expanding the question a bit: I’m assuming virtually all iPhone apps are written on a Mac platform. But what programming environment and tools did you use?

How about it, has anyone here developed an iPhone app at all?

Yes, I’ve developed iPhone apps. You use XCode (free) with the iPhone SDK (free, but it’ll cost you $99 for the developer kit if you want to distribute or use it on a real device).

Most “utility” iPhone apps are basically just setting up a small hierarchy of views, and the views themselves are laid out in Interface Builder (the resource editor which comes with XCode). IB also lets you tie the various visual elements (controls, text fields, the views themselves) to objective-C instance variables in your C, C++, or Objective-C/C++ code. REALLY simple apps can be designed entirely in IB and Photoshop (or whatever, for the required icons and graphics); most real ones take a little code, too.

Games, and other apps in which the user interacts through more than just standard controls require a substantial amount more programming, usually at the custom view level.

An excellent introductory book if your’e already a programmer is iPhone for Programmers (not a paid link). It’s pretty much a straightforward “here are a bunch of sample programs, with code walkthroughs” to teach you what you need to know, without the overhead of trying to teach you programming at the same time (which is the downside of most iPhone programming books).

iPad programming uses the same basic SDK, with a bunch of additions, but we (developer program members) aren’t allowed to talk about it yet until the final tools are released. But suffice it to say that learning iPhone programmings is the first step, anyway.

IB/Objective-C take some getting used to for Windows programmers – they tend to “fight the tools” for a while until you get the hang of it. Most folks like it after they’ve used it for a while. (Mac developers have been using these same tools for years; except for the UI specific layer, the frameworks for iPhone and MacOS Cocoa are largely identical).

ETA: There are a lot of iPhone developers out there; if your app really is simple, you might be better off just referring your customer to a contractor and passing on doing this yourself.

Oh, and yes, you need an Intel Mac. You’ll also need Snow Leopard to use the latest tools.

I have not used it but there is a c# development tool called MonoTouch (I think by novelle.)

You will still need a mac and you will need Mono. There may come a day when I get around to playing with it, but for now I don’t have the time.

TimeWinder, thanks very much for the info. I think I may buy the book even if I don’t do this project. Never hurts to pick up a little bit more here and there.

I’ve thought about referring the customer or contracting the work somewhere else and acting as the middle man, but this is sort of a personal thing for a good customer, so I was looking for a way to help them sort of “on the cheap”. Probably won’t work out though.

I’ll probably create the windows version for them, and maybe take a stab at an android version. Then refer them to someone else for the iPhone version if they still want it.

Interesting to think about, though. A fun little programming project is just the kind of thing to get me to spend the time to get to know the Mac better. I wish I wasn’t short of both time and resources at the moment.