Hacker News new | ask | show | jobs
by spankalee 4322 days ago
The advantage here is that you can take a common JS codebase, abstract the platform APIs that you use out, and run it on the web and iOS. The platform layer developers will probably need to understand Cocoa and iOS well, but the other application developers might not need to so much.
1 comments

Assuming the transpilation is complete and bug free. Otherwise the transpiler's ability dictates what your common code base can do. You're not able to use the full power of the language, but instead are using a less expressive subset.

For example, if your web app is using JS prototypes, and those don't work on the iOS platform (I don't know if Cupertino.js supports this or not, just an example) you're going to have (major?) refactoring to do and all of the application developers are forced to conform.

If you instead decide to run the app's JS in the interpreter, now we're simply talking about a hybrid app (like PhoneGap).

Currently some aspects of prototype inheritance are implemented. One day Cupertino.js should support an ECMA standard http://www.ecmascript.org - the Javascript spec that most web browsers implement. Once this is finished it would have "full" support of the language, minus any vendor added functionality.

I think porting apps might require some refactoring around the UI layer or adding functionality that is only exposed by native frameworks. It may be interesting to look into supporting hybrid web frameworks in the future :)

Yes, once Cupertino becomes more ECMA compliant, we will see the release of specific JavaScript frameworks targeting the creation of Cocoa apps. Kudos for Cupertino.js!