Develop iOS apps on Linux, run iOS apps on Linux, or both?
I think Apple would restrict development requirements in the App Store to ban iOS apps created with a Non-Apple compiler on a Non-Apple platform just like they banned Adobe Flash and iOS apps made with Flash.
Not only that but Apple would sue anyone who made an environment to run iOS apps on a non-Apple operating system.
I kind of have a Love-Hate relationship with Apple because of that. I feel that iOS apps should be made on any platform and be allowed to run on any platform. Android is the complete opposite of iOS/Apple, any platform and any language can develop Android apps, you can choose more than just one store to buy apps from, and there is this Bluestack app http://bluestacks.com/ that runs Android apps on Windows and there is a beta for Mac OS X IIRC. Not only that but there is an Android for PC OS: http://www.android-x86.org/download
I'm talking specifically about developing. I have to continuously switch between Ubuntu and Mac (and very rarely Windows) and I would prefer to do all of my work on my perfectly capable linux box instead of purchasing expensive Apple equipment just to run XCode. I definitely appreciate Android not forcing you to develop on any specific platform, but at $2k a MacBook Pro, I don't see Apple changing their policy anytime soon.
For now people want to develop for the App Store and they pay for the expensive machinery to get a piece of the action. If the Google Play Store ever becomes the trendy target market and Apple's position is threatened, I imagine they might consider opening up.
If you want to develop apps for iOS on Linux, use something like MOAI or Love2D, or COCOS2D, and so on .. I use Linux as my main development machine, and regularly deploy directly to Android and iOS devices from this very seat. Of course, it helps that I'm using cross platform tools designed just for this task, but in case you didn't know it - its very possible to use Linux to develop for all Mobile platforms. The tools are out there ..
Well, I must confess that what I propose isn't necessarily native iOS development - but rather, VM-based.
In my case, I'm using MOAI (http://getmoai.com). If you check my comment history, you will see I'm quite the MOAI fanboix, and I've given a fair bit of details about how it works - so please check my history for more info.
In a nutshell, I use Linux to develop MOAI applications, and I use the Linux-native MOAI host to test/develop/code for it. It works like this: Fire up SublimeText2, write Lua code for the MOAI framework, run the MOAI host with that Lua code on my local Linux DAW. Check in the MOAI Lua code to my repo - wait for my build server on OSX to check it out, package it into an .ipa file, run it on the iOS devices plugged into my Macbook.
You would still need XCode somewhere to deploy to iOS - but you can do all the development on Linux or Windows, and the MOAI app won't just run on iOS - but also Linux, OSX native, Chrome Native Client, Android and iOS.
And before you worry that performance won't be great - performance is great. :) And there is no greater feeling in the world right now than to be developing an app on Linux, and in a few seconds watching that same app being deployed immediately on Android and iOS devices in my lab, without too much fuss. Same look, same feel, same app: completely different platforms.
I really encourage you to check it out - and as long as you can convince someone to run the XCode build phase for you, somewhere, you can deploy to iOS simply as another target architecture, alongside all the other archs that your Linux machine can support (in my case my Linux machine also builds the Android product..)
Thanks for explaining that, very instructive. I'm not sure I'm quite ready to invest that kind of time into the transition, but it's something to keep in mind for sure. It arguably looks a lot less straightforward than development on Apple hardware, but perhaps I'm looking at it the wrong way.
Oh its a lot more straightforward. For starters, you only need three things: a decent text editor, the MOAI host executable, and the MOAI SDK docs. All of these things can be found on Windows, Mac, Linux ..
Second of all, the MOAI API and programming environment is a lot, lot nicer than Objective-C/XCode/Frameworks.
But I say this, of course, with 4 years of experience in Mobile development, and 2 years with MOAI specifically. Of course I'm overlooking the training period I've been through - for a newcomer it may indeed look like a lot of hassle. But I swear, once you have spent a couple days building an app in Linux with MOAI, and then simply deploy it straight to Windows/OSX/Android/iOS targets, the value is obvious. I simply won't go back to XCode/Android/&etc. now - its just too fun to be building apps this way. One set of code, develop on your platform of choice, deploy all the way to the walled garden, and back again, around about the massive fields of Linux/Windows/OSX, and so on.