OS 4.0 and Corona SDK ** UPDATED**

*** NEW UPDATE ***

Please read my blog regarding Corona and iPhone OS 4.0

http://blog.anscamobile.com/2010/04/corona-and-iphone-os-4-0/

*********************

Will we be supporting OS4.0 in Corona?

YES !

When? Well, it was just announced and we just downloaded it.

As soon as we have more details, we will let you know.

** Update ***

Walter Luh, Ansca's Co-founder and CTO blogged about Apple's new TOS Do Apple's new rules affect you?

I also want to reiterate, that we will be doing whatever it takes to be 100% Apple compliant, and I want to thank you, our developers, for the outpour of support via email, calls, tweets, etc. I strongly believe that we are going to be fine, and here at Ansca, we are committed in delivering the best tool for multi-platform game and app creation.

I also want to let you know that we are going to be making a major announcement this Monday, April 12th, at the 360iDev conference as well as publishing a roadmap of what is coming ahead in terms of features, products, and a few good surprises here and there (not the Apple type of surprise ;-).

Thank you for all your support, and for your trust in Ansca and Corona and I look forward to all of us getting past this, so we can all focus on creating great games and apps for both Apple and Android platforms using Corona.

Carlos Icaza, Co-founder and CEO

The new iPhone Developer Program License Agreement states...

3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. 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 (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

This seems a little troubling, will Corona still be OK?

We believe we are going to be ok. We are and we will be doing all we can to adhere to the SDK. Just like how we explicitly state that XCode must be installed in your computer in order to run Corona. There was and there is a reason for that.

We will continue to add features, and functionality and we are going to what ever it takes to be 100% Apple compliant.

"must be originally written in Objective-C, C, C++, or JavaScript" - that definitely sounds troublesome, unless you're doing a translation to objc before compiling (so they can't tell the difference)

The executable binaries you build using Corona are 100% Objective-C and C++.

awesome :)

Great to hear that!

Carlos, I think this statement "The executable binaries you build using Corona are 100% Objective-C and C++" is not really answering anything.

FWIW, so are the executable binaries made with CS5/Unity3D/Titanium ...

I think a more responsible thing to the Corona developer community would be to put out a considered blog post like the Appcelerator CEO, so there's a definitive "we're not sure, but we're working on it" answer.

http://developer.appcelerator.com/blog/2010/04/iphone-os-4-0-announcement-and-our-commitment-to-you.html

If developer folk like Joe Hewitt (Mr three20) think the new clause is closing the door, I don't think you can just throw a line out there saying you're compatible.
http://www.businessinsider.com/facebooks-iphone-app-maker-is-angry-about-apples-new-sdk-2010-4

That said, I'm buying my Corona subscription today because I want to knock out some quick OpenGL iPad prototypes ... so I for one am planning to use the time between 3.2 and 4.0 as a opportunity window for Corona.

Regards,

- Ian

Read our blog by our CTO, Walter Luh at http://bit.ly/bPDiue

In reality some kind of confirmation needs to be heard from Apple. Whilst technically this all seems okay it's down to how they want to enforce it, i'm sure there's a corona fingerprint somewhere in the way that the code is compiled which apple could find and block *if they choose to*

(there's a possible analysis of why here http://daringfireball.net/2010/04/why_apple_changed_section_331)

Unity is supposed to be better off because it produces an actual XCode project which you can modify.

But the bottom line is some kind of official line from Apple would needed. Is that something Ansca might be able to get? If Apple are just trying to stop cross platform development through a middle layer (as the blog post above considers) then there *is* a problem, it's all down to how they enforce that clause.

cheers
paul

As lunixbochs said, I think the "must be originally written in Objective-C, C, C++, or JavaScript" might still be a problem; even with your "secret sauce", opening the compiled app in TextEdit shows "Lua" sprinkled throughout, showing that at least some of the code wasn't "originally written in Objective-C, C, C++, or JavaScript".

More importantly, though, is once I agree to the term, am I not immediately going against the agreement when I start coding in Lua? While it might be possible, legally, to use Corona and Lua, morally am I not breaking my promise?

I'm going to keep working in Lua (because I love it), but some assurance from Apple about Corona/Lua would go a long way to easing my mind.

Hello,
I think that we (as user) can only wait the decision of Apple/Ansca...

Best
Ale

Totally support Ansca in this and its only going to be more bad PR for Apple and im sure Adobe wont be quite on the issue.

Part of the problem appears to be third-party development being able to work completely with multitasking in OS 4.0; from that viewpoint, I can understand Apple's stance a little better. The last thing they need while trying to develop a really solid feature like multitasking is a few thousand applications that don't work with it. I think that any third-party compiler or development system that can *fully* support the new features should be allowed to be used, but I also think it's very, very important that they perform as well, or better than any native CocoaTouch app.

I can only imagine how bad things would be if once OS4 launched there were another 100,000 free Flash apps with iAds, all not working completely with the new OS (especially after all the flack Apple's taken to date for not having multitasking).

Your average end user wouldn't be saying, "These, these and these apps don't work", they'd be saying "The iPhone doesn't work." It's not so much that Apple's trying to control everything for control's sake, and cut other companies out, it's more that Apple's trying to maintain a certain level of quality for their product and the end users' experience.

Of the few that do recognize that it's the apps that aren't working, a large number would probably still blame Apple for making an OS that isn't compatible, and not the other way 'round.

Apple could have simply demanded that all apps submitted must be 100% OS4 compliant, and spent the next year or two turning down a few hundred thousand apps that didn't work with multitasking. Instead, they've let developers know where there might be problems well ahead of the summer release, giving them a little time to at least start to retool things.

To that end, Adobe could have spent the last two years building an Flash/ActionScript translator that could have translated their development output into Cocoa/Obj-C files that the user could then plunk into XCode and there wouldn't be any problem. I wouldn't be surprised it that's not the way a few of the other companies go at this point.

I'm confident that Corona's going to do just fine, and I'm really, really looking forward to the next roadmap and update.

Can't get anybody to comment on my post, so let's see if anybody from Ansca notices it here:

Ansca has responded to Apple's new rules by reassuring its own customers that everything is ok and CTO also affirms:

“The executable binaries you build using Corona are 100% Objective-C/C++. So if you’re a Corona developer, you don’t have much to worry about!”

In fact, by just unpacking any IPA generated by compiling the Corona project or those already on AppStore (I tried this with tapDots, XMas Dance and a few others), it is trivial to notice that the only thing that gets compiled is the Lua interpreter while the application itself stays interpreted as Lua byte code (the file is called "main.lu"), which means 100% clash with the new Apple rules. By the way, It is even possible the decompile “main.lu” using LuaDec.

Apple will find this sooner rather than later and developers using the Corona SDK seems to be more in danger of seeing their apps rejected compared to the ones using Flash CS5 Packager for iPhone.

What's the position of Ansca on this?

Other none Corona apps are also complied with C and a Lua interpreter, it can make writing applications easier. Angry Birds (a current App store hit) is written like that and there will be many other developers who employ similar tricks.

This could damage Apple developers more then people first thought given resourceful developers will and have been using whatever tricks they could to speed up development time. If the new rules are there not to ban Flash but more to enable the multitasking to work then Ansca will be able to include those new features and make Corona 4.0 compliant in that sense.

If Apple are doing this to ensure applications are written well and run well on the iPhone (no memory leaks etc) they would do well to work with Companies like Ansca as a well built Corona SDK will produce well built applications and the hard work in resource management is already done by the dev tam.

I am sure things will turn out fine. As much as we are dying here for getting an official words, we won't see something soon. AnscaMobile already stated that we should not worry. Apple won't answer to our or their calls quickly. Maybe never. I expect from AnscaMobile that they will take actions to make sure that we run save.
But what is more important for me, is that they confirmed to work further on the Android platform not matter if they quit the IPhone part. The Android platform is much more important and the more valuable platform to me in the long run.
I just bought the SDK this morning and will keep on working with Corona. I will stay positive and don't waist my time more on how, what, when? I will find it out one day anyway.

Btw. I think on weekends and especially that convention now where the team is, we won't get to see them on the forum much anyway. But that is just a pure guessing from my site.


I also want to let you know that we are going to be making a major announcement this Monday, April 12th, at the 360iDev conference as well as publishing a roadmap of what is coming ahead in terms of features, products, and a few good surprises here and there (not the Apple type of surprise ;-).

Damn...another two days... any hints? :)

P.S.: the CITE tags seem doesn't works.

Apple's Steve Jobs has obliquely responded to the 3.3.1 uproar. Unfortunately, I don't think his response is what we want to hear.

http://www.taoeffect.com/blog/2010/04/steve-jobs-response-on-section-3-3-1/

After what Steve just said its looking less and less likely Corona will be allowed in future.

Thats screws things up for lots of people / companies and will only hurt Apple in the long run. Forcing developers to use xcode / obj c as a way of controlling the platform is a bad idea. When windows phone 7 hits and it takes off, as it will do, devs will have a choice of supporting the iPhone or everyone else.

As for me im packing up development in Corona for the moment as it seems a waste of time until the dust has settled.

Sadly, I have to agree with Matthew based on the recent emails from Steve Jobs. This move appears to have multiple motives:

1. Ensure that apps keep pace with future enhancements to the OS (e.g. Multitasking) - Legitimate.
2. Ensure that apps run well on the platform- Sort of legitimate. An alternative would be to let end users decide, just like they do on the Mac platform.
2. Screw Adobe.
3. Maintain the appeal of the iPhone/iPad platform with apps that are exclusive to the platform- In my view, a mistake. The platform should stand on its own strengths, not contrived exclusivity. The fact that there are apps that run on both Win and Mac platforms hasn't caused a mass exodus of Mac users.

If I'm right about #3, and ANSCA want's to remain a legal tool for iPhone/iPad development, I wouldn't be so quick to announce Android compatibility, and would work furiously to incorporate OS4 features. On the other hand, if Matthew is right, ANSCA's future is probably with Android.

I stay with Corona, hell I just bought it yesterday. Why? Because of the Android support! And now I would like to see support for desktop apps of OSX and Windows. How about consoles and handhelds?

I think Apple may still be willing to play ball. Banning all game engines is going to be a problem -- a lot of studios use Unity. It's just nonsense for Apple to insist that games will be better if build exclusively in Obj-C. The question is whether Apple will be courteous enough to reassure Ansca that Corona is okay, or whether it wants developers to be uncertain in order to force them into choosing sides.

There remains major opportunity for someone to combine a programming environment that's simple enough for hobbyists and powerful enough for high-level programmers with a graphics layout tool that outputs Web apps and to other platforms. Corona looks like it's headed in that direction and I'm looking forward to seeing where it goes.

Two years from now, when Android's market share equals the iPhone's, I think Apple may be forced to rethink its isolation.

"I think Apple may still be willing to play ball. Banning all game engines is going to be a problem -- a lot of studios use Unity. It's just nonsense for Apple to insist that games will be better if build exclusively in Obj-C."

I don't think that's their point; they're more likely concerned with keeping apps in the appstore up-to-date with the current SDK. Adding intermediate layers of development hinders that.

Let's say that the Adobe/Flash builder is accepted on the basis that it's 100% compliant with the OS 4.0 SDK. They get it up to speed by summer, when 4.0's released, everythings fine, and 10,000 new apps based on the builder hit the store.

Everything's fine.

Now, come December, Apple decides to add/update or otherwise modify the OS to 4.5 with a June release. In December, they release the update to the SDK, and all of the developers have until June to make their applications 4.5 compliant. Anyone programming in Obj-C with the SDK has six months to update their code, for some it might be a minor tweak here or there, for others a bit more programming to take advantage of some new features.

Unfortunately, all of the developers who used the Flash builder don't have the same six months. They, unfortunately, are now dependant on Adobe updating their builder and getting *it* into their hands.

Adobe has a very poor history of moving quickly on Apple-oriented upgrades; I, for example, held off jumping on the OSX wagon because I didn't want to run my Adobe Creative Suite more slowly under Rosetta, and waited for an OSX update, and I know I wasn't the only one.

We're still waiting for upgrades to take full advantage of Snow Leopard. Macintosh Flash, for the most part, has almost never been on par with the Windows version.

Assume that they follow the same pattern with their builder, the developers might not be able to update their software until after the OS 4.5 is out.

People who enjoy or need to use those apps might hold off updating their iPhone/iTouch/iPad for fear of breaking those apps, and now Apple is unable to keep a relatively-uniform End User Experience across their store.

Apple's End Users (and to an extent Apple) are now forced to rely not on Apple and their developers, but on Adobe as well for their updates.

Add to this the fact that Apple has received payment for those apps that charged, and Apple has a certain responsibility to their customers because of it.

Customers most likely will blame Apple for things that don't work, either complaining that they "broke" apps that worked before through clumsy updates, or even going so far as to accuse them of sabotaging other companies' products (despite the fact that almost all of the apps in the store are "other companies' products").

I think what we're seeing now is merely Apple trying to act responsibly by improving and updating their Mobile Operating System and ensuring that developers providing applications for the store have as much chance as possible of keeping up to date by eliminating possible bottlenecks that are otherwise out of Apple's control.

Apple has put the new SDK into developers' hands months before they're going to release OS4, and you can bet there'll be more updates before the release; counting on a third party like Adobe (with a terribly spotty record to date) to keep up-to-date enough that *their* customers can keep their development on-track for OS changes wouldn't be a wise decision.

As a developer, would you be willing to bet your livelihood on Adobe's ability to update their Flash Builder fast enough (keeping in mind that they're so far behind on every other Mac product they own) to keep your product current?

To that end, I can see products like Unity and (hopefully) Corona making enough tweaks to their system to be acceptable; Unity already provides an XCode project, and they have a few months to tweak it to generate the flavour of C needed (a bit of work, but not unthinkable). By already working with Apple's SDK, I think Ansca's a fairly safe bet.

Ansca team... any news?

This is no Ansca news but the response i got when I asked a question to Apple about using certain middleware tools, if they are allowed under the new TOS:

Thank you for contacting the Apple Developer Support regarding the iPhone Developer Program.
Please know that relevant resources for iPhone developers can be found on the iPhone Dev Center.
http://developer.apple.com/iphone/
In particular, please refer to the Program Portal User Guide available to downloaded via the front page of the Program Portal.
You may also wish to post your question on the iPhone Developer forum that can be accessed via the iPhone Dev Center.
Developers are eligible for development level support from the Developer Technical Support team. Please refer to the following website for further details:
https://developer.apple.com/support/resources/technical-support.html>
We hope that this information is useful to you. Please let us know if you have any questions regarding this information.
Best regards,

I won't bother to go further asking apple. They won't comment specifically on my question. And I am sure they handle other developers the same.

I just got something similar. I would guess the support staff do not know what is going on either. I asked about using 3rd party SDKs s like Corona in my application.

Thank you for contacting the Apple Developer Support regarding the iPhone Developer Program.

Please know that Apple is not able to provide pre-approval to developers for proposed app submissions.

We ask that you please review the Program License Agreement details against your specific application you wish to develop and submit any apps for App Store consideration in line with the usual app submission processes for the program.

Thank you for understanding our program policies.

Best Regards,

Taking stock of the situation i have to say it doesn't look too hopeful, this is a good blog post that might hold some relevance:

http://www.devwhy.com/blog/2010/4/12/its-all-about-the-framework.html

It could be, as suggested, that Corona is collateral damage with the main target being Flash. I can understand, in the case of flash, why Apple is doing it. However if it was unilaterally targeted at Adobe then politically that would cause even more problems. So a blanket clause has been added.

We really need to hear from Ansca and hopefully they've had some discussions with Apple. It would be a difficult situation to go ahead with any development with the *possibility* of it being banned in the future.

It must be a really tough situation for Ansca.

I'm at the crossroads deciding what to develop in. I really didn't want to learn Objective C and i loved the idea of delivering for both Android and iPhone.

Cheers
Paul

It's downright ridiculous. How can any company afford to devote months of solid app development only to have it unapproved by Apple due to the development platform used? They won't know til the app is completed!

In further reply, I'm glad Corona are targeting Android, as at least efforts won't be wasted should such an event occur...

from announce tread
"Hello Corona Developers, here is the big news of the day,

Ansca Unveils Corona 2.0 SDK for Multi-Platform App Creation at 360iDev. Official Press Release.

iPhone, iPad and Android integrated in one environment."

These meaning that Corona will be support iPhone and iPad?

The mentioning that Steve Jobs himself promoted OS4 with a game that uses LUA is awesome. I keep on working with Corona SDK for the Android platform. And if I get an app into the fruit store, then that is even better.

Yup, check out my post from this morning: http://blog.anscamobile.com/2010/04/lua-the-lingua-franca-of-iphone-games/

There's a photo of Steve demo'ing Tap Tap Revenge (which btw embeds Lua) using OS 4.0

Ok, hope this is what we can aspect... becose I have just buy the Corona sdk :)

Walter,

Thanks for your blog post. Previously it was claimed that the Lua compiles into Objective C but now it sounds like there is a VM running inside there, is that correct? I was under the impression that there would be no Lua in the final compiled binary but that's obviously not the case.

Either way, i hope that there is some kind of official word from Apple. It's tough to sink time into a development that may or may not be allowed in the future.

Has there been any success in a dialogue with Apple? That's what i think more people are concerned with as opposed to technicalities.

cheers
paul

Interesting (if overly fawning) post speculating that the Xcode requirement reflects an unannounced chip architecture change, something that would presumably break third-party tools:

http://stevecheney.posterous.com/the-genius-in-apples-vertical-platform
based on chip analysis here:
http://www.technomicon.com/iPad_Saga_-_Week_11_p.html

Alternative teardown that maintains the A4 chip is an ARM chip:
http://www.ifixit.com/Teardown/Apple-A4-Teardown/2204/1

Why would it break them automatically. Everything, even a only XCode app would have to be recompiled. So are the underlying tools of a 3rd party engine. Ansca said that they make Corona OS4 compatible. I am fine with that.

Since there was so much debate on this topic, including the latest post on Ansca's blog (a post which tried to strategically establish a stronger position for Corona, probably by lack of response from Apple) I thought to share my 2 cents. This is pure speculation, by the way.

What if Apple would want to establish some sort of quality level from all the cross-compilers out there (Adobe included)? What if their goal is to create some sort of a compliance test that any cross-compiler (or SDK, for what matters) should pass before stating that the app complied using that tool would be marked as acceptable by Apple? That sounds a little bit more logical to me. Apple would benefit from the traction these SDK's can generate, while still maintaining a close control over them. That way, the strain would be on the SDK makers, to make the tools Apple compliant, leaving the potential developers free to chose whatever development environment they feel comfortable with.

I also don't know the actual stage of Ansca's conversations with Apple officials, but I assume they either didn't get any, either got a big NO which made them think in this very moment how the hell to escape this dead end. In both cases, a new approach of Apple with this idea - "wow, Apple, so you want to give us a spreadsheet filled with rules that we must obey, why didn't you say that in the first place?" - may change something. Or not.

Please note I am a happy Corona 1.1 owner (enrolled in both iPad and Android programs) and I'm unspeakably eager to get my hands of Corona 2.0. :-)

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

This might kill it (and I just came to Corona and love it!):

"(e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited). "

Linking to documented api's through a tool. Isn't this *exactly* what Corona does? I really hope you guys make headway with Apple or all the time I'm spending right now could be better spent learning Obj-C.

Thanks and I'll be praying for you guys...

Given the following statement from Steve Jobs http://www.apple.com/hotnews/thoughts-on-flash/ (in particular "Sixth, the most important reason" ), it is difficult to see how Corona has a future on Apple mobile devices.

This is not our view. We don't "come between" the applications you author in Corona, and the iPhone SDK. Apps you create in Corona are native iPhone apps, as the Corona engine is built with Objective-C and C++ directly on the iPhone SDK. This is what Steve is referring to when he says others might have taken 10 years to finally port to Cocoa. In contrast, Corona was built from the ground up for iPhone development, in Cocoa.

Now, you may say, Corona does not offer every possible API available on iPhone. This is by design -- Corona does not pretend to be Xcode. What we do, we do well.

Corona is architected by mobile-savvy engineers, for mobile. We are not a desktop solution ported to mobile.

But, I think the one sticking point of the whole philosophy is that there is no easy or quick way for you (or any 3rd party tools) to stay up to date with the APIs as fast as Apple updates them. Certainly, when features conflict with Android and your iProduct customers, you will have to make some awkward decisions on who to support and when.

Hasn't there been a bit of discussion about Corona allowing us to include/combine ObjC into our Corona projects?

I for one would think that would help immediately. I could use your wonderful tool for everything it does, but still be able to "roll my own" microphone recording code from Apple's docs, and code samples, without waiting for you to have to develop an API for it.

We are considering ways for you to extend Corona, but there are significant support issues. It's much more difficult for us to investigate a crash, for example. And figuring out how to make the internal Corona objects available for you to extend is somewhat complex.

This raises an excellent question: what should be the Corona philosophy? In other words, if you are a skilled enough programmer to handle the microphone API, or extend the Corona internals, is there an advantage to you in using Corona? This is meant as a point for further discussion, as there are pros and cons either way. I'd like to hear your views.

I've been staying out of this "fray" because it seemed unproductive until your comment just now, Eric. My usecase may not be your typical Corona customer, so YMMV.

I'm a software developer - totally familiar with Flash/ActionScript, and productive in Objective-C/XCode.

I bought a Corona license because I thought it might be a useful tool to knock out smaller client projects (1-3 week projects), but for $99 I know that I'm getting locked into a black box approach, beholden to Ansca's deliverable schedules for features and not mine.

A couple of days after I bought Corona, 3.3.1 arrives and I started looking into alternatives, because there is no way I can justify to a client that I built a Corona app - only to have Apple reject it from the App Store because it breaks the agreement.

I don't see how you can argue that a Corona authored app doesn't apply to "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited". Surely that is the point of authoring in Lua to your OpenGL runtime?

Currently I'm looking into starting a project using the Sparrow Framework which has a similar basis in OpenGL capabilities to Corona, minus some of the Flash-like qualities of your authoring tool. http://www.sparrow-framework.org/ Sparrow is free and open source.

I've contemplated using cocos2d-iphone as well, and keeping an eye on the Pixelwave framework (http://spiralstormgames.com/blog/iphone-games/say-hi-to-pixelwave-for-the-iphone/) when it comes out of beta.

The beauty of using Sparrow is that I can go ahead and implement features that I need in my projects, and not wait for Ansca. I've asked about features like analytics, device profiling, Core Location, in-app purchasing, SQLite and these have been bounced around in emails and various forum posts since mid-last year. Core Locations's made it in, but not much else so far. Meantime, I've just made apps regardless in Objective-C.

If I compare Sparrow/Cocos2D versus Corona, I would happily pay $500-$800 yearly licence for an Objective-C library with source, that I could hook my own Objective-C code into, if I knew that the company behind it supported it with regular engineering updates and fixes, and I could go in and fix/tweak whatever I need. That's certainly at least worth that much money. It's probably worth quite a lot more, but I don't see how the price point would compete versus various other solutions. There is a certain advantage to buying code with a support license versus going with an open-source project if you're an indie shop.

Another thing Ansca might look into is producing some quality tools that fit into the toolchain. OpenGL apps are based on custom graphics, and typically made in Illustrator, Photoshop and Flash, then ported over. I'd pay good money for a tool that took multiple Flash timeline animations and converted them with all frame scripts and tweens etc to a format compatible with your runtime, and generated a texturemap. The PocketGod guys made their own toolchain, but everyone basically has their own custom solution. Why not create a tool you can sell, given your team's intimate knowledge of Illustrator and Flash? If you haven't checked out the Pixelwave addons, read more about them on their site, like:

--------------------------
So we know all those features are awesome for general use, but seeing as we are all about creating games we thought we’d also share our useful utility classes specialized for games. Since these aren’t a part of the core engine we grouped them into the PixelKit, a collection of classes for game makers to use with Pixelwave. It’ll all be in the same package, pre-integrated for everyone to enjoy.

Main PixelKit features:
Resource Manager – An efficient, object-oriented resource manager that can handle any file type + sync/async loading
Animation Importer – Turn your Flash MovieClips into PixelKit AnimationClips with the PixelKit animation importer and the Flash animation exporter (more on that below)
Tweening engine – A must for any real app, integrated with PIxelwave
A Particle System – An optimized particle system for use with Pixelwave
Physics engine bindings – We like Box2D

Flash animations on the iPhone
The Flash exporting conversion tool is another, completely separate app we’ve been working on for a while. It lets you turn your Flash animations into PixelKit AnimationClips, and control them with commands like gotoAndPlay, gotoAndStop, etc. We’re going to keep this one on the down-low for now, expect more info on this in the future.
--------------------------

Realistically, I don't expect Apple to come out and say, Flash is out, but all the other cross-compiler toolkits are fine ... I don't expect them to say anything, but I certainly can't recommend Corona as a solution to clients because of the uncertainty.

I think a closed system works. As has been stated before, the benefit of Corona is the sheer simplicity and short turnaround from idea to product. Whether Corona merely meets the needs for prototyping or provides a one stop shop for full app development, that's down to the developer. If Corona becomes over saturated with features, then it could greatly increase the complexity, so would we really be better off using Objective-C? On the other hand, it might be useful to be able to provide encapsulated native modules to Corona that could be shared among the community. This would increase Corona's longevity and allow those that really would like that "killer feature" to be implemented when it would otherwise become a show stopper.

That's my 5 cents...

In so many ways what you are doing with Corona is what Adobe should have done in the first place. Start fresh, toss out a bloated and buggy runtime, but preserve the syntax and style of a simple scripting language. I agree that you don't need to support every Apple API. For my projects your feature set is nearly "robust" enough and I expect your upcoming API for Box2D will be far better than anyone else's so far.

I think Corona today is both viable and valuable to any ObjC developer. Going forward I'd like to think Corona as a sort of "plug-in" for XCode. My background is Flash design and ActionScript AS3 development. I love Corona the same way I love TweenLite/Max. (A tweening "framework/class library" and in AS3 I use it for nearly all my animation.) I still have a lot of AS3 to code by hand, but the use of this intermediate library really eases my efforts.

@hyperphonic: Thanks for your comments.

You said, "Surely that is the point of authoring in Lua to your OpenGL runtime?"

It's a matter of perspective. Suppose you write a calculator app, in Objective-C, which is obviously fine. Now you decide to add a little bit of flexibility. So you write a little FORTH stack machine to do arbitrary mathematical calculations. Using this, you can add, really easily, some fairly complex equations, very fast. Is this ok, according to the rules? I would argue it is. Now suppose you take out FORTH and put in Lua. The extension functionality is much higher, but it's still extending the core. Still ok. (Assuming, of course, that instead of an interpreter, you use a compiler, and meet the rest of Apple's regulations).

Now suppose that somebody else wrote the core app, and you are adding the extensions. This has exactly the same result. And this is what Corona does. Lua is perfectly suited as an extension language, and in fact was designed for this purpose. Now, you can quibble with this, but put to the test, would not a fair and impartial jury of our peers find a reasonable doubt that this is a valid interpretation?

However, all of this is academic. Apple may change its agreement at any time, and has done so in the past. It is critical for us to discern their intent, which is historically quite difficult. But there is recent evidence: They have, several times, kicked out tens of thousands of apps, for various reasons. What is the commonality there, and what have they said publicly?

I could write an essay on this, and I probably will. But the capsule summary is (and please realize, this is my personal opinion): Apple has 185,000+ apps in the store, and most of them are terrible. The many thousands of bad apps cost Apple money (to review every time they update, and make it harder for users to find the good apps). And even more importantly, they tarnish the Apple brand. So they are most likely going to continue to get rid of them. This is what SJ meant when he talked about "sub-standard" apps. Furthermore, Apple means to exclude apps written for the desktop and ported to mobile.

It is not the least bit impossible to write a "sub-standard" app in Objective-C, in fact, it's rather easy. And the same can be said of Corona, or any of the other tool sets you mention. What is clear that this is a call to all iPhone/iPad developers to make better apps. What that means exactly, is very subjective.

One of the things our customers like is the ability to rapidly prototype ideas -- a feature that can never be taken away. We want to make it even easier to create apps, and remain the first dev tool you'll reach for when starting a project. If we do our job, then you'll finish and publish your apps with us as well. We do have our work cut out for us, but we're making progress.

Eric, you're absolutely correct in what you say. But as you point out it's your opinion. What i think a lot of us need is Apples/SJs opinion.

For example one issue SJ has is that middleware could dilute what the iPlatform can offer because the middleware only implements the features that cross all mobile devices. I don't think Ansca can realistically implement everything the platform can offer and certainly not as each new version is released. An example being iAds. They're in the SDK now, people are working with them yet Ansca *may* have support in Q2. Compared to all the other things it's probably a low priority. How do iAds work on Android? Well, they don't. Apples social game features? Apple specific again. And surely apple will continue to do this, it's what they need to separate idevices from everything else. SJs issue is that cross platform middleware probably won't implement the uniqueness.

Now personally i'm happy working with a limited palette, i love what Corona stands for and i think it will do what i need. But isn't this exactly what SJ is talking about?

It means Apple could stop Corona if they desired. Because, unlike the calculator example you give, we are limited by what the run time can offer. In the calculator the forth stack provides a limited set of functionality we can still code in xcode around it.

So i don't think i'm alone in seriously wondering about whether to put the effort into developing with Corona. I'm holding off as long as i can (i did buy it before all this started) but i cannot afford the possibility that one day Apple will pull the rug out. I could just use cocos2d and bite the bullet and do the objective-c route, but i'd rather not!

So. the real question is that in Anscas' dealings with Apple: is it going to be possible to get official clarification?

kindest regards
paul

That's a question you'd have to ask Apple.

It's a question i've submitted but whether i'll get a meaningful answer is another matter. There's very little talk on apple developer forums about Corona that i could find.

This is a question that affects your whole customer base, current and future, and i would have thought that you guys would have much better contacts within Apple than myself. Adobe seem to have given up now and focused on android/et al. It would seem logical that Corona could be pushed into that direction too. It's the iPlatforms i would like to work with, android is just a bonus.

Or am i alone in being concerned? And everyone else is just pressing on regardless?

If we turn this around who has had apps approved of recently? And rejected?

kindest regards
paul

views:2437 update:2011/9/19 21:37:39
corona forums © 2003-2011