Acorn is a carefully designed library that brings true modularity to your presentation layer and allows you to have full control over your transition animations.
Activities and Fragments restrict application development in such a way that creating modular, testable components becomes a difficult thing to do. Furthermore, implementing transition animations to visualize going from one screen to another with either of these components is non trivial.
Acorn provides modularity by grouping specific sets of screens together as building blocks, building up your application into several composable flows.
The view layer is decoupled from navigation and reacts to screen changes, giving you full control over transition animations.
You can read more about Acorn on the documentation website.
Acorn is hosted on Maven Central.
To get started quickly, you can include the
ext-acorn-android dependency, which includes the necessary base to create an app using Acorn.
If you use
androidx.appcompat, you can use
Using the dependencies above will transitively pull all other dependencies you need as well.
For more advanced configuration, see Setup.
Acorn is built with Gradle.
./gradlew testwill run all JVM tests;
./gradlew pitestwill generate PIT testing reports for JVM modules;
./testwill run the entire test suite, you will need to have a connected Android device with API 23+.
./gradlew publishToMavenLocalwill install a copy of all the libraries in your local maven repository.
Warning! Acorn's API may not have stabilized yet, and breaking API changes may occur until 1.0 is reached.
Acorn uses ktlint which is enforced in CI.