How To Develop iPhone Apps on Windows
Share
Thursday, December 03rd, 2009 |  #Tags: , ,

Not many developers speak Objective C, the Mantra for writing iPhone applications. And majority of the developers don’t own Mac either, so what is the way to go ?

Of course one can buy a macbook and do it. Here’s what will make it possible do all that on Windows, Linux

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.

Apps, Games created with DragonFireSDK can be completely written and debugged in Windows and are also fully compliant for distribution and sales at the Apple iPhone App Store.

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.

So the Horizon is quiet big, and CS5 with ActionScript could find a great way to develop applications on iPhone. If you are familiar with a scripting language, say, Javascript, learning ActionScript is as easy as an ApplePie.

Already, App Store has a number of Apps built based on Flash (I believe they are using Crosscompilation): you can checkout few full blown apps here.

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.

For more iPhone, Programming, Open source, Windows, Mac OSTech Guides and Tech News catch us on Twitter @taranfx or subscribe below:

Subscribe to Taranfx Share this post
Subscribe to Taranfx RSS Feed
Share

Related Stories

  • Great post on developing apps! Thank you. I'm also working on some apps right now and your opinion is valuable to me.

    Here are some great resources I have found and used to create the best app for me and my clients:

    If you have programming experience and enjoy working on the tech part yourself, see this complete e-book with everything you need and much more:
    http://5aaa979yj9tyq782x91auoev1s.hop.clickbank.net/?tid=MW

    However, I myself don't have any programming preparation but I have millions of great ideas for developing and
    promoting iPhone apps! If you are like me, use this excellent guide for building your app with very low costs and high success rates:
    http://d7080fx3w2p3udc8z9ljn7fiwo.hop.clickbank.net/?tid=MW
    It sure helped me..

    Hope you will find them useful!

    Thank you Kathy,
    Lucian.
    www.MindThePeople.blogspot.com
  • vic
    really interesting... but, will I be able to develop iPhone apps on Windows with Flash CS5 ?
  • Mike P.
    Awesome article & video mate - I really appreciate your work.
    Thanks a lot.
  • Guest
    Have you actually used CS5 to make iPhone apps? If not, how do you know it is the most effective way?
  • dot
    DisQUS Is pretty cool .. I'm going to buy this..
  • james
    thanks for the info, I am in the first stages of research and founf thid article very informstive, So I need to buy a mac, unless..... I can create it on my iphoneÉ
    Cheers
  • I
    None of these is allowed any more. :(
    Fuck it, if I ever need to make something for an iThing it'll be webbased.
  • I'm glad someone pointed that out, I was a bit confused! I think this would have done the job: ball.x += tx * 0.3;

    Absolutely excellent video though!
  • sleepdeprivation
    SWEEETTT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • sleepdeprivation
    Thank you so much this information was super useful. This will help me convert my online website http://www.freesleepinfo.com/ into a mobile iphone app. Again thanks so much, this will help me because I don't have a mac.
  • Guest Money
    Great video at the bottom! that's awesome work
  • First off, I really appreciate you mentioning Project Sprouts in your article.

    Unfortunately, as of right now (March 14, 2010), Project Sprouts doesn't build (or cross-compile to) native iPhone applications....

    Please update the post if you get a chance.
  • hakan111
    perfect !!!
  • me
    ball.x += ((ball.x + tx) - ball.x) * 0.3;

    haha, that guy is a math genius!!!
  • Pushpinder
    you work is recommendable...
  • J0Ke
    I think Titanium is for JavaScript not for Java development of applications for Iphone. Am I right ?
blog comments powered by Disqus
Taranfx Home
Hardware
Guides, How Tos
Programming
iPhone
Gadgets
High Definition
Networking
Taranfx Home
Hardware
Guides, How Tos
Programming
iPhone
Gadgets
High Definition
Networking