Top 5 Ways:
Method 5. Toolchains: There are several toolchains available (like winChain) that actually lets you write and build iPhone applications on windows. There are several associated tutorials to build the Objective C code on Windows. But there is a problem, the apps hence developed will work on Jailbroken iPhones only. We’ve seen few hacks to get over that and make it to App Store, but as Apple keeps on updating SDKs, toolchains need regular updates. It’s a hassle to make it up all the time. That’s why this is the least of the recommended methods.
Method 4. Use other Languages instead of Objective-C
(i) Code in Java: For Java developers, there is a workaround: XMLVM.
XMLVM is an extensible cross-compiler toolchain which instead of cross-compiling on a source code level, XMLVM cross-compiles byte code instructions from Sun’s Java virtual machine and Microsoft‘s Common Language Runtime (CLR). And the Result: The byte code instructions are easier to cross-compile and the difficult parsing of a high-level programming language is left to a regular compiler and you get to write apps in different language and then compile and convert to a different one. The diagram below shows an abstract idea:
Without laying much stress on it, I`ll share my experience. The project is a great piece of Innovation but is still in it’s early phases. On one side, I was able to use their API and develop fairly well application (Simple game, Travel app), but when it comes to complex graphics, features, this method looked pretty immature. However, over time this should change and we could see the project doing almost everything the original SDK does. And yes, you can test your apps on the Java based simulator and deploy on jailbroken iPhone.
There are several other frameworks (like Appcelerator`s Titanium) that let you code iPhone apps in Java, but the limitations are similar thought they are all worth giving a look for most day-to-day apps.
Update: (ii): Code in C/C++
DragonFireSDK: Say no to Objective C, say no to forced-Mac and yes to C/C++, Windows. This founds the base for DragonFireSDK that uses Microsoft Visual C++ to develop, test iPhone apps.
There is a quick Starter Guide available that help you kick start writing your first iPhone app and run it inside the emulator that ships with it. The API is quiet simple to use and is available here. One of the Apps: Un Stacker developed using this SDK is already available on App Store [link]. In addition, 5 Sample Apps are demonstrated and explained with code.
Method 3. Hackintosh: This is one of the effective ways of doing it: Install Mac on PC and then run the Native iPhone SDK. This is already a popular practice among OSx86 communities. The only limitation is that it could get tricky and time consuming for the newbees. You can refer to our Hackintosh Guides:
Method 2: Cross compilation of Adobe apps: You can write your apps in Flash Actionscript 2, ActionScript 3 or Adobe AIR, Flex and then cross compile it to ARM binary that is executable on iPhone. This can be done installing Project Sprouts for which sample Flex applications source is available here.
Here is a video on how this is done:
Method 1. Flash CS 5: This is in fact the most effective and easiest way to make it to App store doing all the “legal stuff”.
Flash CS 5 introduces new Feature that let’s you develop iPhone native applications just like you develop Adobe AIR apps. Recently, Adobe announced support for Multitouch, Accelerometer, GPS support in Flash 10.1 for phones. CS5 adds new APIs that lets developers leverage these modern Phone features and hence develop application not just for iPhone but for all Phones that support Flash.
Only bad part of this method is, it’s still unavailable. However This is what Official adobe site has to say about it:
When will the Flash Professional CS5 beta be available for download? The beta will be available for download from Adobe Labs before the end of 2009.
You can develop, build and test in native Flash debugger, however, soon we should see a simulator for mobile devices, especially for the iPhone.
I needed more clarity whether the final step, signing of Apps would be possible on Windows. I contacted Adobe on this. Alexander MacDonald said “Once you have created your content it is compiled into an iphone executable, then signed by our ADT tool and then zipped to create an ipa—the only thing you need from apple is your developer certificate. The crypto algorithms used by Apple to sign iPhone apps are all industry standard ones which anyone can implement on any platform they wish,” which in the case of Flash CS5, also includes Windows.
The app hence created can be installed to iPhone via iTunes for testing to substitute absence of simulator for the mean time. So all in all, everything would be legal, and will work great.
However, here is the demo of how applications will be created in Flash CS5:
Today, it doesn’t support everything SDK supports, but it would soon do. With Flash opening up a way to iPhone development, Adobe is adding millions of new developers to the iPhone App store contributors.
Update: The best way: Method 0: Codename One
Using Codename one you can Develop Android, iOS, WP8 apps using Java onWindows The framework works with POJO (Java) using eclipse, netbeans and is free, Open Source.
It is one of the most comprehensive and best solutions to build Android, iOS, WP8 apps using single code. We highly recommend it.