# Animite: an unofficial AniList client built as a Kotlin multi module app

> Animite is a personal Android client for AniList written in Kotlin with Compose, Apollo Kotlin and MVVM, organised into feature modules that reveal how far the project has moved beyond anime lists, and it still ships only alpha builds with iOS and MyAnimeList on the horizon.

**imashnake0/Animite** — AniList client for Android

- Repository: https://github.com/imashnake0/Animite
- Website: https://play.google.com/store/apps/details?id=com.imashnake.animite
- Stars: 523 · Forks: 31
- Language: Kotlin
- License: Apache-2.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/imashnake0-animite

## A single maintainer client for AniList with no official backing

Animite is described in the README as an unofficial Android, and potentially iOS, client for AniList, and potentially for MyAnimeList as well. The word unofficial is doing real work there. The project is not affiliated with AniList, and the repository is maintained by one person, imashnake0, whose name also appears in the copyright line of the Apache 2.0 licence file. What the reader gets is therefore a personal project with a public build badge and a Play Store listing, which is a different kind of artifact from a product with a release team behind it. The Play Store link is the homepage the project publishes, so the intended distribution channel is the store rather than a self hosted APK. The README also links a Discord server and a GitHub projects page, which are the visible surfaces for support. The stack section states that the app tries to make use of the latest libraries and APIs, which is a fair description of the choices that follow.

## MVVM as a stated choice rather than a derived one

The architecture paragraph is unusually blunt for a project README: the app uses Google's choice for app architecture, MVVM, since the author does not know any better. That is worth reading as design information rather than as an apology. It tells you there is no bespoke layering scheme to learn, that view models hold the screen state, and that the boundaries follow the standard split. The README also links a project for Animite and a set of shoutouts to other applications, AniHyou, Katana and AniTrend, which the author says were referred to while developing. Naming those three is a pointer to comparable Android clients rather than a claim about their internals. Taken together with the module layout, the picture is of a developer rebuilding the category for personal use and treating other apps as reference points, with the standard architecture pattern chosen because it was the documented default rather than after evaluating alternatives.

## The module layout shows how far the app has grown past anime lists

The top level directory listing is the clearest evidence of scope. Alongside the Gradle files, gradlew, gradle.properties and settings.gradle.kts, there are feature directories named anime/, manga/, media/, explore/, profile/, social/, vault/ and banner/, plus shared ones named api/, app/, core/, config/, navigation/, resources/ and settings/. Reading the names as a feature map: anime and manga are separate domains, media suggests a common abstraction underneath them, explore and profile are screens, social and vault are user facing areas, and banner looks like a display component rather than a domain. The presence of manga alongside anime is the most informative item, because a client for a single AniList feed often stops at anime. The repo also carries .idea/, .github/, CONTRIBUTING.md, renovate.json and a .gitignore. Nothing in the listing tells you how large any of these modules are, so the directory names indicate intent rather than proven depth.

## Apollo Kotlin and Coil carry the data and image layers

Networking is listed as Apollo Kotlin with Kotlin Coroutines, and images are handled by COIL. Apollo is a GraphQL client, which matches AniList being a GraphQL API, so the api/ module in the repository listing is most likely where the schema and the queries live. That choice has a consequence for anyone reading the code: the data layer is expressed as typed operations against a schema rather than as hand written HTTP calls, so the shape of the app's data access follows the schema the client generates. Coroutines handle the asynchronous side, which pairs with the MVVM structure because view models can expose state as flows. Coil covers image loading, and for an anime client that is not a trivial requirement, since cover art and banners are the visual centre of nearly every screen. The UI is described as made purely with Jetpack Compose, with assets produced in Figma, so there is no XML layout and no view binding layer to look for.

## Hilt, version catalogs and a repository that expects automated updates

Dependency injection is Hilt, and Gradle configuration uses version catalogs, which is the mechanism for declaring dependency versions in a single place rather than across build files. Both choices sit under a Gradle setup that includes a settings/ and config/ directory alongside the standard .kts build files. The presence of renovate.json is the more telling entry for anyone thinking about maintenance, because Renovate is a tool for keeping dependencies updated by opening automated pull requests. Combined with the .github/ directory, it suggests that routine library bumps are handled by automation rather than by hand. Forks of the idea, the trade-off is that an automated update pull request still needs a human to check that a new version of a Compose or Apollo release did not change behaviour, and this is a single maintainer project where that human is one person. The stack is therefore modern and its upkeep is partly mechanised, but not unattended.

## Alpha tagging is the honest signal about release readiness

The recent releases are v0.7.14-alpha02 on 2026-09-20, v0.7.14-alpha01 on 2026-09-18 and v0.7.13-alpha01 on 2026-09-14, and the version numbers sit below 1.0 with alpha qualifiers attached to each. The repository is not archived and the last push was on 2026-10-16, so the project is being worked on. The two alpha builds of the same version two days apart are the pattern that says an alpha label here marks a build shared for feedback rather than a feature preview, which is consistent with a single developer iterating. The repository does not document a release process, a changelog format or a stability policy, and the README does not say what an alpha build might break. For an adopter, the practical consequence is that the version tag alone tells you little, and the Play Store listing is a more useful guide to what is currently shipped than the tag names are.

## Where to get the app and what running it yourself involves

The README gives no build instructions and no release checklist, so there is no documented command sequence to copy. For an end user the route is the Play Store listing published as the project homepage, where the builds are distributed under the package name com.imashnake.animite. For a developer who wants to run the code instead, the repository ships a Gradle wrapper at the top level, gradlew alongside gradlew.bat for Windows, so a local build goes through that wrapper rather than a system Gradle installation. The Gradle setup itself is not trivial to reproduce, since it relies on version catalogs, meaning the declared dependency versions live in catalog files under the gradle/ and config/ directories rather than in the build scripts themselves. The README does not state a required JDK version or an Android SDK level, so the toolchain requirements have to be read out of the build files rather than from the documentation. Nothing in the repository suggests a separate backend is needed to run the app, which follows from the client talking to AniList over GraphQL.

## Where Animite is the wrong choice

Three boundaries are visible in the README itself. iOS and MyAnimeList are described as potential rather than present, so a user on an iPhone or a MyAnimeList subscriber has nothing to install. Second, there is no build or development documentation in the README, so a contributor cannot learn how to get the app running from it; the CONTRIBUTING.md file and the Gradle wrapper in the repository are the pointers, and the wrapper scripts gradlew and gradlew.bat are present at the top level, which means a local build is expected to go through Gradle rather than through an installed toolchain. Third, the app is an unofficial client, so there is no service level agreement behind it and no commitment to keep working if AniList changes its schema. For anyone whose anime tracking is a daily habit rather than a hobby, the alphas and the single maintainer are the reasons to look elsewhere first.

## Apache 2.0 licensing and what it asks of a distributor

The licence is Apache 2.0, recorded in the LICENSE.txt file at the repository root and reproduced in the README, with the copyright line reading Copyright 2022 imashnake0, so the project dates from 2022 even though the current releases are much newer. The header the README reproduces looks like this:

```
Copyright 2022 imashnake0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
 Apache 2.0 permits use, modification, distribution and sublicensing, and requires that copies carry the licence text, that modifications are marked as such, and that the patent grant is retained. If you fork the project or ship a derivative, the practical obligations are keeping the licence file with your distribution and stating the changes you made. The README also credits three libraries by name, boswelja/compose-markdown and mikepenz/markdown-renderer for Compose Markdown, and MaterialKolor by jordond, which indicates that description text and dynamic theme colours are handled by third party code rather than reimplemented.

## Conclusion

Animite suits an Android user who wants a focused AniList client and is comfortable with an alpha release from a single maintainer, or a developer who wants to read a Kotlin app organised around feature modules with an MVVM structure and a GraphQL client wired in. It does not suit anyone who needs a signed stable build, an iOS binary, MyAnimeList support, or a maintained project with a public support commitment, since all three are described only as potential. Before adopting it, check the release tag you install is v0.7.14-alpha02 or the build you actually get from the Play Store listing, and read the source of the api/ module to see how the AniList schema is mapped onto the app's own models.

## FAQ

### What is Animite and who makes it?

Animite is an unofficial Android client for AniList, maintained by imashnake0. The README describes iOS and MyAnimeList support as potential rather than available.

### Is Animite available on Google Play?

The project publishes a Play Store listing for com.imashnake.animite, and that listing is the homepage the README points at. The recent tags are alpha builds, v0.7.14-alpha02 being the latest listed.

### Which technologies does Animite use?

The README lists MVVM for architecture, Apollo Kotlin with Kotlin Coroutines and COIL for networking and images, Jetpack Compose for the UI with assets made in Figma, Hilt for dependency injection, and Gradle version catalogs for dependency versions.

### Does Animite support manga and MyAnimeList?

The repository has a manga module alongside the anime one, and MyAnimeList support is described as potential. The README does not say when or whether MyAnimeList support will ship.

### Under which licence is Animite released?

Apache 2.0, held in the LICENSE.txt file at the repository root with the copyright line Copyright 2022 imashnake0. Distributing a derivative requires keeping the licence text and marking modifications.

## Sources

- [imashnake0/Animite on GitHub](https://github.com/imashnake0/Animite)
- [License: Apache-2.0](https://github.com/imashnake0/Animite/blob/main/LICENSE)
- [Project website](https://play.google.com/store/apps/details?id=com.imashnake.animite)
- [README](https://github.com/imashnake0/Animite/blob/main/README.md)
- [Releases](https://github.com/imashnake0/Animite/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/imashnake0-animite
