Steve Jobs forbids you from building iPhone applications with a language other than Objective C, C, or C++. If that other language is Adobe Flash. What if it's not Adobe Flash? Are you still forbidden? The answer is that there is no answer. Apparently, Jobs has yet to make up his mind. Unity is a cross-platform game development …
From experience of .... iTunes
"We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform." ... which may explain why iTunes on all platforms is such a rancid piece of time-wasting noise.
I take it you're a Windows user, because it's running fine on my three y.o. Mac...
I guess that...
You're spiffy enough to write an uber-cool replacement for iTunes then. Or, you're just a disempowered whiner. I suggest take two chill pills and go buy an iPad. Or not...
I hate friggin' whiners. Hmmm... I'm whining about a whiner. I need beer....
"I take it you're a Windows user, because it's running fine on my three y.o. Mac"
Running fine and not being a rancid piece of time-wasting noise ain't necessarily the same thing.
I'm sorry, but...
...the minimum criteria for being able to criticise iTunes is not "being able to write something better" any more than the minimum criteria for being a film critic is being an academy-award-winning film director.
also, claiming "itunes works OK on my mac" isn't helpful when it's required software to use your iPod on windows ;) In any case, the issue isn't so much that it may be crap as that it's REQUIRED i.e. you can't use any media organisation program you like.
The title is required, and must contain letters and/or digits.
All it needs is an app that lets you copy MP3s to it, and delete them from it, as if it was a drive instead of going through all that rancid crap.
What's so !@#$%^&* hard about that?
Quite agree...but for the record
..you can always use the iPod plug-in for Windows Media Player, and lose iTunes all together.
Use something like Sharepod and you can lose Windows Media Player too!
So basically, you can only complain about something if you can personally do a better job? Do you realize how ridiculous that sounds?
I suppose it only matters if you can tell the difference
between a native iphone app and a application written in native iphone app assembler, if you can't tell the difference between one and the other, how can you know what it was written in, unless you ask very nicely the developer.
so if it compiles to assembler and runs without testing bugs, then I suppose they don't care, fact was, that adobe was just packaging up flash bytecode right? or at least, it was obvious....in some way...
@Chris Thomas Alpha
If an app works, uses standard APIs, and passes the quality testing, then the only reason apple would ban such an app is to be control freaks. But we already knew this. It's not like end users give a toss about the programming language.
Battery life is the difference.
Well it might appear to run the same, but if the code isn't as optimal as it could be then the CPU utilisation will be higher and the battery life shorter.
Yes, that's a possibility. The opposite is also possible though. A 3rd party compiler could fare better than apple's, particularly for niche applications. There's no evidence either way.
Let's not forget that badly written code will probably perform poorly, apple compiler or not.
Assuming the compilers are on par and developers are competent, then apple's libraries may impose an extra level of indirection which reduce performance when compared to direct compilation. Of course it'd be mad for normal apps talk directly to syscalls in assembler, but I can see circumstances in which it may be reasonable for a 3rd party graphics or rendering library to do so in order to maximize efficiency/performance.
It would be wrong to simply assume 3rd party low level code generators like unity are inefficient or poor in quality. If the pass quality tests, it's silly to ban them on the basis of source language.
Unity will probably stay in limbo
Until somebody at Apple decides they've become a problem. And if that never happens, apps will keep getting approved.
Apple likes to keep its options open, and I don't think it cares if keeping options open means dangling a sword over the head of developers or dev tool providers.
Until it's popular on Android
I guess that Apple will not be impressed once devs start using unity to target Android; it is the evil competition, after all.
If devs start devoloping the same app for iPhone and Android, Apple loos one of the big selling points of the iPhone - all the apps in app store.
What if the Language was SQL and the apps ran right in the browser?
This is an excellent article; adding SQL to the debate, RelationalFramework.com now lets an organization host it's own private app store for the iPhone and it comes with a number of starter apps that includes a full featured IDE for building the relational iPhone apps - these apps are potentially more powerful than desktop apps as illustrated by the IDE which is also written in SQL.
letters and/or digits
If the web site is any indication, it does not work well... It's been a while since I saw anything so bad.
... And the "written in SQL" part seems to consist in writing:
SELECT '<html><head><title>Coded in SQL!!</title></head><body>Whole page written in HTML</body></html>'
It's the XCode connection that matters.
I suspect part of the confusion stems from the legalese, which appears to have forgotten a fundamental tenet of programming: code = data.
When I run a Unity-authored app on an iPad, it's *Unity* I'm running, and that was indeed written using XCode and the relevant Apple-approved SDKs! The only difference between one Unity app and another is the *database* that's been nailed onto the Unity engine. That database is the key, but it is *data*. The specific code that makes one Unity app different form another is just one part of that database, along with all the 3D models, textures, sound effects and so on.
The same point applies to Flash apps too, so all that bollocks requiring a particular language is just legal fluff written by someone who is ignorant of how software development works. It's unenforceable and therefore cannot be legally binding.
For Apple, the key is the ability for a developer to keep up with iDevice changes and SDK updates that's key here. Apple want ensure their iDevices retain an edge over the competition, which means having iApps ready to roll on launch. If a major, popular iApp is written in Flash, and the new upgrade breaks it, Apple would get most of the flak—witness how often people whine about Microsoft even though the vast majority of Windows crashes are entirely attributable to third-party developers.
If I code for Flash, I'm *entirely* dependent on Adobe's update cycles, which are notoriously long, because Adobe's technology completely bypasses Apple's iOS SDK.
As the article points out, Unity *requires* the iOS SDK to build its apps, and allows you to write your own extensions and hooks to Unity's basic engine to take advantage of new features whenever they're released by Apple.
One is a wholly Adobe-controlled platform divorcing the developer entirely from the underlying hardware and OS. The other is a more open, flexible platform which lets you get as deep into the underlying hardware and OS as you wish.
I don't think Apple could enforce the "Must use C/C++/Objective C" rule even if they wanted to: it's damned near impossible to prove with 100% certainty. But they *can* police the "must use XCode / SDK" stuff. And that seems to be what they're doing.
"When I run a Unity-authored app on an iPad, it's *Unity* I'm running, and that was indeed written using XCode and the relevant Apple-approved SDKs! The only difference between one Unity app and another is the *database* that's been nailed onto the Unity engine."
That would make Unity an app capable of running interpreted code, wouldn't it? Isn't that against the iRules and iRegs too...?
You kill the gold egg chicken only when you're ready
Right now Apple has no interest to kill too soon app that drive people to the iPhone. But they kept the option open to kill them whenever it suits best Apple interests. If Microsoft ever did something alike, we would have heard people screaming from everywhere, but being Apple people stubbornly keep on helping Jobs to sell his products, knowing he won't return the help the day Apple will need to sell some game SDK or the like. Well, it it happen those developers will deserve it.
Suggest you read e.g. the page you're currently on
The argument that people don't shout when Apple do things appears not to stand up to scrutiny.
Forcing the issue
Adobe tweaks their toolchain to emit Unity code which then generates code to submit.
I bet that soon elicits a definitive response from St. Jobs.
There are some problems with your post.
"[Google] isn't likely to blacklist applications simply because they were written with tools it doesn't approve of."
True, Google will bury them so deep in the app store search results you'll need half the population of India to find it and even then a google app will still appear above it in the results...
/copters - cos google will be coming for me but don't want to be seen doing anything evil...
No Steve, i am not yours, i develop for your product because it is popular. I develop using as many transferable skills as possible so that when you move onto something new and abandon me I will have a fighting chance of doing something else!
I mentioned this once before. Since they are so holier-than-thou about what you are allowed to run on "their platform" (in actuality, your phone/ithing) they should just make it 2 tiered.
(1) If one just runs apple-stamped apps, and something goes wrong, they honour the warranty fully and have to provide service as promised.
(2) Allow un-stamped apps, but if one runs them and has a problem, Apple's "geniuses" are then not obliged to help with software issues as they are running 3rd party unvouched for apps. Apple would appear quite magnanimous if they did this to satisfy a certain segment of their users and expand market share (I haven't bought an ithing yet because of my objections to the status quo).
One could always wipe their phone clean if they strongly believe it's a hardware issue and go back to Apple and hence (1) above, so this is not quite a biggie.
I think this is fair. The really conservative will only run apple stamped apps. The more experimental will be allowed to. Hell, they could even make it selectable in the OS.
My 2 cents for what its worth.
just buy something other than an iphone
I already did; an android.
So did I
And I now wish I hadn't.
At the 2010 Develop Industry Excellence Awards, Unity won both the Technical Innovation award and the Grand Prix. Their growth has been phenomenal. I'm sure that whatever Apple decides, Unity will manage comfortably.
Stop fretting and release 3.0 already
I love it when people looks at Job's logic like real logic
Most things Jobs says seem to be literally true but act as cover for some self-serving delusion or just plan fear and I don't think the whole "we want people to have immediate access to our API's" BS is any different.
I think what keeps Steve up at night is simply that the next big thing in mobile may be on multiple platforms or (gasp!) that it may not be on the iPhone at all - and making it really hard to do multi-platform development is a huge part of assuaging those fears.
No doubt Steve is a very bad person to be around when things don't go his way.
Flash comes in for special hate as (unlike Unity) there's no easy way to get to the API's if Adobe doesn't help. That gives Adobe a lot of power over Steve and he doesn't seem to like that sort of thing.
St. Jobs Logic
The only logic he needs is the one that pleases the holders of the purse strings.
Lest anyone forget, Apple is a publicly traded company, and it's not Jobs at the top of the food chain--it's the shareholders. I would surmise that everything he does has a multitude of reasoning behind it (personal taste, marketing, technology, fiduciary responsibility).
When you look at the decision to remove "adult" oriented applications from the App Store, don't think for a second that the morality police are sitting the board. St. Jobs knows that the best way to get an iPad into the hands of every middle-schooler in the US is to be able to help "guarantee" that all the content on the app store is porn-free.
The Flash thing? Again, it's control. Flash would mean that high-quality interactive apps would be outside of the reach and taxation of the App Store.
Follow the money.
It does't matter what the rules are.
First of all Apple gets to change the rules at any time for any reason.
Second of all Apple gets to completely ignore the rules. They can reject any app for any reason and they can chose to routinely approve apps that clearly violate them.
Right now Apple holds all the cards. Developers who jump ship and switch to Android often turn around and jump right back in bed with the App Store for a variety of reasons. Android is more free and its more fair but its less profitable and in the end most developers chose profits over principles.
It's very simple
If Unity version 2 ever looks likely to come out, that's 10 times as far, 10 times less buggy, and has 10 times as many features, but is only available for Android (or some other platform), so developers are forced to tell their iPod users "we're sorry the app is so crap on your device but there's nothing we can do about it because you're still on Unity v1" then Apple will instantly ban Unity apps.
Apple can't, and won't, risk being a second class platform citizen again, as they were with Flash on the Mac for example. Been there, done that, hated it... won't make that mistake again.
Apple really don't care what platform or language you use to write your apps, just as long as they can be absolutely sure the experience for users (and developers!) will be at least as good on the iPod/iPad/iPhone as it is on other platforms (or if it's not, that Apple have the ability to fix it themselves, not be at the whim of some 3rd party tool developer such as Adobe - THAT'S the key point).
It's already out
Unity 2.0 was released a couple years ago in fact. Unity 3 is a unified editor: all platform targets have a common codebase and are made in the same editor. So your scenario is impossible.
So make a flash client in Unity
Then it will be banned, esp if the code is open sourced so 000's of clients can be made & submitted to Honest Steve's goblin shop.
Write an engine that runs on top of another engine? I'm sure devs will be all over that.
Native Client = ActiveX
Just had a look at the website.
1 line of sql scales to 10000 lines of C++.
Requires MS Sql Server.
Yet amazingly creates apps for the iPhone. Clown.
- Vid Antarctic ice THICKER than first feared – penguin-bot boffins
- Hi-torque tank engines: EXTREME car hacking with The Register
- Review What's MISSING on Amazon Fire Phone... and why it WON'T set the world alight
- Antique Code Show World of Warcraft then and now: From Orcs and Humans to Warlords of Draenor
- Product round-up Trousers down for six of the best affordable Androids