Appcelerator Developer Blog

Apple 4.0 and Titanium

By now, most of you have probably seen or heard about Apple iPhone SDK 4.0 and a little hidden gem in their freshly minted 4.0 Terms of Services, notably 3.3.1:

“Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.”

It’s clear that products like Titanium, Unity3D, Ansca, MonoTouch and others are now a bit in question for iPhone 4.0+ with this language. We’re all trying to get our heads around what this means and trying to reach out to Apple to get clarification.

Hang tight, we’ll try and give you more information as we can figure it out from Apple. We don’t want to make any false promises or claims – and most importantly, we want to make sure we’re abiding by Apple’s rules.

[NOTE: I have posted an update here]

71 Responses to “Apple 4.0 and Titanium”

  1. Stephen says:

    On this surface, this seems like a HUGE blow…… but hopefully it’s a wrong initial feeling

  2. Justin says:

    Thanks, will be watching for updates!

  3. Not good. Why would Apple care? Unless they want to force more Objective-C uptake.

  4. Adam Tootle says:

    Keeping my fingers crossed. I’d hate to loose Titanium!

  5. Mark says:

    yes, will be watching with great interest, I’ve been REALLY impressed with Titanium….

  6. ty says:

    WOW…! that’s cold!

  7. Rodolfo Dengo says:

    Thanks a lot Jeff, we will be in the lookout for info.

  8. Tshirtbooth says:

    Hmm, what about Gamesalad?

  9. kosso says:

    Please, please, say it ain’t so!

    Praying that we (honest developers of great apps who have PAID Apple our dev money – AND who plan to make money FOR Apple with some paid apps and iAds) don’t get shafted by them.

    Thanks to frameworks and tools like Titanium, where are now a LOT more able developers for their devices out there!

    If this is indeed a bullet to the heart of Appcelerator, I think we need to find a way to kick up ONE HELL of a fuss about this!

    This move is clearly aimed at Adobe and the forthcoming CS5 ability to export to iPhone apps.

  10. Anybody know how many apps are in the AppStore currently that were built with Titanium, MonoTouch, PhoneGap, etc…?

  11. Mike Riley says:

    Are app bundles produced by titanium distinguishable from those produced natively through the iPhone SDK?

    I’m also wondering if they are specifically targeting adobe when doing this, or if it is a blanket attempt to tie iPhone OS development to their platforms.

  12. Andrew Waters says:

    It’d be a hard pill to swallow if the follow through of slapping Adobe hits you guys in the face. Will be waiting eagerly for updates…

  13. Andrew says:

    Can’t Appcelerator sue apple for uncompetitive practices if this comes down the wrong way?

  14. kosso says:

    If Apple did indeed kick us all in the balls, then I think Adobe should add a retroactive clause to their software agreements banning Apple employees or agents from using any of their products.

    I’d like to see how fancy they make their design without Adobe products!!

  15. Brian de Alwis says:

    This seems like anti-competitive behaviour. This action should be referred to the FTC Bureau of Competition.

  16. James THomas says:

    No, that’s the old statement. The new one does everything but say the names of the apps it’s banning.

    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).

  17. David Geller says:

    Can’t Steve Jobs and Adobe’s CEO just kiss and make up? This is really hurting innovation. Sure, Adobe stuck it to Apple a few years ago by making Photoshop run better, faster under Windows. But, Apple should let it go, by now.

    I’d hate to loose Titanium as well. I’ve been extremely impressed with the platform, toolset and level of support this small company has provided. I started looking through the source code tree on GitHub and am even more impressed. There’s a robust amount of very good technology here and it would be horrible if it all went toward just making Mobile Windows and Android apps.

    For the Titanium team – good news – or bad – please keep your fans posted.

    Also, if you can share more information about your technology, that’d be helpful. From what I could tell it looked like you were parsing our Javascript and creating native Objective-C all over. Is there still a translation engine running ECMA Javascript inside every app we build? Enlighten us, please.

  18. Istvan says:

    Would Titanium go away if Apple gave you the finger? There will very soon be much more Android devices than ‘i’ things globally.

  19. Steve Perlow says:

    While the whole thing is terrible, this part is extremely weird to me: “or JavaScript as executed by the iPhone OS WebKit engine”

    Do they want us to be writing super simple apps that are merely web views disguised as apps?

    I thought they discouraged such simple apps, and appcelerator was a tool for building more complex apps. I just don’t get that at all.

  20. j-g-faustus says:

    That sucks.

    I suppose there are workarounds for “linking through an intermediate layer” (replace the translation layer with macros that insert the appropriate Apple calls directly), but I can’t see any legal way around “applications must be originally written in Objective-C”.

    I’m pretty sure it is possible to write translators that would be almost impossible for Apple to detect, but as nearly as I can tell from the terms this would force them “underground”, akin to jailbreaking.

    Still crossing fingers, but it doesn’t look good.

  21. kosso says:

    The fact that building an iPhone app using Titanium does actually create an .xcodeproj file which then gets compiled with xcode itself (via command line) might be it’s saving grace.

    The libTicore.a and libTitanium.a files should be fine under this new agreement – I think.

    ie: I can open the .xcodeproj file in XCode and attempt to build it from there. But it doesn’t seem to work right now… hopefully, if the announcement does indeed mean we’re screwed, then this *could* be the way around it.

  22. Tom says:

    Fingers crossed for you and for us Appcelerator, please keep us informed!

  23. I’ve installed the 4.0 is and the titanium beta app I had been working on that was working fine on 3.2 is no longer working. This could be just because of the way titanium builds apps or perhaps apple have a way of checking and have blocksd non objective-c apps?

    Really hoping that appcelerator find a way to continue!!!!

  24. Jim Carter says:

    got my fingers crossed for appcelerator as well. really hoping this is just for the fact they’re trying to ensure that compiled code for the beta is in native c and not a change forever.

  25. Baylor Rae' says:

    Well, if Apple does ban Titanium, at least Mobile TutsPlus is coming soon, so we should get a few good Objective-C tutorials and building apps for the iPhone.

  26. Darren says:

    How is this different to using a game engine? Apple wants to be a gaming platform now and these changes will hit 90% of game engines.

    Apple are in danger of alienating their developers with these games. They need to understand that oneupmanship on adobe affects developers time and money.

  27. [...] Non è ancora chiaro quali strumenti verranno bloccati, ma alcuni developer, tra cui i ragazzi di Appcelerator, si domandano cosa accadrà a Titanium, Ansca e addirittura Unity3D. Feature, [...]

  28. [...] Non è ancora chiaro quali strumenti verranno bloccati, ma alcuni developer, tra cui i ragazzi di Appcelerator, si domandano cosa accadrà a Titanium, Ansca e addirittura Unity3D. Feature, [...]

  29. @kosso: If it comes down to it, Titanium could just produce Obj. C code transformed from the HTML/JS code. That code can then be compiled via XCode without any concerns.

  30. benz001 says:

    Why would apple want to cut off Adobe’s cross-compiler, its no longer about Flash – I suspect this is more about trying to keep the lead in the Appstore arms race.

    Being able to compile your app for Android and multiple other platforms from a single code base clearly makes competing Appstores more competitive.

    I hope I’m wrong but I suspect every app being available everywhere is a far more significant long term threat to Apple than Flash.

  31. Brion Vibber says:

    I called up Apple to ask for details about how this affects Appcelerator & Unity3d as particular examples that I’d been planning to use for games and utilities, and whether I can get a refund for my program fees if I were to not accept the updated agreement.

    The rep was very pleasant and polite and took my information to escalate the question; the CSRs of course don’t have immediate answers for this. I was told someone should get back to me within 24 hours.

    If y’all also call, please above all *be polite* — customer service reps are real people too, and they didn’t write the agreement! Be polite, accept being on hold gracefully, let them know how this would affect your future development plans, and be specific about what questions you’re asking and what answers you need.

    http://developer.apple.com/contact/phone.html

  32. gkn says:

    You know, as an experienced web, Windows, and mobile developer, I am constantly disappointed how Apple chooses to run their business. I am beginning to very much regret the time and money I’ve invested in becoming an Apple iPhone developer.

    I think it’s getting time to go back to my blackberry, or better yet get me a new android device. Apple products make my life tougher lately, and I’m just not that into them after hearing this.

  33. Andrey says:

    It’s embarrassing how the developers have to adopt such a servile tone even as Apple (maybe) royally screws them. Enjoy being serfs, everyone! This is the future Apple has in mind for you.

  34. kosso says:

    I’m hoping this is only targeting the ‘roll your own’ via-the-web type app creation ’services’ – which roll apps all under a single iPhone Developer registration – ie: not for an individual.

    Since we have all paid Apple for our dev membership, I don’t see why they should do this to us.

    @rupak : if it has to happen that way, then I’m sure it can be done!! I hope! :)

  35. jsmith45 says:

    A strict reading of the clause should put titaniium in the clear.

    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).

    A Titanium app consists of Objective-C code that links direly against the APIs, and Javascript code that presumably is being executed by the iPhone OS Webkit engine. That satisfies the text of the non-parenthetical portion of the clause.

  36. John says:

    Personally, I don’t know anyone who has got Titanium working. The installation process is terrible, and beyond poorly documented.

  37. dauwk says:

    @John Let me introduce myself so that you do know someone who has Titanium working! The installation was faultless and has been through the 3 updates I have tried.

  38. Riclf says:

    I originally come from the PC world. If Microsoft was pulling this kind of sh.t there would be crys so loud the courts in the U.S. and of the EU would be demanding why Microsoft should not be forced to stop their meddling in fair trade.

    So why do Apple developers just roll over when the same thing happens to them ? This is a clear case where Apple is inhibiting fair trade to produce products that run on their platform. They can shut out porn, dump do-nothing apps, but why is it permitted to force developers to not use tools that permit them to produce a product for the marketplace ?

    Wake up people. Apple isn’t God, they are a MS like corporation trying to hogtie us the developers, for one reason, because they hate Adobe and want to kill CS5’s ability to deliver Flash to the iPhone/iPad. And you and I will suffer in the markeplace.

    Its time to react. Class action is becoming an appropriate approach in dealing with this.

  39. Wow, I guess this means that to survive this Titanium has to make ObjC code for every function/type of javascript. This can be done, but the generated code could be identified as being generated…
    But then, how can they proof it’s generated by a tool, questions…

  40. We got Titanium working. Not with 4.0, of course. :)

  41. mattd says:

    titanium has been excellent so far. it’d be a real shame to see it’s iphone/ipad components lost to anti-competitive practice.

  42. Scott Robinson says:

    @John – Hundreds have people have got it working! I myself have made and released two applications! I had no mobile experience when i started! Try asking around on the forums for help?

    @Brion Vibbor – Thanks for sharing that! :) Ill certainly call them up tomorrow and see if they can enlighten me aswell!

  43. kosso says:

    How long do you think it will be until Apple bans the use of Admob ads in iPhone/iPad apps and force the use of the iAd platform?

    Since the the announcement about third-party dev toolsets and frameworks, I think this could actually happen – since they (Apple) make no money from those ads.

  44. [...] Flash, the new rule may also be used to block cross-platform app maker software such as Appcelerator’s Titanium or Unity 3D. As always with Apple’s app review process, we won’t know what’s [...]

  45. Abdullah says:

    @John – Nice trolling.

  46. Simon says:

    This raises huge anti-competitive concerns. Under this rule, it would be impossible to develop a framework allowing apps to be run on the iPhone and the Nexus One. I really, really hope the FTC looks into this.

  47. [...] for the iPhone and other devices, such as Appcelerator’s Titanium, may be affected too, and Appcelerator says it’s still trying to figure out what this means. I asked Adobe to comment, and the company [...]

  48. Skyler Richter says:

    As Brion Vibber mentioned he called apple support and they were very polite. So I decided to give them a call too. Although i was not able to get the call escalated to some with the appropriate knowledge they were very polite and documented the call so some with with the proper knowledge would get back to me ASAP.

    They said they are willing to give me a refund on my developer licence, but Ill keep that option on hold until I get a definitive answer.

    It might be worth calling and getting your two cents in with Apple that this isn’t fair and we will all be asking for a refund on our developer licence if they are not going to allow us to deploy titanium apps.

    http://developer.apple.com/contact/phone.html

  49. Eskil says:

    Bummer that Objective-C++ is now outlawed.

  50. Jesse says:

    Um, isn’t there an NDA on the developer program license agreement?