4 ms·
Just wanting to share a similar use case for such a project: Used to work at a company where they were developing mobile games for 50+ different mobile phones,
by inDigiNeous 12y ago
Just wanting to share a similar use case for such a project:
Used to work at a company where they were developing mobile games for 50+ different mobile phones, back when there was still more diversity in the market, just when iPhone was still rising to take over the markets.
The method they used at that time for developing their games was to write the project once with Java, then convert with an inhouse build tool to Objective-C++ when targetting iPhone. They even had builtin carbage collection and everything in the converter runtime, it seemed crazy that they would go to such trouble.
But they were releasing about 50+ games a year, a pretty big company, so I guess it paid back in writing the project once and porting to multiple platforms.
Took maybe 25 minutes to compile the whole thing, first from Java to Objective-C++ and then compiling that whole mess of a project in Xcode. It kinda worked, but the performance it produced on the iPhone was far from optimal. Debugging was also horrible.
- cromwellian 12y agoSounds like the XMLVM hack which basically transplate Java bytecode into a stack machine emulator in C++ by using bytecode->XML and then XSLT stylesheets -> C++. As expected, this is slow. This is not what j2objc does, and j2objc doesn't try to emulate garbage collection either, instead it generates ARC compatible code, and you use @Weak annotations in Java to fix cycles.
- anon4 12y agoYou seriously expect me to break cycles myself? Edit: Furthermore, you expect me to carefully read the source of every single third-party library I use and patch it to break any potential cycles? This is madness!
- cromwellian 12y agoInbox is a huge app and very very few cycles need to be broken. J2ObjC provides an automated tool for finding them (https://code.google.com/p/j2objc/wiki/CycleFinderTool https://code.google.com/p/j2objc/wiki/CycleFinderTool) It's really no different than programming in ObjC itself where you can run into cycles.