Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nhaarman/acorn
Mastering Android navigation :chipmunk:
https://github.com/nhaarman/acorn
android kotlin modularity navigation
Last synced: 8 days ago
JSON representation
Mastering Android navigation :chipmunk:
- Host: GitHub
- URL: https://github.com/nhaarman/acorn
- Owner: nhaarman
- License: apache-2.0
- Created: 2018-06-15T08:10:41.000Z (over 6 years ago)
- Default Branch: 1.x
- Last Pushed: 2023-05-06T12:12:30.000Z (over 1 year ago)
- Last Synced: 2024-10-31T09:03:50.293Z (8 days ago)
- Topics: android, kotlin, modularity, navigation
- Language: Kotlin
- Homepage: https://nhaarman.github.io/acorn
- Size: 5.26 MB
- Stars: 181
- Watchers: 9
- Forks: 7
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Acorn
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.![](/docs/src/orchid/resources/media/acorn_diagram_extended.svg)
You can read more about Acorn on the
[documentation website](https://nhaarman.github.io/acorn).## Easy setup [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.nhaarman.acorn/acorn/badge.png)](https://maven-badges.herokuapp.com/maven-central/com.nhaarman.acorn/acorn)
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.```groovy
implementation "com.nhaarman.acorn.ext:acorn-android:x.x.x"
```If you use `androidx.appcompat`, you can use `ext-acorn-android-appcompat` instead:
```groovy
implementation "com.nhaarman.acorn.ext:acorn-android-appcompat:x.x.x"
```Using the dependencies above will transitively pull all other dependencies you
need as well.For more advanced configuration, see
[Setup](https://nhaarman.github.io/acorn/wiki/setup.html).## Getting started
Acorn has several [sample projects](samples) introducing the different concepts.
You can also visit the [Getting started](https://nhaarman.github.io/acorn/wiki/getting_started/)
documentation page for more information.## Building Acorn
Acorn is built with Gradle.
- Running `./gradlew test` will run all JVM tests;
- Running `./gradlew pitest` will generate [PIT testing reports](http://pitest.org/) for JVM modules;
- Running `./test` will run the entire test suite, you will need to have a connected Android device with API 23+.
- Running `./gradlew publishToMavenLocal` will install a copy of all the libraries in your local maven repository.
### VersioningAcorn follows [semantic versioning](https://semver.org/), and will determine the
version number based on [git tags](.ops/git.gradle).### Linter
Acorn uses [ktlint](https://github.com/shyiko/ktlint) which is enforced in CI.