Personal project · iOS, Android, and web

AniVoice: following an anime voice from one character to the next

I built AniVoice to make the relationships between anime characters, voice actors, and their other roles easy to search and explore.

In short: AniVoice has used React Native and TypeScript from the beginning. One shared product now runs on iOS, Android, and web, with list performance, caching, and continuous refinement shaping the work.

Role
Mobile and web developer
Platforms
iOS, Android, and web
Stack
React Native and TypeScript
Status
Available on three platforms
AniVoice app screen showing anime characters and the voice actors connected to them

The useful question is a relationship, not a single search result

I often recognize a character's voice before I can place the actor. Looking up one name is only the start. The more interesting path continues through the other characters that actor has voiced and the anime connected to those roles.

  1. Character
  2. Voice actor
  3. Other roles
  4. Anime to discover

Designing for discovery without turning the product into a database dump

The information model is dense: characters connect to actors, actors connect to roles, and roles connect to anime. The interface has to keep those relationships clear while still feeling lightweight enough for casual browsing.

Performance became part of the product design

Long lists

Render only what matters

Character, actor, and role lists can become long and image-heavy. Efficient list rendering keeps discovery responsive instead of making scale visible as lag.

Caching

Avoid repeating work

Caching commonly revisited data makes browsing feel immediate and reduces unnecessary loading as people move between connected records.

One product

Consistent across platforms

React Native and TypeScript provide a shared foundation across iOS, Android, and web without treating every platform as a separate product.

Continuous improvement is the real release plan

AniVoice was not finished at its first store release. I continue to refine navigation, grouping, caching, list behavior, and the small interactions that make following a chain of relationships easier.

The outcome is deliberately practical: a working product across three platforms that answers a question I regularly had and gives other anime fans a faster path from recognition to discovery.

App Store ↗Google Play ↗Web app ↗

What I learned

Designing for exploration is different from designing for lookup. The relationship model—and how the interface preserves a person's place inside it—matters more than any one screen.

Have a problem worth solving?

Tell me what you are trying to build and where it is getting difficult.

Get in touchLinkedIn ↗