{"id":15294671,"url":"https://github.com/nhaarman/acorn","last_synced_at":"2025-04-03T03:10:29.246Z","repository":{"id":51052797,"uuid":"137459947","full_name":"nhaarman/acorn","owner":"nhaarman","description":"Mastering Android navigation :chipmunk:","archived":false,"fork":false,"pushed_at":"2023-05-06T12:12:30.000Z","size":5512,"stargazers_count":182,"open_issues_count":17,"forks_count":7,"subscribers_count":8,"default_branch":"1.x","last_synced_at":"2025-04-02T21:35:43.096Z","etag":null,"topics":["android","kotlin","modularity","navigation"],"latest_commit_sha":null,"homepage":"https://nhaarman.github.io/acorn","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nhaarman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-15T08:10:41.000Z","updated_at":"2025-03-22T23:21:45.000Z","dependencies_parsed_at":"2025-01-16T11:09:55.318Z","dependency_job_id":"8e605b79-d69c-4632-b1be-c382f39b598c","html_url":"https://github.com/nhaarman/acorn","commit_stats":{"total_commits":325,"total_committers":3,"mean_commits":"108.33333333333333","dds":0.006153846153846176,"last_synced_commit":"859121ce76cb5a6d2998bf978ea06adca5b00b24"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhaarman%2Facorn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhaarman%2Facorn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhaarman%2Facorn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhaarman%2Facorn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nhaarman","download_url":"https://codeload.github.com/nhaarman/acorn/tar.gz/refs/heads/1.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246927835,"owners_count":20856198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","kotlin","modularity","navigation"],"created_at":"2024-09-30T17:05:49.115Z","updated_at":"2025-04-03T03:10:29.219Z","avatar_url":"https://github.com/nhaarman.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Acorn\n\nAcorn is a carefully designed library that brings true modularity to your \npresentation layer and allows you to have full control over your transition\nanimations.\n\nActivities and Fragments restrict application development in such a way that\ncreating modular, testable components becomes a difficult thing to do.\nFurthermore, implementing transition animations to visualize going from one \nscreen to another with either of these components is non trivial.\n\nAcorn provides modularity by grouping specific sets of screens together as \nbuilding blocks, building up your application into several composable flows.  \nThe view layer is decoupled from navigation and reacts to screen changes, giving\nyou full control over transition animations.\n\n![](/docs/src/orchid/resources/media/acorn_diagram_extended.svg)\n\nYou can read more about Acorn on the\n[documentation website](https://nhaarman.github.io/acorn).\n\n## 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)\n\nAcorn is hosted on Maven Central.\n\nTo get started quickly, you can include the `ext-acorn-android` dependency, \nwhich includes the necessary base to create an app using Acorn.\n\n```groovy\nimplementation \"com.nhaarman.acorn.ext:acorn-android:x.x.x\"\n```\n\nIf you use `androidx.appcompat`, you can use `ext-acorn-android-appcompat` instead:\n\n```groovy\nimplementation \"com.nhaarman.acorn.ext:acorn-android-appcompat:x.x.x\"\n```\n\nUsing the dependencies above will transitively pull all other dependencies you\nneed as well.  \n\nFor more advanced configuration, see \n[Setup](https://nhaarman.github.io/acorn/wiki/setup.html).\n\n## Getting started\n\nAcorn has several [sample projects](samples) introducing the different concepts.\nYou can also visit the [Getting started](https://nhaarman.github.io/acorn/wiki/getting_started/)\ndocumentation page for more information.\n\n## Building Acorn\n\nAcorn is built with Gradle.\n\n - Running `./gradlew test` will run all JVM tests;\n - Running `./gradlew pitest` will generate [PIT testing reports](http://pitest.org/) for JVM modules;\n - Running `./test` will run the entire test suite, you will need to have a connected Android device with API 23+.\n - Running `./gradlew publishToMavenLocal` will install a copy of all the libraries in your local maven repository.\n \n### Versioning\n\nAcorn follows [semantic versioning](https://semver.org/), and will determine the\nversion number based on [git tags](.ops/git.gradle).\n\n### Linter\n\nAcorn uses [ktlint](https://github.com/shyiko/ktlint) which is enforced in CI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhaarman%2Facorn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhaarman%2Facorn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhaarman%2Facorn/lists"}