More Windows Options for IPhone Apps

Windows Developers Staying Ahead of Apple in IPhone Publishing

RH
For some reason, likely powered by greed and money, Apple has really hamstrung Windows developers when it comes to the iPhone. For this reason, several other smart phones are gaining popularity, and the Windows phone that is set for release soon may put a little pressure on the king of smart phones. All of these phones are a ways away from overtaking Apple's shining glory though. For this reason, it is imperative for the mobile developer to be able to create iPhone apps, but Apple is refusing to let Windows developers do this. There are some options out there though. The options are constantly changing as new methods are developed and as Apple discovers the methods and puts a stop to them. One thing is uniform for these apps though. You must have them "signed" by a Mac. This means that the final compile must occur on an Apple powered computer. It can be any Apple on the market that will run your SDK, but it has to happen. This may be a little too much for many developers, and if you have to buy an Apple anyways, why not just develop on it? There are some advantages to creating apps on Windows. The first advantage is that you can prove that it can be done and get the self satisfaction of doing it. Another is that there are other sites that sell iPhone apps. The iTunes store is not the only place that sells apps. You can even sell them on your own site. Doing this will alleviate the need for a signature and keep Apple from receiving all the profits of their closed source ways. Either way, here are a couple tricks to creating an iPhone application on a Windows machine.

There is always the tool chain route. This is not a very good path to take if you plan on doing multiple apps though. Since Steve Jobs has gotten in the habit of scouring the iTunes store to delete any Windows created apps, the iPhone SDK is constantly being updated to keep us out. With every update of the SDK, there needs to be an update to the tool chains. This can make them obsolete very quickly. It may also be an instant flag to your app and get you kicked by Jobs and his "App Nazis" as they do the daily scouring. It is possible that you can get one or two apps in and sneak them under the radar, but it is very difficult. Another option for this route is to learn Objective-C, the native iPhone language, and just code from the ground up. That is very tedious and may not be an option. If you have to use an Apple to compile anyways, you may be better off buying a Mac than learning a new language quickly. Although, new languages are very handy and it is recommended to learn as many as you can feasibly remember.

Another option is to code in Java and use a converter. This can be a little difficult since there are several conversion suites out there. JavaGrounds is still one of the best and can create a stable platform. The problem I have had with this method is that Java does not have all the functionality that the iPhone is capable of. If your app involves any type of database or is really robust and in depth, Java may not be able to handle the code to get it to the conversion phase. For simple apps though, Net Beans has worked well for me. I have done several using this method and so far they have been able to post on the iTunes store. I haven't checked in a while, so the app Nazis may have struck since then, but they were stable enough to get started there.

One other option is still in the works. The new Adobe CS5 is going to have iPhone capability. This makes a very nice platform for developing iPhone apps on any machine. You will still have to do the final compile on an Apple, but you can easily convert Flash to Objective-C in this manner. Granted, Flash is more suited to games, but it is a start. It also allows for some more functionality in your apps than Net Beans can offer. It may be a little tedious and seem like a waste of capability, but you can create viable programs in flash. This will allow a gateway to the iPhone app world. The Beta has already been released, but Adobe decided to make it a close test cycle. The distribution version will hit the market some time this spring and should be out any day now. It may be a little pricey, but for anyone creating multiple apps, it may be worth it. For the casual developer, there is always the trial version.

There is a new .NET SDK from Novell out there that will allow you to create iPhone apps in C#, but you must have the iPhone SDK and a Mac to run it. The MonoTouch 1.0 has been on the market for a couple months and there is very little buzz about it. The requirements to run it are very restrictive and it is very time consuming. Wasting the time to set it up is really pointless since having a Mac eliminates the need for the C# SDK. You can finagle it to run on Windows, but I have yet to test the results. It is difficult to get to work right and very time consuming in the setup. Once I get it up and running, I will try to post whether it works well or not. For the enterprising developer, it is another option.

There are several options for the Windows designer to create iPhone apps. It is a little harder to get them to stay in iTunes, but it is possible. With all the Windows developers, which is a considerable group, trying to accomplish this, there are always new methods and ideas out there. Before compiling your code, you will want to keep checking to make sure nothing has changed. Even if you can code the app in two days, it may not work if Jobs and his Nazis have made your method obsolete. If we keep working together, we can keep getting around Apple and create quality apps for all platforms. Another option is to post to a non-Apple site. This will only work for "jail broke" iPhones, but those are becoming more popular anyways. You can always code for Google, Microsoft, Droid, or Blackberry phones as well. These are by no means obsolete, and none of them are anti-Microsoft or as difficult to code as the iPhone.

Published by RH

View profile

To comment, please sign in to your Yahoo! account, or sign up for a new account.