FAQ
General Product Questions
Technical questions that come up frequently before adopting the product.
What Is Codename One?
Codename One is a free open source solution that allows you to rapidly build native applications to all mobile devices using Java & optionally a GUI builder. The framework provides full access to the underlying native platform while still providing remarkable portability.
Codename One consists of a Client Library, IDE plugin, Designer tool (GUI builder, theme designer, localization editor etc.), Simulator environment, Build servers & cloud provisioning services.
Codename One consists of a Client Library, IDE plugin, Designer tool (GUI builder, theme designer, localization editor etc.), Simulator environment, Build servers & cloud provisioning services.
Do I Need A Mac To Build Or Test An iOS (iPhone) Application?
No. However, you might need a Mac to get a p12 certificate from Apple and you will need a Mac to upload the resulting application to the app store.
You can try using a service such as Mac In Cloud to perform the small tasks for which you might require a Mac. We have paid services in which our engineers help with such tasks to ease that pain as well.
You can try using a service such as Mac In Cloud to perform the small tasks for which you might require a Mac. We have paid services in which our engineers help with such tasks to ease that pain as well.
How performant is Codename One? How does its performance compare to Native/HTML5?
Codename One is fast. Simple benchmarks show it beating Objective-C and approaching C performance on iOS on other platforms Codename One uses the native VM where possible to achieve similar results. Graphics rendering is implemented with the gaming API's hence providing game like performance.
How much memory does Codename One take?
Codename One can be very efficient and is able to run on devices with as little as 2mb of RAM.
Will Apple Allow This? Doesn't their EULA (End User License Agreement) Prohibit Things Like This?
That's old news. Apple revisited their EULA and now allows tools such as Flash, Lua and other
languages/meta-platforms on the device as long as the applications comply with the iOS store guidelines. This means
you as developers would need to work hard to create high quality applications and test them on the devices to see they
behave properly but you do not need to code them manually in Objective-C.
If Adobe can submit Flash applications to the iTunes store so can we.
If Adobe can submit Flash applications to the iTunes store so can we.
Do I have To Use the Cloud Services?
No.
They are entirely optional, however they make the process of building to multiple devices much easier. Please note that we do not provide community support for offline building due to the complexity of the process and the support overhead, however plenty of resources exist on the internet for doing that. Enterprise developers are entitled for customer support when running into issues trying to build offline. For more details on community members who were able to build offline check out the work from Eric & Steve.
They are entirely optional, however they make the process of building to multiple devices much easier. Please note that we do not provide community support for offline building due to the complexity of the process and the support overhead, however plenty of resources exist on the internet for doing that. Enterprise developers are entitled for customer support when running into issues trying to build offline. For more details on community members who were able to build offline check out the work from Eric & Steve.
Is Codename One Free For Commercial Use?
Yes! No royalties, ads or any such limitation exists!
The project is entirely open source so placing unfair stipulations is something we will never do.
Notice that there are pro only features that are entirely optional that do cost money, but the basic core is free to use and will remain that way.
The project is entirely open source so placing unfair stipulations is something we will never do.
Notice that there are pro only features that are entirely optional that do cost money, but the basic core is free to use and will remain that way.
Is My Source Code Sent To The Cloud?
No.
We only send compiled bytecode to the cloud and process that bytecode. We don't touch your source code.
There is a special case with native code which must be sent in source code form since it can't be compiled on the client e.g. Objective-C code can only be compiled on a Mac with XCode.
All communications with our servers are done securly over SSL.
We only send compiled bytecode to the cloud and process that bytecode. We don't touch your source code.
There is a special case with native code which must be sent in source code form since it can't be compiled on the client e.g. Objective-C code can only be compiled on a Mac with XCode.
All communications with our servers are done securly over SSL.
Are The Cloud Services Free?
We limit heavy resource usage to avoid abuse but we intend to always offer a basic cloud
service for free.
We provide a premium paid cloud and commercial hosting options but we see great value in keeping the cloud free for hobbyist and small development shops.
We also provide prominent community members with an option to apply for a free pro/basic account through our community outreach program. We also intend to always offer a very affordable unlimited plan for users can't afford all the extra features.
We provide a premium paid cloud and commercial hosting options but we see great value in keeping the cloud free for hobbyist and small development shops.
We also provide prominent community members with an option to apply for a free pro/basic account through our community outreach program. We also intend to always offer a very affordable unlimited plan for users can't afford all the extra features.
Can I Use The Full Java SE API & Language Features? Am I limited to CLDC?
You are NOT limited to CLDC! You can use a subset of Java 5 and some API's
(e.g. collections, threads etc.).
We don't support the entire API due to limitations of some of the target platforms and to keep the iOS port small. You can see the full set of supported features in our javadocs.
We don't support the entire API due to limitations of some of the target platforms and to keep the iOS port small. You can see the full set of supported features in our javadocs.
What features of Java are supported? What features of Java aren't supported?
The most obvious thing missing is reflections. The main problem is that when we package the
VM into devices that don't have Java we would have to include EVERYTHING if reflections are included, they
wouldn't work anyway since we obfuscate the code for the platforms where reflections do work (Android).
On top of that they are generally slow and a bad idea on a mobile device to begin with…
Many of the desktop API's such as java.net, java.io.File etc. aren't very appropriate for mobile devices and just didn't make it. We provide our own alternatives which are more portable and better suited for mobile settings. We don't support any language features beyond Java 5 e.g. no string based switch case etc.
Of the other missing things if you run into a missing method or ability there are cases where that functionality can be added.
Many of the desktop API's such as java.net, java.io.File etc. aren't very appropriate for mobile devices and just didn't make it. We provide our own alternatives which are more portable and better suited for mobile settings. We don't support any language features beyond Java 5 e.g. no string based switch case etc.
Of the other missing things if you run into a missing method or ability there are cases where that functionality can be added.
Can I use 3rd Party Libraries With Codename One?
We are working on this for version 1.1 which means this will probably be available soon.
However, you should consider that libraries in Codename One will NEVER allow you to just embed a jar into your
application. A standard Java jar might reference numerous Java API's some of which might not be supported by
Codename One. Furthermore, to be truly valuable some libraries would need access to the underlying native API.
Codename One aims to resolve both issues with its library capability.
Can I Use Other JVM Languages Such as Scala, JRuby, Jython etc.?
Not as is since we don't support the full Java language specification and probably won't
support things such as reflection etc. to keep the size small and efficient. We intend to suppot all of the
above in the futureas the product matures by porting their environments and adapting it to mobile.
Can I Add External Library JAR's To The Classpath?
Not at the moment, we intend to offer a library API in the future. The main complexities
are in enabling native interfaces for such external libraries and verifying that API's used by said libraries
are support by our build code.
Are all iOS devices supported?
All iPads are supported, iPhones starting with 3GS and OS 4.3 or newer are required due
to limitations from Apple (Apple dropped support for Arm6 on newer versions of xcode & requires new
versions to support the iPhone 5).
Is the BlackBerry Playbook Supported?
Not officially but Android applications produced by Codename One seem to work well
on the Playbook. You need to convert them to Playbook applications using
this tool
from RIM.
Company & team
Questions about history of the company, its business & partnerships
Who is behind Codename One?
Check out our team section. Codename One was started by ex-Sun guys
with over 15 years of mobile experience and 60 years of combined software industry experience.
Are you hiring?
Not at the moment. We will announce hiring plans in the future.
What happens if you go bankrupt or get purchased?
Since we are an open source company you would still be able to build your code
see our answer to "Do I have To Use the Cloud Services?". Enterprise developers get additional help
both in building offline and in the SLA which provides an option for a source code escrow contract.
The escrow contract provides access to the full Codename One server source code in case of insolvency
or inability to provide its service. The SLA defines the service guarantees made by Codename One
to enterprise licensees.
Licensing & Legal Questions
Questions about the usage and issues with Codename One.
What is the license of the Codename One Source Code? Can I use the source code commercially?
The Codename One source code is licensed under the GPL with Classpath Exception, the
classpath exception clause allows you to package binaries generated by the code into your application.
You don't need to open source your own code as a result, the only major requirement is that you contribute
your changes to Codename One back or "make them available".
This allows you to build propriatery applications with Codename One, if you change the Codename One source code you need to contribute your changes back.
This allows you to build propriatery applications with Codename One, if you change the Codename One source code you need to contribute your changes back.
Can I contribute code to Codename One?
We are always happy to receive code contributions. The best way is to just open an
issue in the issue tracker with your suggested changes. If you have a great deal of code you can make a
contribution via the incubator project.
You need to ask us on the forum to get access to the
incubator project, notice that it is
not open to everyone and only active community members will receive access.
Technical Questions
Questions about the usage and issues with Codename One.
I have a problem with Codename One what should I do?
Check the issue tracker
& ask us in the discussion forum.
My background color isn't set correctly in the style.
Make sure you applied it to the correct style (notice there are selected/unselectd,
pressed and disabled). Make sure you set transparency to 255 (it applies only to colors). Check that you
don't have a border overriding the component display, defined the border as Empty.
You can also define the background type as null or NONE in the designer in order to guarantee the color will be displayed.
You can also define the background type as null or NONE in the designer in order to guarantee the color will be displayed.
What is the EDT? (Event Dispatch Thread)
The Codename One UI is single threaded and dispatches all events via a single thread.
Blocking this thread in a long running operation or accessing Codename One's UI in another thread are both
highly problematic! We have a tool help
in the Codename One simulator. To learn more about the EDT please read the Codename One
developer guide.
I'm sending a build to the server and getting an exception when doing this, is the build server down?
If you get an error when sending a build then you failed to connect to our App Engine
server which is hosted on Google's hardware, Google has very good uptime so this is probably not the problem.
Make sure you can connect to the server itself through our website, make sure you still have build credits
left if you have a free account. If you are behind a firewall/proxy make sure that the Java VM (through the
Java preferences panel) has the same configuration as your browser. Make sure this is set for all the VM's
installed on your machine.
Learn More
Our discussion forum is a great place to ask questions
Join the discussion »
Our documentation is pretty thorough, especially our JavaDoc
check out the docs »
Our blog contains a great deal of information
the Codename One blog »
Contact us if you can't get your answer elsewhere