Change to iPhone SDK - How will it affect Juce?


Hi all:

Apple announced iPhone OS 4 today, and also updated their iPhone Developer Program License Agreement. A news article pointed out the following change to the agreement:

The original article I found this in:

This is obviously a consequence of some Apple/Adobe pissing contest, but how does the new agreement clause affect Juce? Would Juce be considered a “compatibility” layer, even if it is written in C++?

Sean Costello


I don’t think that applies to JUCE.(in as much as it applies to Cocos2d or oolong or…) But its a murky area indeed. Lots of game engines(Corona/Unity/SIO2/Torque(?)) allow scripting(which could be interpreted as intermediary translation), I guess the question becomes… are those scripts calling directly into a documented API (like say wrapping CoreAnimation) or calling into the game engine(which does something more complicated than just calling an Apple function.) Moreover how are the approval people going to monitor this? Will they class dump the binary to see all the Obj C. Will they be monitoring the process for anything that looks like an interpreter… and how will they do all this without cutting off the hand that feeds with regards to the game market.

Perhaps(and this is just conjecture) its wording to give them denial power over the flash to iphone compiler… time will tell!


Yeah, I don’t think this would be a worry for us - writing a c++ program using juce doesn’t break any of those rules.

Every C++ app has to use classes to call the Apple APIs, and you could either write those classes yourself or use some of my classes to do it. Either way, you’re taking a bunch of c++ source code and compiling it in the Apple-approved way. They don’t (and can’t realistically) stipulate that none of your source code is obtained from a 3rd party.

But although I don’t think it’s a problem for us, it’s still a pathetic piece of willy-waving from Apple. It’s obviously aimed at Adobe, but this kind of FUD just confuses and pisses-off the developers that they should be trying to support. I have a love/hate relationship with Apple - the machines they make are fabulous, but the company’s arrogance is just getting beyond a joke.


I’m pretty sure this is all less about code tools, and more about eliminating the risk of a ‘lowest common denominator’ environment. Apple takes a beating for their Flash hatred, but Flash is, sadly, better than the alternatives. HTML5 is still not fully featured enough, widely deployed enough, or backed by capable enough IDEs to really compete at this time. Java by contrast epitomizes the worst of run anywhere code. By no stretch is a Java app ever likely to be more desirable to the user than a native app, all things being equal.

Also, people tend to forget that Adobe have held Apple hostage in the past, and will do so again. If Flash, for example, is arse on OSX, many users will just see that the web is arse on OSX, which is really bad news for Apple.

I can see why Apple are fighting back here.

I’m not so sure Jules. I think Google is the real target here. If Flash, either as a run-time or a development environment, becomes ubiquitous across all cell phones, Apple is done. There’ll be nothing to differentiate apps on an iDevice from apps on Android. No matter how many cool features Apple adds, apps wont utilize them because developers are tied to the feature sets supported by Adobe, and available on all devices. That’s a race to the bottom for hand-set manufacturers, since they’ll have nothing by which to differentiate themselves beyond price and gaudy. Google obviously doesn’t give a flying about that though, because they’ll have won the war they’re trying to win: ownership of the mobile space and attendant advertising revenue, whilst simultaneously dealing a potentially severe blow to Microsoft.

Apple are a troubled company. Their whole pitch is around the idea that up-market niche items are a worthwhile sector of the market, and that they can survive by exploiting that area better than anyone else. The problem is, they clearly don’t believe a damn word of it, and it shows. They, just like every other computer company, need to control a big enough section of the market to avoid being the next Netscape/TiVo/Borland etc. You can pull the niche thing in the CE world, but not in the computer industry. Inertia matters. Apple are instead trying to redefine the game, and to do that they need to persuade users that they really want CE devices not computers.

Partly because I can see where they are coming from, and partly I guess because what they are doing is little different to games console SDKs, but perhaps mostly because in my world, if I want to make my code talk to something, I’m really going to have to jump through some hoops, I just can’t get all that fired up about the new license agreement.


Good post Valley. You could have written a blog on in. It’s more like apple is try to strike two bird(Adobe and Google) with a single arrow.


Apple seems to have seen the light. Have a look:


Yeah, I think what they really saw was a potential anti-trust lawsuit brewing…