<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/anvil-double-o-seven-th2sjllmc" -->

---
title: Anvil: Double O Seven | daily.dev
description: Anvil, a small reactive UI library for Android built in pure Java and inspired by React.js, gets a 0.0.7 release. New in this version: a config() helper for...
canonical: https://daily.dev/posts/anvil-double-o-seven-th2sjllmc
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Anvil: Double O Seven | daily.dev
og:description: Anvil, a small reactive UI library for Android built in pure Java and inspired by React.js, gets a 0.0.7 release. New in this version: a config() helper for...
og:url: https://daily.dev/posts/anvil-double-o-seven-th2sjllmc
og:image: https://api.daily.dev/og/posts/th2sJllmC.png
og:image:alt: Anvil: Double O Seven
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Anvil: Double O Seven

**[zserge's blog](https://daily.dev/sources/zserge)** · 4 min read · 0 upvotes · 0 comments

## Summary

Anvil, a small reactive UI library for Android built in pure Java and inspired by React.js, gets a 0.0.7 release. New in this version: a config() helper for working with real views (useful for SurfaceViews, TextureViews, or gradual migration to Anvil), a sugarized syntax generated from Android SDK view classes (e.g. linearLayout(), button()), support for RelativeLayout in the virtual layout, the ability to call Anvil.render() from any thread rather than just the UI thread, and an experimental States API for managing two-state finite state machines to simplify chained view animations.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://zserge.com/posts/anvil-0.0.7>

## Questions this post answers

### How do I use RelativeLayout with the Anvil reactive UI library for Android?

Anvil version 0.0.7 adds RelativeLayout support to its virtual layout system. You wrap RelativeLayout.class in a v() call and use align() modifiers such as BELOW, ALIGN_PARENT_LEFT, ALIGN_PARENT_RIGHT, and LEFT_OF on child views' size() declarations to position them relative to sibling view IDs.

_Developers wiring up Android layouts can track library changes like this via daily.dev._

### Can I call Anvil.render() from a background thread in the Anvil Android UI library?

Yes, as of version 0.0.7 Anvil.render() can be called from any thread, not just the UI thread. This is one of the most notable improvements in that release, simplifying background task code that modifies data reflected in the UI without needing to worry about the Context.

_daily.dev helps Android developers stay on top of library updates that affect threading rules._

### What is the config() helper in the Anvil Android library used for?

The config() helper, introduced in Anvil 0.0.7, lets developers work with real Android views instead of the virtual layout when needed, such as for SurfaceViews or TextureViews where setting attributes alone is insufficient. It also enables gradual migration to Anvil by keeping view configuration, like binding click listeners, in existing Java methods.

_Teams migrating legacy Android UI code gradually can follow tooling changes like this on daily.dev._

## Similar posts on daily.dev

- [Building Premium Android Experiences at Google I/O ‘26](https://daily.dev/posts/building-premium-android-experiences-at-google-i-o-26-c1h8lgtze) · Android Developers Blog · 0 upvotes · 0 comments
- [After Seven Years, Google Reinvents Android Navigation with Jetpack Navigation 3](https://daily.dev/posts/after-seven-years-google-reinvents-android-navigation-with-jetpack-navigation-3-nejyv02jp) · InfoQ · 1 upvotes · 0 comments
- [Uno Platform 6.7: Your Apps on TVs, Cars, and Watches, Plus More Efficient Skia Rendering](https://daily.dev/posts/uno-platform-6-7-your-apps-on-tvs-cars-and-watches-plus-more-efficient-skia-rendering-fygrtccnk) · Uno Platform · 11 upvotes · 1 comments

---

Tags: [#java](https://daily.dev/tags/java), [#android](https://daily.dev/tags/android), [#kotlin](https://daily.dev/tags/kotlin)

[View this post on daily.dev](https://daily.dev/posts/anvil-double-o-seven-th2sjllmc)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Anvil: Double O Seven","url":"https://daily.dev/posts/anvil-double-o-seven-th2sjllmc","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/anvil-double-o-seven-th2sjllmc"},"datePublished":"2026-08-23T10:20:14.339Z","dateModified":"2026-08-23T10:21:12.478Z","description":"Anvil, a small reactive UI library for Android built in pure Java and inspired by React.js, gets a 0.0.7 release. New in this version: a config() helper for...","image":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","thumbnailUrl":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","isAccessibleForFree":true,"articleSection":"zserge's blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"zserge's blog","logo":"https://media.daily.dev/image/upload/s--KQnFBOIT--/f_auto,q_auto/v1787480407/logos/zserge","url":"https://daily.dev/sources/zserge"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/anvil-double-o-seven-th2sjllmc","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"java,android,kotlin","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"zserge's blog","item":"https://daily.dev/sources/zserge"},{"@type":"ListItem","position":3,"name":"Anvil: Double O Seven"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/anvil-double-o-seven-th2sjllmc#faq","mainEntity":[{"@type":"Question","name":"How do I use RelativeLayout with the Anvil reactive UI library for Android?","acceptedAnswer":{"@type":"Answer","text":"Anvil version 0.0.7 adds RelativeLayout support to its virtual layout system. You wrap RelativeLayout.class in a v() call and use align() modifiers such as BELOW, ALIGN_PARENT_LEFT, ALIGN_PARENT_RIGHT, and LEFT_OF on child views' size() declarations to position them relative to sibling view IDs. Developers wiring up Android layouts can track library changes like this via daily.dev."}},{"@type":"Question","name":"Can I call Anvil.render() from a background thread in the Anvil Android UI library?","acceptedAnswer":{"@type":"Answer","text":"Yes, as of version 0.0.7 Anvil.render() can be called from any thread, not just the UI thread. This is one of the most notable improvements in that release, simplifying background task code that modifies data reflected in the UI without needing to worry about the Context. daily.dev helps Android developers stay on top of library updates that affect threading rules."}},{"@type":"Question","name":"What is the config() helper in the Anvil Android library used for?","acceptedAnswer":{"@type":"Answer","text":"The config() helper, introduced in Anvil 0.0.7, lets developers work with real Android views instead of the virtual layout when needed, such as for SurfaceViews or TextureViews where setting attributes alone is insufficient. It also enables gradual migration to Anvil by keeping view configuration, like binding click listeners, in existing Java methods. Teams migrating legacy Android UI code gradually can follow tooling changes like this on daily.dev."}}]}
```

