That's not true, you can build apps for free.
Codename One has a build server on the cloud, which simplifies the whole build env for the developer.(you can use a Win machine to develop for iPhone).
The uses of this build machine has free account and paid accounts.
similar, only better.
In Codename One you end up with 1 java project to maintain for all supported platforms, in xamarin you end up with 2 project to maintain in c# (1 for each platform: iOS, Android)
Codename One has one Java API to access all device capabilities such as:camera, gps, file system, maps and more... and it has one Java API for lightweight GUI, which allows great portability between supported platforms.
robovm is good but mostly relevant for games with libgdx.