Repository navigation
LAYOUT DESIGNER (NEW)
- A design editor for Android XML layouts: open a layout and switch to Design to build the screen visually
- A palette of widgets, each tile previewing what it adds. Drag one onto the screen to insert it, or long-press a view and drag it into another parent
- Instant drop feedback: a ghost shows where the view will land, and the layout animates into its new shape
- A property strip with visual editors for the selected view: text, size, gravity, margin, color and more
- Any property, or an attribute you add yourself, can also be edited in a dialog, which applies its changes when it closes
- A color picker that leads with the current value, with library colors folded away
- A component tree and a compact element list for picking views that are hard to tap
- Full-screen Design view, and on a phone Split shows the layout itself next to the code, not the designer's chrome
- On a phone the selection's actions (duplicate, delete, select parent) live in the property strip; on a wide screen the panels dock beside the canvas
- Zoom and pan settle smoothly, and tapping outside a panel closes it
- The preview draws the status bar, clock and gesture handle, like a real screen
- Your own custom views are compiled on demand; one that cannot be shown is replaced by a stand-in instead of breaking the preview
- A scroll view that already has its child refuses a second one, as Android does
LAYOUT PREVIEW SPEED
- The first preview of a Material layout on a phone is about ten times faster (40 s down to 4 s on our test layout)
- An edit shows up about twice as fast, and a view added with a new id no longer forces a slow full relink
- Previews render faster and lighter overall, and the designer no longer parses the layout on the UI thread
CLAUDE LINK (BETA)
- Connect Claude to CodeAssist: Claude can read, edit, build and test the project you have open, from the new Connections page in the assistant
- Claude Code and Claude Desktop connect to the desktop app with one copied command
- Claude on the web or on a phone connects through a private link: turn on the link, sign in, and add it to Claude as a custom connector
- The link is a secret: keep it to yourself, and reset it from the same page if it leaks
- Claude is told how to use CodeAssist, and which tools only read and which ones change things
- Long tasks keep going: a build or test run that outlasts one request is handed back as a job Claude can check on
- Screenshots and previews reach Claude as images
- The status bar shows when Claude is connected and when it is working
- This is a beta: tell us what breaks
AI ASSISTANT
- The assistant can now create modules, remove them, make one module depend on another, and reload the project after a
module.tomlor build script changes. Before, a module it wrote by hand did not appear until the project was reopened - It can run your tests and read the result of each test
- It can add a dependency to a chosen scope, and remove one
- On Android the assistant keeps working when the app is not on screen, with a notification that says what it is doing and a Stop button
- A long model name no longer squeezes the chat header's buttons
FASTER ANDROID BUILDS
- A clean build of a Material app on a phone: about 106 s down to about 32 s
- Changing a string or a layout and running again: about 15 s down to about 5 s
- Adding a new resource no longer renumbers the others or rebuilds every library's
R - An edited resource no longer re-merges and recompiles every library's resources
- Linking resources against the Android framework is much faster
- Signing a Run build is faster: the keystore is unlocked once, and the old-style signature is skipped where the device does not need it
- Projects below minSdk 26 now use the prebuilt libraries too when you Run on your own device
- 31 more libraries arrive pre-built
- Library
Rclasses are now made the way Android Studio makes them. Code that read a library's resource through the wrongRgets a quick fix naming the right one
EDITOR
- Fixed:
import org.junit.Assert.*(and any star import of a Java class) left everyassertEquals,assertTrue,assertNull... marked Unresolved reference - Fixed:
assertEquals(1, 2)with JUnit 5 reported an overload ambiguity - Fixed:
import java.lang.Integer.*did not bring inparseInt,toHexStringand the other static methods (same forLong,Boolean,Character,String) - Java API that Android does not have is now explained instead of only being marked unresolved
- Report a false error: when a diagnostic is wrong, you can send it to us from the editor
- An image drawable referenced from the manifest resolves
TESTS
- JUnit 4 rules (
@Rule,@ClassRule) work in unit tests, includingExpectedExceptionand Hamcrest matchers - Tests that fake an interface with a
Proxyrun - A test with a backtick name (
`adds two numbers`) no longer fails the build
RUN
- The run console stays fast with very long output: it only lays out the lines on screen
- A library class CodeAssist cannot load itself is interpreted instead of failing the run
COMPOSE PREVIEW
- No longer leaks threads or listeners, and recomposes with far less memory churn
- Preview errors that happen between frames are now reported instead of silently doing nothing
- Many animating rows or a large lazy grid are no longer mistaken for a runaway recomposition
FIXES
- Toggling a setting no longer crashes the app
- After closing and reopening the app, plugin panels (the layout designer among them) no longer act as if no project is open
- Dragging a long-pressed view in the designer no longer slides the canvas along with it
- A status-bar band's label is placed beside a centred camera cutout instead of under it
PLUGINS
- A plugin can ask for the open files to be analyzed again (plugin API 3.5.0)