Apple's new iPhone TOS.. What does it mean for Corona?

Today John Gruber posted about changes in the iPhone SDK TOS… I am wondering what this will mean for Corona? It seems to me that based on this Apple can deny any app created with Corona. Please advise.

http://daringfireball.net/2010/04/iphone_agreement_bans_flash_compiler

********* UPDATE ****************
********* UPDATE ****************
********* UPDATE ****************
I am closing this forum entry as we have two other entries regarding Apple’s new TOS 4.0 and 3.3.1
http://developer.anscamobile.com/forum/2010/04/11/blog-entries-ansca-co-founders-walter-and-carlos-re-iphone-os-40-and-331
http://developer.anscamobile.com/forum/2010/04/08/os-40-and-corona-sdk

[import]uid: 4701 topic_id: 762 reply_id: 300762[/import]

We’re in the same boat as a large number of 3rd party solutions including Unity, Appcelerator, RhoMobile, Monotouch, and more. We are working with Apple to clarify what this means. Our intention is to remain compliant with Apple’s licensing requirements. [import]uid: 54 topic_id: 762 reply_id: 1537[/import]

Please advise us with an email when you get an official answer. I think this is something all of the developers should know and it’s very easy to over look this right now and they might not make it to the forum.

Starting to feel like there should be a warning… Buyer Beware!

I hope Apple gets back to you quick- keep us posted. [import]uid: 4756 topic_id: 762 reply_id: 1539[/import]

The executable binaries you build using Corona are 100% Objective-C and C++. [import]uid: 24 topic_id: 762 reply_id: 1542[/import]

Let us know how it goes.

PLS [import]uid: 5899 topic_id: 762 reply_id: 1547[/import]

Yes carlos I understand that, but it seems according to what Gruber posted that even Obj-c code written with 3rd party SDKs like corona are not allowed. hence my questioning of the situation here. [import]uid: 4701 topic_id: 762 reply_id: 1550[/import]

Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs

Corona apps are most definitely NOT written in any of the above languages so I don’t think there’s any wiggle room there. Shall we all hope and pray that Apple takes this out or doesn’t enforce it? Could we be that fortunate?

My take away the agreement adjusted to fit working with Corona just doesn’t work:
MyCoronaApp was originally written in Lua which isn’t executed by the iPhone OS WebKit engine and this code written in Lua may not compile and directly link against the documented APIs. [import]uid: 4756 topic_id: 762 reply_id: 1553[/import]

Corona apps are written with the Corona engine which is 100% Objective-C/C++. The Corona engine links against the Apple SDK. We require the Apple SDK to be installed to complete the build process. We’ll be elaborating more on this with an official statement soon.
[import]uid: 54 topic_id: 762 reply_id: 1554[/import]

Read our blog by our CTO, Walter Luh at http://bit.ly/bPDiue [import]uid: 24 topic_id: 762 reply_id: 1556[/import]

I know the answer will be no, but have you had anything from Apple that you can publish?

Cheers

Gary [import]uid: 4523 topic_id: 762 reply_id: 1558[/import]

First off, I’m just talkin’ here. We won’t know anything directly until Ansca says one way or the other, but I wanted to present a scenario which would, I believe, be a solution should Apple say no to the way things are currently done.

From all I’ve read, it looks like Apple is trying to shut down the idea of a “cross-platform/language-toolkit”. They want all their apps to be written specifically for the iPhone because then the cost to be supported on other phones will be very high to developers. Why? This forces developers to “lock-in” to the iPhone (due to the cost of re-engineering on multiple platforms, debugging on multiple platforms, etc) and the direct result is a set of Apps which are only available on the iPhone. This strategy really only works as long as you are the number one smartphone… but… when a developer can create an App for 3 or 4 other platforms by writing it using an SDK like Corona, suddenly it’s not a question of whether or not the iPhone is the number one smartphone, but whether or not it maintains the market share against positions 2, 3, 4, etc. *That* is the pitfall they are setting themselves up for and I sincerely hope they understand that. If they take this step, they’re going to piss off a not insignificant number of developers and they might just find out what happens when we can build for 4 other devices with one codebase and simply ignore the iPhone.

At any rate… here’s the bottom line question: If *I* were to take the lua source code, compile it under my XCode iPhone project, and create strings of lua inside my own obj-c files, call the lua engine with those strings… am I legal under the TOS? I believe the answer to that question is absolutely 100% yes. This is no different than using XML or my own home-grown macro language. It’s no different than creating a library of utilities that creates and manipulates the UI. It really isn’t.

Take that a step further and now I’ve created my own library under the XCode iPhone project system which encapsulates the lua engine. Now I can reuse that library with all of my iPhone apps. This is *no* different than using a gzip or xml library. Following the same idea of encapsulating my lua inside of my obj-c files in my iPhone app, I’m still 100% in the clear. Why? Well “var = display.newText(…)” is absolutely no different than making a call to a class I write which does the same thing as display.newText does. There is no logical distinction. Take that a step further, it’s no different than calling a compression routine in the gzip library. Someone else wrote that, but I’m using it.

Now I’ll step back and say this: There are plenty of times where I have, in the course of designing projects, used any number of rapid-prototyping systems to create my application and then the final step has been compiling for my release binary.

In the iPhoneOS 4.0 world, I would suggest that *one* way (if necessary) to comply with Apple is for Ansca to release a library we can link to and have the simulator (as-is) that we can prototype with. The final piece of the puzzle is a standard template that is generated which allows us to open up the project in XCode and build our App. Even if there’s no template generated and I have to create the new XCode project myself, then set up the library for linking, and incorporate the lua into my own obj-c files (this could be easily done by using gzip to create a string that is stored in an obj-c file)… even if I have to do all that, it’s still far less work than using Apple’s development path.

Yes, it would require some more work on our part for the final step and would likely make some folks who don’t have the expertise simply punt on the whole thing, but I would guess that most of us could accomplish this final step without much trouble.

Thanks for a great product, Ansca. I hope everything works out!

Scott [import]uid: 5659 topic_id: 762 reply_id: 1560[/import]

Scott, you raise very valid points however why is there Lua in the executable? This would be a form of VM which apple certainly doesn’t allow. I thought that through the corona special source process you’d end up with 100% Objective C and no Lua anywhere. Of course i’m sure there will be tell tale signs and fingerprints of where the app came from so apple *could* ban it.

But if corona has no Lua or VM in it, then should it be okay?

As i mentioned in the other thread, it’s down to how apple want to play it.

cheers
paul [import]uid: 5764 topic_id: 762 reply_id: 1562[/import]

Yep, embedded VM’s were already against the TOS even before this update. It seems Apple weren’t too strict about enforcing that however, as a number of apps got through which worked in this way.

If anything, this update shows Apple are trying to clamp down and get even more strict in this area however.

I think it would be a fairer approach if Ansca get an official OK from Apple about Corona before telling everyone that Corona is safe from the TOS, because in my (and many others’) opinion the situation is nowhere near as certain as the CTO’s blog post suggests. [import]uid: 4769 topic_id: 762 reply_id: 1563[/import]

Having just downloaded the trial and gone right through to getting an app on my phone in…well no time at all…I certainly hope things work out and will be dropping my $99 even quicker if it can be confirmed as a pretty safe bet.

However I think there is a real problem if compiling is still done remotely. [import]uid: 6086 topic_id: 762 reply_id: 1636[/import]

Please read

http://blog.anscamobile.com/2010/04/lua-the-lingua-franca-of-iphone-games/
http://blog.anscamobile.com/2010/04/corona-and-iphone-os-4-0/
http://blog.anscamobile.com/2010/04/do-apples-new-rules-affect-you/
[import]uid: 24 topic_id: 762 reply_id: 1677[/import]

Nothing in those blog posts confirm officially whether Corona and similar SDK’s will be safe in the future.

  • We are very aware that there are existing apps in the store which were written in ‘non-apple-approved-language-x’.
  • We are very aware apple promote games that were previously written in ‘non-apple-approved-language-x’.

The new TOS suggests a CHANGE in Apple’s acceptance policy and unfortunately for me, how apps were written in the past and open letters from developers do not reassure me that everything is fine. We need OFFICIAL statement from Apple, because as it stands, they can refuse any app where the language isn’t C/C++/ObjC (they can interpret this however they want, I understand how Corona generates a native ObjC/C project), regardless of what was the case in the past.

While we can all speculate why apple introduced the change, many of us would agree that they would not like people to use SDK’s that can publish to multiple (non-Apple) platforms in one click, they want to lock developers in. Corona SDK and building for Android would be a perfect example of such an SDK.

[import]uid: 4769 topic_id: 762 reply_id: 1679[/import]

Honestly I have to agree with deakster, while I think the team at Ansca are great and have been outstanding in their support and the fact that Corona is a brilliant platform the lack of a definite answer is problematic. Carlos, you can defend Corona and its implementation all you want but without an answer from Apple on the matter your blogs can only be taken as speculation and no correct business decision can be taken on those posts. (although I do agree with them and I respect the position you are coming from)

Ive bought 2 licences and would be willing to pay more for the Corona platform but that would need to be based on the following conditions. Guaranteed iPhone publishing, guaranteed future support / upgrades for Corona (especially given some of the more outstanding bugs that have been included in the 1.1 and beta release that effect such basic functions as rotating a group and having its children / buttons inherit the rotations). Im a bit miffed that 2.0 is being released when 1.1 still has issues that have yet to be resolved.

I honestly feel really bad for you guys given the situation and your hard work and its has made me question the Apple platform in general. Jobs is trying to do what he failed at 10+ years ago and will only drive developers to other platforms and in the long run kill the iPhone as a platform. If you look at how Nintendo and Sega lost out to Sony with the Playstation 1 it was because of developer lock in, questionable publishing conditions etc… (like paying nintendo a fortune to release a game on one of their supplied cartridges etc…). Hopefully eventually enough of the big players will wise up and start demanding better terms.

Until then it would be nice if you could just say “we honestly dont know”. I dont want my money back, you guys have more then earned it, but it would be nice if you could be straight forward.

Anyone else agree?

[import]uid: 5354 topic_id: 762 reply_id: 1682[/import]

We are working very diligently in setting up a meeting with Apple and/or getting a word from them. I have reached out to colleagues of mine who worked with me when I used to work for Adobe as well as Walter reaching out to his Apple colleagues when he worked at Apple as well.

As soon as we know something, you will be the first to know.

Carlos
[import]uid: 24 topic_id: 762 reply_id: 1689[/import]

Definitely.

I can be very cynical sometimes so take this comment with a pinch of salt, but the moment Apple start supporting SDK’s that can generate apps for both Android and iPhone, they might as well stick the following tagline on their homepage:

“Hey everyone! You no longer need to buy an iPhone/iPad! Many of our apps you can now buy _THE EXACT SAME ONE_ on the Android store too! Here are some links to buy our competitors devices:”

All jokes aside, it would be very short-sighted to think that these factors have not been considered by people high up at Apple, and that factors such as these have not contributed to some of the recent decisions. At the moment the size of the App Store greatly outweighs the Android Store. Please trust me when I say they do not want to balance things out a bit. [import]uid: 4769 topic_id: 762 reply_id: 1688[/import]

I am closing this forum entry as we have two other entries regarding Apple’s new TOS 4.0 and 3.3.1

http://developer.anscamobile.com/forum/2010/04/11/blog-entries-ansca-co-founders-walter-and-carlos-re-iphone-os-40-and-331
http://developer.anscamobile.com/forum/2010/04/08/os-40-and-corona-sdk [import]uid: 24 topic_id: 762 reply_id: 1694[/import]