Code on the Go release notes – 26.31

Get the latest version 

Click here to download the latest release of Code on the Go (CoGo™).

New search, filter, and share options for build output and logs

We’ve made it easier to read, search, filter, and share content in the Build Output, App Logs, and IDE Logs panels.

  • A persistent toolbar is now displayed at the top of these panel with options to search, filter, share, or clear the log output.
  • A word wrap toggle switches long lines between wrapping to fit the panel width and staying on one line, scrollable horizontally.
https://youtu.be/LFit68MehlI

Kotlin code actions

The following code actions are now available for Kotlin:
  • Null safety fix: For an unsafe access receiver.selector, the action presents the following options
    • Assert non-null: Rewrites it to receiver!!.selector. Use this when you’re confident the value can’t actually be null at this point, and a NullPointerException is OK if that assumption is ever wrong.
    • Safe call: Rewrites it to receiver?.selector. Instead of crashing, the whole expression becomes null if receiver is null. Use this when skipping it is a reasonable action.
    • Elvis fallback: Rewrites it to (receiver ?: TODO()).selector. Use this when null needs an explicit default value instead of skipping the call. The generated TODO() is a placeholder you’re expected to replace with a real fallback expression.
  • Surround with try-catch: This code action wraps selected code in a try { } catch (e: Exception) { } block, matching your file’s indentation and line endings.
  • Import class(es): On an unresolved symbol, this code action automatically inserts the matching import statement, or lets you pick from multiple candidates if the class name is ambiguous.

Other features and fixes

  • The Kotlin LSP now prioritizes code completion tasks over code analysis tasks.
  • In the plugin manager:
    • The system back arrow now correctly cancels the restart dialog box.
    • Text displayed when no plugins are installed can now be localized. (Thanks, w3lld1, for providing the Indonesian translation!)
  • Changes to templates include:
    • The new Template Manager plugin lets you browse, add, and remove .cgt project and template files. See a complete list of plugins.
    • Templates now receive the full path to the .cgt file and the directory name in the .cgt file as two separate variables, which allows a template function to extract other assets in the .cgt file. (Suggested names are COGO_CGT_PATH for the location of the .cgt file and COGO_CGT_DIRECTORY for the directory.)
  • Multiple behind-the-scenes changes to reduce APK size.

Prevent CoGo-built apps from stopping on Android 16

Some users report that apps built in CoGo repeatedly stop on devices running Android 16. This issue is a result of Android blocking background processes. Instructions to prevent this issue can be in found in our knowledge base.

New Chinese translations

All strings.xml text has been translated to Chinese. Thanks to dxyme later, who translated the strings.xml file, and to Telegram user D (@dawnyyds), who sent screenshots with translation proposals.

❤️ Support our work ❤️

Thank you for being a part of our community!

App Dev for All is a philanthropic venture driven by a simple mission: to provide powerful, accessible tools to developers everywhere. Because of this commitment, our software is and always will be free and open source.

To maintain our independence, we rely entirely on private funding and the generosity of users like you. If our software adds value to your workflow, please consider supporting our mission. Your contributions directly fund ongoing development, maintenance, and future innovations.

Support our work

Let us know what you think

If you have any problems or suggestions, please let us know! You can reach us the following ways:

Thank you for helping us keep CoGo open and accessible!

Our story

If you’re wondering why we’re building an IDE that runs on phones (including 32-bit devices) and doesn’t require internet access, our one-minute video sums it up.  

https://youtu.be/CuTy8ICkQlo”
You can now opt out of sharing anonymous usage data at installation.

Time stamps, time deltas, and line numbers available in the Build Output panel

You can now choose to display line numbers, time stamps, and time deltas in the Build Output panel. These are independent selections.

  1. Open the Build Output panel.
  2. Tap the settings slider icon.
  3. Select or deselect the options you want to hide or view.

Plugin development changes

Setting plugin.min_ide_version

plugin.min_ide_version is the manifest field declaring the oldest Code on the Go release your plugin can run on. The field is a bare YY.WW string.

To decide which version to set, see the section “How to use this” in the Plugin API Changelog. Set the highest version that supports the capabilities your plugin uses. Currently, only min is enforced at install; max is parsed but considered advisory.
Plugin dependencies now resolve offline via Maven coordinates
Code on the Go’s on-device local Maven repository now includes the plugin API, plugin builder, and supporting IDE jars (common, eventbus-events, idetooltips) as proper Maven artifacts, generated automatically during onboarding.
Plugin projects can now declare dependencies like compileOnly(“com.itsaky.androidide:plugin-api:1.0.0”) and plugins { id(“com.itsaky.androidide.plugins.build”) version “1.0.0” } instead of committing libs/*.jar files fully offline, on-device. This lays the groundwork for migrating existing plugins off manual jar copies (tracked separately).

Other features and fixes

  • Kotlin compiler fix: Thanks to CoGo user @Wadamzmail for fixing a bug in the Kotlin compiler that made the Kotlin LSP non-functional on some older devices.
  • New Kotlin code actions
    • The Go to Definition code action jumps to a symbol’s declaration, which may be in the same file or in another file. If more than one match is found, a results list is displayed. The code action understands Kotlin’s implicit calls, like operators and destructuring. If a definition is out of scope (e.g., in library source), “Definition not found” will be displayed.
    • The Find References code action lets you find every place a selected declaration or reference is used across your project.
  • Log filtering improvements: If no results match the selected filter(s), a notification is now displayed. And, you can clear filters to display more results.
  • Search improvement: When searching a file or within a log, the matching results are highlighted and the text editor’s popup is no longer displayed.
  • Improved access to plugin settings: Settings for plugins are now available at the top level of CoGo’s preferences section.
  • Plugin icons updated: The plugin manager no longer displayed stale icons after assets are updated.
  • Improved XML autocorrect: XML attribute auto correction now only displays Android framework attribute names.
  • Indonesian translation: Four translation errors are fixed.
  • Multiple behind-the-scenes changes to reduce APK size.

❤️ Support our work ❤️

Thank you for being a part of our community!

App Dev for All is a philanthropic venture driven by a simple mission: to provide powerful, accessible tools to developers everywhere. Because of this commitment, our software is and always will be free and open source.

To maintain our independence, we rely entirely on private funding and the generosity of users like you. If our software adds value to your workflow, please consider supporting our mission. Your contributions directly fund ongoing development, maintenance, and future innovations.

Support our work

Let us know what you think

If you have any problems or suggestions, please let us know! You can reach us the following ways:

Thank you for helping us keep CoGo open and accessible!

Our story

If you’re wondering why we’re building an IDE that runs on phones (including 32-bit devices) and doesn’t require internet access, our one-minute video sums it up.