Do they link iOS frameworks C libraries and just provide wrappers in a C# or Java lib (which are then compiled to bytecode then native) ?
Develop iOS Apps in Java with RoboVM
11–19 of 19 posts
Re: Develop iOS Apps in Java with RoboVM
#12Earlier quoted context omitted.
This is exciting. But wouldn't this result in very large final binary sizes?
Should be able to use ProGuard, a code obfusticator+trimmer for Java. http://proguard.sourceforge.net/ Although, from my experience doing Android with Scala, the process is slow.
Re: Develop iOS Apps in Java with RoboVM
#13Let's not forget that RoboVM is still alpha, and on Sept 09th version 0.0.4 was released: http://blog.robovm.org/2013/09/robovm-004-released.html Here's an interesting blog post on RoboVM: "JavaFX On IOS Using RoboVM And Maven" http://www.zenjava.com/2013/08/01/javafx-on-ios-using-robovm...
Current limitations: no debugging, Boehm GC (though anything except stack references are collected precisely) and the ObjC -> Java bindings are a bit in flux.
I personally would like to see the ObjC bindings ala Xamarin get done. JavaFX is a trainwreck in my opinion. I think that would also be a really good business opportunity for Niklas/Trillian, i can see tons of enterprises wanting to code their iOS apps via a JVM language. RoboVM already has Maven/STB plugins available, so development is very smooth. And compile times beat Xamarin easily.
What gets me really excited is that RoboVM supports Scala out of the box. Writing iOS/Android/desktop games and apps in Scala would be amazing.
[1] http://www.youtube.com/watch?v=h0Ro41uamD0 [2] https://twitter.com/RainerBasso/status/378621566206369792
Re: Develop iOS Apps in Java with RoboVM
#14It compiles the Java but what about the big VM needed? Found my answer: Note! When you compile a program using RoboVM it will translate not only the main class into native code but also the transitive dependencies of that main class. So the first time you compile a program for a particular CPU and OS RoboVM also compiles many of the standard runtime classes such as java.lang.Object, java.lang.String, etc. A simple cl…
Why is this so special? This is basic compiler design 101. The Java VM is just a possible implementation for the Java language. The fact that many mix "Java the language", with "Java the Virtual Machine", is a consequence of the lack of knowledge in compiler design that seems so common nowadays.
Re: Develop iOS Apps in Java with RoboVM
#15Re: Develop iOS Apps in Java with RoboVM
#16There's also a source-to-source translator that google uses, j2objc https://code.google.com/p/j2objc/
It has several frontends, including JVM bytecode, and several backends, including Objective-C (and vanilla C, these days).
Re: Develop iOS Apps in Java with RoboVM
#17There are also dozens of tools for developing native apps in many platforms with HTML5/JavaScript, most notably Titanium : http://www.appcelerator.com/platform/titanium-platform/.
Re: Develop iOS Apps in Java with RoboVM
#18Earlier quoted context omitted.
Should be able to use ProGuard, a code obfusticator+trimmer for Java. http://proguard.sourceforge.net/ Although, from my experience doing Android with Scala, the process is slow.
"Read a few links on HN" slow, or "time to make some coffee" slow?
Re: Develop iOS Apps in Java with RoboVM
#19It compiles the Java but what about the big VM needed? Found my answer: Note! When you compile a program using RoboVM it will translate not only the main class into native code but also the transitive dependencies of that main class. So the first time you compile a program for a particular CPU and OS RoboVM also compiles many of the standard runtime classes such as java.lang.Object, java.lang.String, etc. A simple cl…
This is exciting. But wouldn't this result in very large final binary sizes?