Codename One is a way of creating native mobile applications for Android, iOS, BlackBerry and Windows Phone, using the same Java source code. Android native apps use Java, but iOS, BlackBerry and Windows Phone do not. The truth is, Codename One makes translations of your Java code into the native code for each of these platforms, sometimes resulting in faster apps than the native versions.
Creating apps with CSS and JavaScript can be difficult to debug, many of these issues wouldn’t happen developing with Codename On
Sure, transcompiling the java to objective-c then compiling it into an app using a cloud service, then reloading the entire thing in a simulator sounds so much easier.