Latest posts from Codename One.
Blog

Android Push Changes
We have made some upgrades to our push notification server API. If you deploy apps to Android and use push notifications, you will need to make a small change to the server-side code that sends the HTTP request to our push server. If you do not send push notifications to Android devices, you can ignore this PSA. The Short Version Our Push API now requires a JSON key instead of the old FCM API key. For example, the following is a template for a push notification, (copied from the push cheatsheet). ...

Codename One Shared Files Library
This library provides a wrapper over the Android shared files API to allow your Codename One apps to read and write shared files (i.e. files accessible to other apps). See this on GitHub. See example app using this API here. See use cases for accessing documents and other files here. Background Accessing documents and other files from shared storage (including external and cloud storage). In the past, we used to be able to access files on external storage directly using FileSystemStorage, but more recent android versions block this, requiring you to use theirShared Document APIs. a.k.a Share Files API and Storage Access Framework. ...

How to Build iOS Apps with Java
Learn how to build and publish iOS apps with Java or Kotlin without a Mac or Xcode in this comprehensive guide. In this guide, we will get to know everything about iOS app development with Java. We will discuss the development process, technology involved, prerequisites and general FAQs for building apps for iPhone/iPad using Java. Here are the major topics we’ve covered in this Java iOS app development guide. ...

Async Debugging with IntelliJ IDEA
We have added support for IntelliJ’s asynchronous code debugging feature, so that you can more easily debug your asynchronous code. When debugging your apps in IntelliJ, stack-traces will include the “async” context’s stack frames so that you can see the stack trace of the code that scheduled your asynchronous code. For example, methods like callSerially() are notoriously prickly to debug because the “logical” stack trace includes the stack frame in which callSerially(Runnable) is called, and also the frame in which the Runnable‘s run() method is called. It is very difficult to walk up this “logical” stack from a break-point inside the run() method. ...

New Property Sheet and JavaDocs
We have added a new property sheet and a JavaDocs button to the toolbar of the Properties panel. To continue the theme of improving the development experience in the simulator, you will find a few new features landing on Friday. Firstly, we have added a new property sheet that shows you the value of all of the properties of the selected component in the component tree. This is useful for checking whether a container is scrollable, or what text property of a button is set to, or pretty much anything else you’d like to know about a component’s state. ...

Creating New Projects with Old Templates
Learn how to convert the old Codename One “ANT” project structure demos to Maven projects using the Maven Migration Tool. Since migrating to Maven, the recommended way to create a new Codename One project is using the Codename One initializr tool. It will generate a fresh, new Maven project for you based on a template of your choosing. In order to not overwhelm you, we have thus far kept the template selections in this tool to a minimum. At the time of this writing you can choose one of: ...

New Feature: Inspect Component
We’ve added support for “Inspect Component”, which is similar to the “Inspect Element” feature available in Chrome. Continuing in the direction of improving the development experience inside the Codename One simulator, we have made another batch of small improvements this week. Notably, we’ve added support for “Inspect Component”, which is similar to the “Inspect Element” feature available in Chrome. Now, if you right-click on a component in the simulator, it will provide you with a context menu. ...

Codename One Simulator Facelift
With the latest Maven update (7.0.61), you will notice a few changes to the Codename One simulator that should improve your development experience. We have consolidated the user interface inside a single window so that the component inspector, network monitor, and other tools feel more integrated. The window has four regions (Left, Center, Right, and Bottom), and you are free to place any of the UI panels into any of these regions. The default configuration places the simulator in the center, the component tree on the left, and the component details and network monitor in the bottom, but you can change this using the "Move To" menu, and it will remember your preferences the next time you run the simulator. ...

Better VSCode Support for Maven Projects
Our next update to the Codename One application archetype (7.0.59) includes some VSCode-specific config files to help improve integration for Maven Projects. Switching to Maven has been a good thing over all. Maven’s dependency management allows projects to work more consistently out of the box. No more missing dependencies, for the most part. Just clone the repo, build the project and go. Maven’s dependency management and standard project structure results in one standard project structure that should work in any IDE that supports Maven. Unfortunately, each IDE still requires a little bit of fine-tuning to wire up our Maven goals to the IDEs’ menus. ...

Build-Hints Editor
In the latest plugin update, we’ve added a Build-Hints Editor that accessible from a menu item inside the Codename One simulator. This is intended to make it easier to edit your app’s build hints, and also inform you of build hints that you may need to configure. Unlike the existing mechanisms for editing build hints (in Codename One Settings, or directly editing the codenameone_settings.properties file), this editor can integrate the requirements of installed cn1libs to help guide you through their configuration. ...

New iOS Certificate Wizard
We recently released a makeover to the iOS certificate wizard that makes it much easier to generate your certificates and provisioning profiles for your iOS deployments. The key improvements in this new certificate wizard are: • Fewer Steps: A single form with checkboxes to select which items you want to generate, and then a login prompt. That’s it. • Much Faster: Generate all your certs in 60 seconds. Give or take a few. ...

We’re Raising Prices! Here’s how you can keep the old Price
We’re adjusting pricing for paid plans for new users signing up after December 31st, 2021. Learn how you can keep the old price. Since we launched Codename One in 2012, we only raised our prices once and only on the Basic account which was priced ridiculously low at $9. To this day, we have dozens of Basic plan subscribers on that $9 per month plan. They are some of my favorite subscribers. Their loyalty to the platform is admirable and we want to repay that loyalty. ...