Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Overview

Codename One - Cross Platform Native Apps with Java or Kotlin

Codename One is a mobile first cross platform environment for Java and Kotlin developers. It can compile Java bytecode to native OS executables (iOS, Android, UWP etc.). It's a complete mobile platform featuring virtual machines, simulator, design tools (visual theme/builder/css), IDE integrations, ports to multiple OS's and much more. It provides full access to the underlying native OS code (e.g. Objective-C, C#, Dalvik/ART) through a portable abstraction which enables 100% code reuse.

GitHub repo size GitHub top language GitHub last commit

Codename One is the only platform that...

  • Has Write Once Run Anywhere support with no special hardware requirements and 100% code reuse
  • Compiles Java or Kotlin into native code for iOS, UWP (Universal Windows Platform), Android and even JavaScript (with seamless PWA and Thread support)
  • Is Open Source and Free with an enterprise grade commercial offering
  • Is Easy to use with 100% portable Drag and Drop GUI builder
  • Has Full access to underlying native OS capabilities using the native OS programming language (e.g. Objective-C) without compromising portability
  • Has full control over every pixel on the screen! Just override paint and draw or use a glass pane to draw anywhere...
  • Lets you use native widgets (views) and mix them with Codename One components within the same hierarchy (heavyweight/lightweight mixing)
  • Supports seamless Continuous Integration out of the box

Here are some concrete benefits you can get with Codename One:

Codename One's Simulator Runs Instantly

Unlike emulators which you can see in Android etc. Codename One uses a simulator. This means it starts up fast even when debugging. You can enjoy IDE features such as live code reload to modify code in runtime etc.

This means faster debugging cycle and faster development process!

Large Selection of Device Skins

Choose from a large selection of device “skins” to see how your app will look on particular devices. The skin takes into account factors such as resolution and device density to provide a pixel-perfectre presentation of your app, as it would appear on the real device. Switching between device skins is nearly instant.

You can edit and contribute skins in their own open source project here.

Interactive Console

Interact with your application’s APIs at runtime using the interactive Groovy Console. Inspect the application state or experiment with changes all while the app is running.

This lets you investigate issues and experiment without even the small overhead of recompiling.

Live Reload

The Simulator let’s you take advantage of the "Reload Changed Classes" feature in IntelliJ (named "Apply Code Changes" in NetBeans) so that changes you make in your Java source code will be applied immediately to your already-running app in the simulator.

Note that this is often superior to the interactive console but there are limitations such as the ability to add methods/change structure of the code. These limits don't apply to the interactive console!

CSS Live Update

When you make changes to your app’s CSS stylesheet, the changes are reflected instantly in the simulator. This includes changing your theme, images, fonts etc. All changes are instantly refreshed on save, no need to reload/refresh or anything of the sort!

This makes the process of styling an application remarkably easy and fast.

Component Inspector

Use the powerful component inspector to browse the UI component hierarchy in your app. This tool makes it easy to find out where that extra padding is coming from or why something just isn’t lining up the way you’d like. You can also change the UIID (selector) of a component in runtime to see how it impacts the UI and see which component in the hierarchy maps to an element in the component tree (DOM equivalent).

Network Monitor

See all of the network connections that your app makes using the Network Monitor. This valuable tool comes in handy when you’re trying to figure out why an HTTP request isn’t working for you. Check the headers and bodies of both the request and the response. You can even throttle the network to simulate a slow network connection.

Record UI Unit Tests

Use the Test Recorder tool to record unit tests for your app. Once you start recording, it will save your interactions into a unit test that can be played back later to verify that behaviour remains correct.

You can then connect the recorded tests to your CI process including automated on device testing.

How Does it Work?

Codename One is a mature open source project with roots dating back to Sun Microsystems (2006) where one of its core underlying components was developed and open sourced. You can learn about its history and how it works in this video.

Codename One apps perform like native apps, because they are real native apps.

They are statically compiled into native binaries using the target platform’s official build tools.

On platforms that do not support Java natively, such as iOS, the app’s JVM bytecode is first transpiled into a form that the native build tools will accept. On iOS, the app’s JVM bytecode is transformed into C source code, in a real xcode project. On Android, since Java is supported natively, no such transformation is necessary. The app jar is bundled directly into an Android studio gradle project, which can be built directly using the Android SDK build tools.

The figure below shows the build process for each supported platform

You can click the image to enlarge or view a PDF version here.

Quick Start

TIP: We are currently transitioning to Maven, and have created a new, simpler method for creating projects. Check out https://start.codenameone.com to get started now.

There is a lot to know about Codename One, this 3 minute video gives a very concise high level view. Notice there are similar videos for Eclipse, IntelliJ/IDEA and Netbeans here:

Hello Codename One

Extensible

Codename One can be extended easily using 3rd party libraries that can include native OS code. There is an extensive list of these libraries (cn1libs) here. The libraries list is generated automatically based on this github project.

You can learn more about Codename One and its capabilities at the main site and you can see an extensive list of documentation and tutorials here.

Important Links & Docs

You can get started with the binary and the birds eye view in the download section. Additional important links are:

Setup & Getting Started With The Code

NOTE: We are in the process of migrating from Ant to Maven, which simplifies the process for building from source. This section still refers to the process for for building with Ant. See Maven Quick Start for the new Maven build instructions.

Setup is covered in depth in this article and video. Notice that this covers debugging the simulator and working with the code that requires the Codename One plugin for NetBeans. You can install that by installing NetBeans and typing "Codename One" in the plugin search section see the getting started tutorial.

Using The Codename One Source Code

While Codename One itself works with all major IDE's the code in this repository was designed to work with NetBeans.

Please notice that while we fully support IntelliJ/IDEA (both CE and Ultimate), we don't support Android Studio which diverted too much from the mainline IDE.

Quick Start

Getting and Building Sources

$ git clone https://github.com/codenameone/CodenameOne
$ cd CodenameOne
$ ant

Running Unit Tests

$ ant test-javase

Running Samples

The Samples directory contains a growing set of sample applications. These samples aren't meant to be demos, but rather samples of how to use APIs.

You can launch the sample runner app from the command-line using:

$ ant samples

Quick Start with Maven

git clone https://github.com/codenameone/CodenameOne
cd CodenameOne/maven
mvn install

This will build and install Codename One in your local Maven repository.

To build the archetype projects from source, you should check out the cn1-maven-archetypes repository and build it also:

git clone https://github.com/shannah/cn1-maven-archetypes
cd cn1-maven-archetypes
mvn install

To get started building projects using Maven, see https://start.codenameone.com.

ParparVM

Codename One's iOS VM is quite unique and is open source as well. You can read more about it in its dedicated folder in this repository.

ParparVM is a uniquely conservative VM that translates Java bytecode to C code. Thus providing native performance and access while still providing a safety net. This approach is unique to Codename One and is essential for future compatibility!

Apple has a tendency to change things abruptly e.g. 64bit support, bitcode etc. Since ParparVM generates a standard Xcode project there were no code changes required for any of these tectonic shifts. It's as if you handcoded the project yourself!

You can even open the resulting project in xcode and debug it or profile it directly on the iOS device. This provides a lot of useful information such as readable callstacks and valuable/actionable performance tracking...

Traditional compilers fall flat in these cases.

Modified iKVM

Codename One maintains a fork of iKVM which is a JVM for CLR. This modified port allows us to run the Universal Windows Platform implementation of Codename One natively on Windows 10 devices.

Getting Help & FAQ

We provide support over at StackOverflow when you tag using codenameone, you can ask anything there and we try to be pretty responsive. The StackOverflow link also serves as an excellent community driven FAQ since it literally maps user questions to answers.

Codename One has a discussion group where you can post questions. However, due to the nature of that group we try to limit discussions over the source. The discussion forum is intended for simpler usage and more complex source code hacks/native compilation might create noise there.

Comments
  • [iOS] Memory leak in updating TextArea

    [iOS] Memory leak in updating TextArea

    There is memory leak in iOS when TextArea(maybe Label as well) setText() is called. The following codes can reproduce the issue after pressing the button for hundred times within a short period. The memory goes up after pressing the button and the memory will not be released. Please note that you have to press the button quickly for multiple times.

    protected void onMain_TestLabel2Action(Component c, ActionEvent event) { int iCounter = 0; while (iCounter < 100) { TextArea testTxtArea = findRandomTextArea(c); testTxtArea.setText("Random100_" + new Date().getTime()); testTxtArea.getParent().revalidate(); iCounter++; } }

    opened by jackyy415 101
  • push device id after registering for push is coming as null

    push device id after registering for push is coming as null

    Original issue 789 created by codenameone on 2013-07-20T17:13:49.000Z:

    Please clearly state whether the issue relates to a device/the simulator or the tools. This happens in real device. If related to a device be sure to specify exactly which device with as much details as possible.

    On iPhone 4, latest OS version and also on Android phones.

    What steps will reproduce the problem?

    1. Have a device register for push using following code: Hashtable meta = new Hashtable(1); meta.put(com.codename1.push.Push.GOOGLE_PUSH_KEY, "359276012902"); Display.getInstance().registerPush(meta, false);
    2. The PushCallback registeredForPush(String deviceId) is called by cn1 framework.
    3. The deviceId received in the registeredForPush() for iPhone 4 device is given below:

    b018aa2534e7abf5da59f9c673e255eb107cf3f771022db31d3a215c8e8f4c8b

    1. after this when you try to get the cn1 specific device id, it is coming as null from the following call: com.codename1.push.Push.getDeviceKey();

    What is the expected output? What do you see instead?

    the cn1 specific device id which is a long value should be available so that push to specific device can be made.

    What version of the product are you using? On what operating system?

    Latest cn1 version on build server and latest plugin.

    Please provide any additional information below.

    Type-Defect Priority-Medium 
    opened by codenameone 89
  • Added native android tiling support

    Added native android tiling support

    Border now uses the implementation tiling support Default drawTile now deals with its own limits, no need to clip rect outside

    PS: didn't have a use case for image border with an arrow here, please, double check this before merging. Also, please double check this with iOS just to be sure, couldn't test it here. I've also noticed it fixed the sidemenu covering the shadow.

    PS2: android native tiling is fast :+1:

    opened by FabricioCabeca 59
  • Sample program to crash ios.newVM

    Sample program to crash ios.newVM

    Original issue 1304 created by codenameone on 2015-01-23T22:53:30.000Z:

    The first time you run one of my apps it has to obtain data. this is normally done over the network but can also be done with a file copied to the device. Either way if the dataset is a small one, my apps work. However larger datasets consistently crash the new VM.

    In trying to narrow down the problem and create a test case I have come to the conclusion that it is not a particular operation that is causing the crash but the load.

    The sample program attached will read lines from a file and run them through your CSVParser. It crashes before completion. In order to run this app you will need to set the property ios.fileSharingEnabled to true and you will need to copy the sample data file to the app on your device using iTunes.

    This app runs fine on the old VM, it also runs a lot faster on the old VM, it takes about 18 seconds to complete. On the new VM it takes 38 seconds to crash without completing.

    This initial data load is key to my apps and so I can't really test my apps at all on the new VM because I can't get any data to them.

    I have attached the sample program, the data file you will need to run the program and the crash log I received from my iPod.

    Type-Defect Priority-High 
    opened by codenameone 55
  • RIM build with push support fails

    RIM build with push support fails

    Original issue 829 created by codenameone on 2013-08-08T04:48:34.000Z:

    Please clearly state whether the issue relates to a device/the simulator or the tools. Build server. If related to a device be sure to specify exactly which device with as much details as possible. Blackberry build

    What steps will reproduce the problem?

    1. Set the property of rim.pushBpsURL==https://cp12173.pushapi.eval.blackberry.com
    2. And send RIM build 3.

    What is the expected output? What do you see instead?

    The build should be successful. Instead the build fails with error as in the attached file.

    What version of the product are you using? On what operating system?

    Latest version. On Mac. Please provide any additional information below.

    Type-Defect Priority-Medium 
    opened by codenameone 51
  • J2ME build failed to run on Sony Ericsson (eg.W850i,K610i)

    J2ME build failed to run on Sony Ericsson (eg.W850i,K610i)

    Original issue 784 created by codenameone on 2013-07-16T04:32:41.000Z:

    My J2ME build works on Nokia devices but failed on SE devices as it occured a message "Application error" and unable to launch the app. It used be fine on SE devices but now it doesn't work though on new created sample project.

    What steps will reproduce the problem? 1.compile and send J2me build to server. 2.download the build and install to SE device 3.error message "application error" occurred after launching the app

    What is the expected output? What do you see instead? The app should be run successfully as it does on emulator/Nokia devices. Unfortunately, it fails and shows the error message when attempting to run the app.

    What version of the product are you using? On what operating system?

    Please provide any additional information below.

    Type-Defect Priority-Medium 
    opened by codenameone 50
  • iOS crash at startup

    iOS crash at startup

    Original issue 714 created by codenameone on 2013-05-18T23:56:00.000Z:

    I have just released the second version of my iOS app. Some maintenance and a couple of new features, nothing that major.

    I have one user that ran the first release without a problem. After installing second release it displays the splash screen and crashes. My app never starts. Just the one user.

    She has tried deleting the old app, reinstalling, rebooting the device. Nothing helps.

    She is using an original iPad running iOS 5.1.1. She sent me the crash log included below. Does this show anything relevant.

    I don't know how to debug this.

    Thanks

    Had to attach the log as a file, too long

    Type-Defect Priority-Medium 
    opened by codenameone 48
  • Location can't be work now using built hint codename1.ios.xcode_version=9.2

    Location can't be work now using built hint codename1.ios.xcode_version=9.2

    I have check your last commit changes and I could check that you commented the lines in the file CodenameOne_GLViewController.h

    //#define INCLUDE_CONTACTS_USAGE //#define INCLUDE_CALENDARS_USAGE //#define INCLUDE_CAMERA_USAGE //#define INCLUDE_FACEID_USAGE //#define INCLUDE_LOCATION_USAGE //#define INCLUDE_MICROPHONE_USAGE //#define INCLUDE_MOTION_USAGE //#define INCLUDE_PHOTOLIBRARYADD_USAGE //#define INCLUDE_PHOTOLIBRARY_USAGE //#define INCLUDE_REMINDERS_USAGE //#define INCLUDE_SIRI_USAGE //#define INCLUDE_SPEECHRECOGNITION_USAGE //#define INCLUDE_NFCREADER_USAGE

    Then I check that in the file IOSNative.m you need to instance the Location natively.

    But if you commented how the location it will work properly?

    opened by DurankGts 37
  • [BUG?] Blank white screen after waking up app from background using a link

    [BUG?] Blank white screen after waking up app from background using a link

    I tried to read more times my code and to do some trials, but I didn't find any error in my code.

    As I described here: https://stackoverflow.com/questions/52807700/intercept-an-url-with-a-given-domain-in-the-android-ios-and-javascript-ports-of

    the problem is that my code works fine if the app is killed and then opened from a link, but it doesn't work if the app is opened from the icon, then it is putted in background and then it is opened again from the link: in this case, the app will show a blank white screen.

    Tested on Android 7 (with this phone: https://www.gsmarena.com/huawei_honor_6x-8388.php)

    Build hint: android.xintent_filter=<intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:host="example.com" android:scheme="https" /></intent-filter>

    Code:

    public class MyApplication {
    
        private Form current;
        private Resources theme;
        private String arg;
    
        public void init(Object context) {
            // use two network threads instead of one
            updateNetworkThreadCount(2);
    
            theme = UIManager.initFirstTheme("/theme");
    
            // Enable Toolbar on all Forms by default
            Toolbar.setGlobalToolbar(true);
    
            // Pro only feature
            Log.bindCrashProtection(true);
    
            addNetworkErrorListener(err -> {
                // prevent the event from propagating
                err.consume();
                if (err.getError() != null) {
                    Log.e(err.getError());
                }
                Log.sendLogAsync();
                Dialog.show("Connection Error", "There was a networking error in the connection to " + err.getConnectionRequest().getUrl(), "OK", null);
            });
        }
    
        public void start() {
            if (current != null) {
                current.show();
                return;
            }
            Form hi = new Form("Hi World", BoxLayout.y());
    
            final SpanLabel message;
            arg = Display.getInstance().getProperty("AppArg", null);
            if (arg == null) {
                message = new SpanLabel("App launched from icon");
            } else {
                message = new SpanLabel("App launched from the url: " + arg);
            }
            hi.add(message);
            hi.show();
    
            hi.addShowListener(l -> {
                arg = Display.getInstance().getProperty("AppArg", null);
                if (arg == null) {
                    message.setText("App launched from icon");
                } else {
                    message.setText("App launched from the url: " + arg);
                }
                hi.revalidate();
            });
    
        }
    
        public void stop() {
            current = getCurrentForm();
    
            if (current instanceof Dialog) {
                ((Dialog) current).dispose();
                current = getCurrentForm();
    
            }
        }
    
        public void destroy() {
        }
    
    }
    
    opened by jsfan3 34
  • shouldLoadURL event support and executeAndReturnString()

    shouldLoadURL event support and executeAndReturnString()

    Original issue 459 created by codenameone on 2012-12-31T21:45:51.000Z:

    This is related to issue # 453 (http://code.google.com/p/codenameone/issues/detail?id=453). I have implemented two mechanisms necessary to support a robust Javascript interface in a minimal way. These are:

    1. A shouldLoadURL event that is called whenever the browser is about to try to load a URL. It gives the developer the ability to cancel the page load, and/or handle the URL processing itself. With respect to Javascript, this allows us to design our own custom URLs that Javascript calls via window.location to send messages back into Java.
    2. An executeAndReturnString() method on the BrowserComponent class that executes a javascript string and returns the string result of the processing. This method is synchronous so it makes it much more convenient to query the javascript environment and DOM from Java.

    I have added support for Android, iOS, and JavaSE, and have attached the patches for these ports all separately.

    I have also created a Test application to test all of this functionality (and will hopefully grow to include tests for much more CodenameOne functionality). I have added this project to the incubator: http://code.google.com/p/codenameone-incubator/source/browse/#svn%2Ftrunk%2Fshannah%2FCodenameOneTests

    However I need to clean it up to make it easier for others to set it up and use it. This project includes a separate package, ca.weblite.codename1.js that is a full two-way Javascript bridge built on top of this functionality.

    http://code.google.com/p/codenameone-incubator/source/browse/#svn%2Ftrunk%2Fshannah%2FCodenameOneTests%2Fsrc%2Fca%2Fweblite%2Fcodename1%2Fjs

    I will be factoring this out into its own subproject and will post usage examples and more tests later today.

    I have tested these changes on: iPhone 4S Android (Nexus 7) Android (HTC Magic running Android 2.1) JavaSE (the simulator)

    I don't have a Blackberry test environment up and running yet, or I would have also provided a patch for it also.

    Priority-Medium Type-Enhancement 
    opened by codenameone 29
  • [BUG] callback of Capture.capturePhoto(callback) on Android is not invoked the first time

    [BUG] callback of Capture.capturePhoto(callback) on Android is not invoked the first time

    The following bug can be reproduced on Android 7 only after the first capturing of a photo after that the app is just installed. To reproduce the bug again, it's necessary to remove the app and install it again (if you reinstall the app without removing it, or if you kill and restart the app, the bug cannot be reproduced). After the first taken photo, the bug disappears (until you will remove and install the app again).

    This bug cannot be reproduced in the Simulator.

    I report code and logs. However the same issue can be reproduced with the code published here (on Android, the first taken image after the app install is not placed in the Label): https://www.codenameone.com/blog/round-at-codemotion.html

    Code:

            // Avatar default picture
            int avatarSizeMM = 10; // the avatar size in mm
            Style s = new Style();
            s.setFgColor(ColorUtil.LTGRAY);
            Label avatar = new Label(createAvatar(FontImage.createMaterial(FontImage.MATERIAL_PERSON, s, avatarSizeMM)), "Avatar");
    
            // Callback after taking a photo (from photocamera or file chooser)
            ActionListener callback = e -> {
                Log.p("ActionListener callback invoked");
                if (e != null && e.getSource() != null) {
                    String filePath = (String) e.getSource();
                    Image capturedImage = null;
                    Log.p("Capured image filePath: " + filePath);
                    if (filePath != null) {
                        try {
                            FileSystemStorage fs = FileSystemStorage.getInstance();
                            InputStream fis = fs.openInputStream(filePath);
                            capturedImage = Image.createImage(fis);
                        } catch (IOException ex) {
                            Log.p("IOException in loading the image: " + filePath);
                            Log.e(ex);
                        }
                        if (capturedImage != null) {
                            createAvatar(capturedImage, avatarSizeMM, avatar);
                        }
                    } else {
                        Log.p("Error: \"filePath = (String) e.getSource()\" is null");
                    }
                }
                Log.p("The image capture was canceled by the user (e.getSource() is null)");
            };
    
            // Button to take a photo from photocamera
            Button camera = new Button("Fotocamera", FontImage.createMaterial(FontImage.MATERIAL_CAMERA, "Avatar", 5));
            camera.addActionListener((e) -> {
                Log.p("The native photocamera is going to be opened");
                Capture.capturePhoto(callback);
            });
    
    

    After the first taken photo, the callback is not invoked. The log is only: [EDT] 0:0:39,881 - The native photocamera is going to be opened

    After the second taken photo, the log is (note that the last line of log doesn't make sense, I didn't cancelled the image capture) :

    [EDT] 0:0:39,881 - The native photocamera is going to be opened
    [EDT] 0:7:54,190 - The native photocamera is going to be opened
    [EDT] 0:7:59,700 - ActionListener callback invoked
    [EDT] 0:7:59,700 - Capured image filePath: /storage/emulated/0/Pictures/Registrazione/IMG_20180509_204014.jpg
    [EDT] 0:8:0,45 - The image capture was cancelled by the user (e.getSource() is null)
    

    After the third taken photo, the log is:

    [EDT] 0:0:39,881 - The native photocamera is going to be opened
    [EDT] 0:7:54,190 - The native photocamera is going to be opened
    [EDT] 0:7:59,700 - ActionListener callback invoked
    [EDT] 0:7:59,700 - Capured image filePath: /storage/emulated/0/Pictures/Registrazione/IMG_20180509_204014.jpg
    [EDT] 0:8:0,45 - The image capture was canceled by the user (e.getSource() is null)
    [EDT] 0:15:2,647 - The native photocamera is going to be opened
    [EDT] 0:15:13,567 - ActionListener callback invoked
    [EDT] 0:15:13,568 - Capured image filePath: /storage/emulated/0/Pictures/Registrazione/IMG_20180509_204723.jpg
    [EDT] 0:15:13,840 - The image capture was canceled by the user (e.getSource() is null)
    
    Priority-High 
    opened by jsfan3 28
  • On iOs (version 16.2) text field edit dialog, when the keyboard on the iPhone is triggered for typing occur some issues

    On iOs (version 16.2) text field edit dialog, when the keyboard on the iPhone is triggered for typing occur some issues

    Text field edit dialog, when the keyboard on the iPhone is triggered for typing has the following flaws: [1] – The editing area is positioned at the top of the interface where we have the interference of the front camera area, making it difficult to read and / or type the 1st line.
    See illustrative images bellow: image

    [2] – As we edit and fill in the editing area: when we reach the bottom of the editing area, does not occur the expected vertical scroll, it is not possible to vertically scroll the text and as we continue to edit the new inserted words is below the visible area (covered by the keyboard area). See illustrative images bellow: image

    We generated an APP project using cn1 and ran the same on XCODE on a MacBook Pro: In XCODE the following message was displayed:


    2023-01-07 09:13:46.607428-0300 IwCareAppPro[92509:4612587] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) ( "<NSAutoresizingMaskLayoutConstraint:0x60000837a530 h=--& v=--& _UIToolbarContentView:0x7f8df8f69910.width == 0 (active)>", "<NSLayoutConstraint:0x600008375540 H:|-(0)-[_UIButtonBarStackView:0x7f8df8f73e80] (active, names: '|':_UIToolbarContentView:0x7f8df8f69910 )>", "<NSLayoutConstraint:0x600008375590 H:[_UIButtonBarStackView:0x7f8df8f73e80]-(0)-| (active, names: '|':_UIToolbarContentView:0x7f8df8f69910 )>", "<NSLayoutConstraint:0x60000832b070 'TB_Leading_Leading' H:|-(20)-[_UIModernBarButton:0x7f8dfa1da3a0'Done'] (active, names: '|':_UIButtonBarButton:0x7f8dfa1da170 )>", "<NSLayoutConstraint:0x60000832b0c0 'TB_Trailing_Trailing' H:[_UIModernBarButton:0x7f8dfa1da3a0'Done']-(20)-| (active, names: '|':_UIButtonBarButton:0x7f8dfa1da170 )>", "<NSLayoutConstraint:0x60000837a080 'UISV-canvas-connection' UILayoutGuide:0x60000195c700'UIViewLayoutMarginsGuide'.leading == UIView:0x7f8dfa1d9fc0.leading (active)>", "<NSLayoutConstraint:0x60000837a0d0 'UISV-canvas-connection' UILayoutGuide:0x60000195c700'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x7f8dfa1da170.trailing (active)>", "<NSLayoutConstraint:0x600008379ae0 'UISV-spacing' H:[UIView:0x7f8dfa1d9fc0]-(0)-[_UIButtonBarButton:0x7f8dfa1da170] (active)>", "<NSLayoutConstraint:0x600008375450 'UIView-leftMargin-guide-constraint' H:|-(0)-UILayoutGuide:0x60000195c700'UIViewLayoutMarginsGuide' (active, names: '|':_UIButtonBarStackView:0x7f8df8f73e80 )>", "<NSLayoutConstraint:0x6000083754f0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x60000195c700'UIViewLayoutMarginsGuide']-(0)-|(LTR) (active, names: '|':_UIButtonBarStackView:0x7f8df8f73e80 )>" )

    Will attempt to recover by breaking constraint <NSLayoutConstraint:0x60000832b0c0 'TB_Trailing_Trailing' H:[_UIModernBarButton:0x7f8dfa1da3a0'Done']-(20)-| (active, names: '|':_UIButtonBarButton:0x7f8dfa1da170 )>

    Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful. 2023-01-07 09:14:11.184859-0300 IwCareAppPro[92509:4612587] [com.apple.VisionKit.processing] Analysis not completed because device does not support Image Analysis. This will only be logged once. 2023-01-07 09:14:11.207965-0300 IwCareAppPro[92509:4612587] [com.apple.VisionKit.RemoveBackground] Request to remove background on an unsupported device. Error Domain=com.apple.VisionKit.RemoveBackground Code=-8 "(null)" 2023-01-07 09:14:11.208509-0300 IwCareAppPro[92509:4612587] [UILog] Called -[UIContextMenuInteraction updateVisibleMenuWithBlock:] while no context menu is visible. This won't do anything. 2023-01-07 09:14:11.628923-0300 IwCareAppPro[92509:4612985] LaunchRichTextEditor : iwvar_quadroclinico


    We configure the simbolic breakpoint as suggested by XCODE, below the image of what is was displayed:

    image

    opened by JTBrandao 1
  • How can we make the wiki multi-language?

    How can we make the wiki multi-language?

    I really want to start to translate the wiki to Portuguese (Brazil), but, I didn't found a correct way to make the same wiki have multiple languages. So I want some opinions of how anybody that wants to translate wiki of CodenameOne can achieve that.

    opened by LuccaPrado 0
  • Maven Run Config

    Maven Run Config "Xcode iOS Project" fails

    Describe the bug this is the output at the end of the log:

    [INFO] Process return code is 0
    [INFO] Executing: 
    [INFO] javac -source 1.6 -target 1.6 -classpath *_omitted the paths here_*
    [INFO] Executing with timeout -1
    [INFO] Warning: [options] Bootstrap Classpath not specified with -source 6
    [INFO] Error: Source option 6 is no longer supported. Use 7 or higher.
    [INFO] Error: Target option 6 is no longer supported. Use 7 or higher.
    [INFO] Process return code is 2
    

    But I couldn't figure it out where 1.6 is set anywhere in the poms. This (with 1.8)is written in the root pom for example:

      <properties>
        <java.version>1.8</java.version>
        <cn1app.name>app</cn1app.name>
        <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
        <rhino.version>1.7.11</rhino.version>
        <cn1.plugin.version>7.0.95</cn1.plugin.version>
        <maven.compiler.target>1.8</maven.compiler.target>
        <java-tests.version>11</java-tests.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <cn1.version>7.0.95</cn1.version>
        <maven.compiler.source>1.8</maven.compiler.source>
      </properties>
    

    To Reproduce just running "Xcode iOS Project" config via IntelliJ

    Expected behavior Generating a fresh xcode project

    Additional context I'm not sure if this is a bug, because the config is not that fresh (Beginning of 2022), but why is javac called with 1.6 when maven.compiler.target and maven.compiler.source are set to 1.8?

    opened by kutoman 3
  • App crash since manifest support of Android 12

    App crash since manifest support of Android 12

    Describe the bug CN1 seems to use deprecated Android API which isn't supported on Android 12 anymore

    To Reproduce Steps to reproduce the behavior: Just check the specific line of the AndroidLocationManager mentioned in the stacktrace

    Expected behavior No crash

    Smartphone (please complete the following information):

    • Device: Emulator
    • OS: Android 12

    Additional context

    2022-12-25 14:56:16.217 2188-2188/org.igmg.android E/AndroidRuntime: FATAL EXCEPTION: main
        Process: org.igmg.android, PID: 2188
        java.lang.UnsupportedOperationException: GpsStatus APIs not supported, please use GnssStatus APIs instead
            at android.location.LocationManager.addGpsStatusListener(LocationManager.java:2344)
            at com.codename1.location.AndroidLocationManager$2.run(AndroidLocationManager.java:150)
            at android.os.Handler.handleCallback(Handler.java:938)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loopOnce(Looper.java:201)
            at android.os.Looper.loop(Looper.java:288)
            at android.app.ActivityThread.main(ActivityThread.java:7839)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
    
    opened by kutoman 3
  • Codename App turns slowly after some time using it.

    Codename App turns slowly after some time using it.

    The App works quite well after login , but it becomes increaesily slow after some activities and finaly crashes. The issue occur´s only in iOs version (on Android works well).

    This behavior became more critical after upggrading iOS to 16.1 version. Running on iOs 15 this issue was not so critical.

    It seems like a memory retrieving issue. Is there any codenameone orientation about this ?

    opened by JTBrandao 2
Releases(7.0.96)
Owner
Codename One
Write Once Run Anywhere mobile first platform for Java and Kotlin developers
Codename One
KMM RSS Reader: an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile.

KMM RSS Reader This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you ca

Kotlin 1.4k Jan 4, 2023
A Bluetooth kotlin multiplatform "Cross-Platform" library for iOS and Android

Blue-Falcon A Bluetooth "Cross Platform" Kotlin Multiplatform library for iOS, Android, MacOS, Raspberry Pi and Javascript. Bluetooth in general has t

Andrew Reed 220 Dec 28, 2022
Utility - The cross-platform native Kotlin command line tool template

Utility The cross-platform native Kotlin command line tool template. Usage Make

null 0 Jan 3, 2022
Link-converter - A web service that converts links between web url and deeplink for mobile and web applications

Deep Link Converter Linkleri, mobil ve web uygulamaları için web url ile deeplin

Muhammed Eren DURSUN 2 Apr 9, 2022
Runtime Mobile Security (RMS) 📱🔥 - is a powerful web interface that helps you to manipulate Android and iOS Apps at Runtime

Runtime Mobile Security (RMS) ?? ?? by @mobilesecurity_ Runtime Mobile Security (RMS), powered by FRIDA, is a powerful web interface that helps you to

Mobile Security 2k Dec 20, 2022
Kotlin Multiplatform Sample - Android, iOS, Web, Desktop

KMP-Sample Kotlin Multiplatform Sample Android iOS Web (Compose for web) Desktop (Compose for desktop) ?? Structure Diagram ?? Build At least android

안홍범 14 Dec 13, 2022
A Kotlin Multiplatform Project using TMDB Api. Currently supports Android,iOS,Desktop and web platforms

A Kotlin Multiplatform Project using TMDB Api(https://www.themoviedb.org/). Currently this project is implemented in following platforms Andr

Jackson E J 11 Nov 10, 2022
DocuBox is a cloud based file storing app where you can securely store and access your documents from anywhere around the world

DocuBox is an android app ??in which you can securely upload your files on the cloud– from family pictures and audio recordings to spreadsheets, presentations and other confidential documents.

Vaibhav Jaiswal 26 Jan 3, 2023
An app architecture for Kotlin/Native on Android/iOS. Use Kotlin Multiplatform Mobile.

An app architecture for Kotlin/Native on Android/iOS. Use Kotlin Multiplatform Mobile. 项目架构主要分为原生系统层、Android/iOS业务SDK层、KMM SDK层、KMM业务逻辑SDK层、iOS sdkfra

libill 4 Nov 20, 2022
🚀 Native iOS- and Android- Apps with JavaScript

Titanium Welcome to the Titanium open source project. Titanium provides a mature platform for developers to build completely native cross-platform mob

Team Appcelerator 2.6k Jan 4, 2023
Run Kotlin/JS libraries in Kotlin/JVM and Kotlin/Native programs

Zipline This library streamlines using Kotlin/JS libraries from Kotlin/JVM and Kotlin/Native programs. It makes it possible to do continuous deploymen

Cash App 1.5k Dec 30, 2022
The KPy gradle plugin allows you to write Kotlin/Native code and use it from python.

The KPy gradle plugin allows you to write Kotlin/Native code and use it from python.

Martmists 14 Dec 26, 2022
Android MVVM framework write in kotlin, develop Android has never been so fun.

KBinding 中文版 Android MVVM framework write in kotlin, base on anko, simple but powerful. It depends on my another project AutoAdapter(A library for sim

Benny 413 Dec 5, 2022
Kotlin Multiplatform Mobile + Mobile Declarative UI Framework (Jetpack Compose and SwiftUI)

Kotlin Multiplatform Mobile + Mobile Declarative UI Framework (Jetpack Compose and SwiftUI)

Kotchaphan Muangsan 3 Nov 15, 2022
This repository is part of a Uni-Project to write a complete Compiler for a subset of Java.

Compiler This repository is part of a Uni-Project to write a complete Compiler for a subset of Java. Features error recovery using context sensitive a

null 3 Jan 10, 2022
Write a Ghidra Extension without using Java or Eclipse!

Ghidra Extension in Kotlin using IntelliJ IDEA Write a Ghidra Extension without using Java or Eclipse! Setup Hit Use this template at the top of the r

Florian Magin 7 Dec 15, 2022
A Kotlin Multiplatform and Compose template that allows you to easily set up your project targeting: Android, Desktop, and Web

A Kotlin Multiplatform and Compose template that allows you to easily set up your project targeting: Android, Desktop, and Web

Carlos Mota 3 Oct 27, 2021
Unsplash application for Android, Desktop and Web. Built using Kotlin Multiplatform and Compose

Unsplash Unsplash application for Android, Desktop and Web. Built using Kotlin Multiplatform and Compose with ❤️ ?? Presentation Set up the environmen

Carlos Mota 15 Nov 11, 2022
A sample project that helps to start building a Mobile Kotlin Multiplatform application

Mobile Kotlin multiplatform project template A sample project that helps to start building a Mobile Kotlin Multiplatform application. It establishes a

Dizel 0 Oct 16, 2021