A build about the filter, bookmarks and profile: genres can be searched and combined, bookmarks get rating sort and an announcement filter, and updates now arrive without Cloudflare — in Russia too.
Filter and search
- NewFilter options open in a sheet with search — no more scanning long lists for a genre or studio.
- NewGenre modes: “Any”, “All selected” and “Without selected” — with a hint about what the filter will show.
- ImprovedThe filter warns when too many genres are selected and shows when it is active.
- Fixed“Popular” no longer mixes up its tabs: Ongoing, Movies and OVA show what they say instead of the whole catalog and announcements.
Bookmarks
- NewRating sort, descending and ascending.
- NewAnnouncement filter in Favorites and Plans: announcements only or none.
- ImprovedCollection cards keep a 16:9 ratio and no longer get squashed on tablets.
Profile and collections
- NewTapping the badge by a nickname shows its name.
- NewA deleted profile shows the original's placeholder and, if it was a friend, a “Remove from friends” button.
- NewIf your account is scheduled for deletion, your profile shows the deletion date and a way to cancel.
- NewAccount health: a post returned by a moderator for revision shows its deadline and a “To the post” button.
- NewCollections: character counters for the title (60) and description (5000), a comments button in the header.
- RemovedThe Instagram field is removed from profile socials, like in the original.
Links and updates
- SecurityBefore opening a link to another site, the app asks first.
- ImprovedThe release page rating shows two decimals.
- ImprovedUpdate checks go to xartlife.app without Cloudflare — updates reach Russia too.
A build about reliability: errors are explained in words instead of an English stack trace, images live on disk, and links and updates open only from where they should.
Clearer
- NewErrors now show the reason — “No network connection”, “Network timeout”, “Server error (code 502)” — instead of an English exception text. In all three languages.
- NewLinks in comments are tappable. The send button lights up from 5 characters and the field stops at 720 — the server's limits; before, it simply refused.
- FixedPlurals and dates follow the interface language: no more “21 subscriber” in English, and voice search listens in the chosen language.
- ImprovedIf the next page of a list fails, a “Retry” row appears at the bottom instead of nothing or a full-screen error. Loading more starts 10 cards before the end, like the original.
Images and downloads
- NewPosters and avatars are cached on disk and no longer re-downloaded after every launch. “Cache limit” now actually limits, and clearing shows the freed size.
- FixedThe offline grid shows the downloaded release's poster.
- FixedTapping a downloaded episode offers to delete the copy instead of downloading it again from itself. Downloads no longer land in the watch history.
- FixedfMP4 streams now say plainly that they can't be downloaded instead of producing a broken file.
Security
- ImprovedLinks from other people's profiles, notes and comments open only as web addresses:
intent://, market:// and files can no longer be opened with one tap. - ImprovedThe update APK is downloaded only from our hosts and into internal storage, where it can't be swapped.
- ImprovedThe sign-in token no longer ends up in crash reports or Android backups.
Fixes
- FixedVideos in the profile tab open on tap.
- FixedThe home and release pages no longer touch a closed screen after a network reply — leaks and rare crashes are gone.
- ImprovedThe downloads folder is now xartlife_downloads; the old one moves over by itself on first launch, nothing is lost.
A build about looks and feel: screens moved onto the original's tokens, search finally became a single component, and the desktop player behaves like a player instead of a phone screen. Plus a few defects that used to break things silently.
Desktop player
- FixedA click no longer hides the controls — it toggles playback, like in a browser. The bar appears on mouse move and hides when idle.
- FixedThe keyboard no longer goes silent after you press a button inside the player.
- NewYouTube-style keys: space and K to pause, J/L and arrows to seek, M to mute, digits 0–9 to jump, “,” and “.” for speed, F and F11 for fullscreen.
Appearance
- ImprovedScreens moved onto the original's tokens: hand-picked numbers are down from 2070 to 184.
- FixedSearch is now a single component: the same height and insets on every tab instead of five separate implementations.
- NewThe release page gets a two-pane layout on tablets in landscape.
Fixes
- FixedFriend requests were read the wrong way round on half the profiles.
- FixedThe age filter searched the wrong band: “18+” returned 16+, and real 18+ was unreachable.
- FixedA dismissed hint no longer flashes every time the screen opens.
- FixedLinks in release notes open over http and https only.
This build merges three parallel branches: native picture-in-picture on iOS, a full offline mode, and a large internal rebuild. Plus a fix for the Android release build not starting, and icons corrected against the original.
Offline
- NewWith no network the home screen shows a grid of downloaded releases instead of empty lists.
- NewDownload queue: episodes download strictly one at a time, with per-episode progress.
- NewPosters are cached on device, so the offline list is no longer grey.
- NewA “Force offline” switch in the debug menu — test the behaviour without turning Wi-Fi off.
Player
- NewPicture-in-picture on iOS — native, through the system player: video keeps playing in a floating window.
Interface
- FixedTablets: the side rail now appears at 600 dp portrait / 960 dp landscape, matching the original. A phone in landscape used to get a half-screen rail.
- ImprovedThe selected navigation item got its pill indicator back, and a hairline separator sits above the bar — both exist in the original and were lost in the port.
- Fixed32 icons did not match the original: the bookmark was filled instead of outlined, the padlock was misshapen, and reference files held the wrong glyphs entirely. All corrected against the APK resources.
- ImprovedSome icons now come from the Material font instead of image assets — a smaller app that draws them faster.
Stability
- FixedThe Android release build would not start — the launcher activity was looked up in the wrong package. The debug build worked fine, which is why this lived unnoticed.
- FixedThe splash showed “9.0 BETA 11”, a version of a different app. Both splash and settings now read the real build version.
- FixedThe Google sign-in error called the app by the wrong name.
Under the hood
- ImprovedThe code is split into seven layers with a boundary check on every build: screens no longer talk to the network or the database directly. Over five thousand unreachable lines removed.
- ImprovedInterface strings moved into translation files. The language is pinned to Russian for now — the translation does not cover the whole interface yet.
- ImprovedVersioning switched to year.month.release, so the number itself shows how fresh a build is.
Fixed Kodik and AniLibria playback for the new XartLife servers and upgraded the player: hotkeys, volume and seeking.
Playback
- FixedKodik playback works again — added the new XartLife mirrors (old links are still supported).
- ImprovedAniLibria now uses a new episode source — qualities load more reliably.
Player
- NewHotkeys: Space/K — pause, ←/→ — ±10s, ↑/↓ — volume, M — mute, Esc — exit.
- NewA volume control right in the player (on web and desktop).
- NewHold Space to speed up playback — like press-and-hold on the screen.
- FixedFixed drag seeking across the video and on the progress bar.
Big update: offline video is now assembled into
MP4 and plays on any device. Details in
Telegram.
Downloads & offline
- NewOffline episodes are now saved straight to MP4 — playback works on your phone and other devices alike (no more “format not supported” error).
- NewDownload and assembly progress is shown right in the episode list — tap to cancel.
- NewAfter a download starts, a “Go to downloads” button appears.
- FixedDownload errors are now surfaced immediately as a toast instead of failing silently.
- ImprovedTechnical URLs (frame.php, m3u8, etc.) are no longer shown — they aren't needed while watching.
Stability & diagnostics
- NewCrash reporting (Sentry) is now integrated — bugs are found and fixed faster.
- ImprovedAdded timeouts to download network requests — a stuck segment no longer blocks re-downloading.
App & branding
- NewThe app version now shows the build (commit) id — handy when reporting an issue.
- ImprovedThe default server is now the original api.anixart.app. If you'd already picked a custom server, your choice is kept.
- ImprovedAll community links now point to Telegram; “Report a bug” opens our channel.
- FixedRemoved leftover service files that contained user data.
iOS build
- FixedFixed the iOS build (a Sentry × Swift Package Manager conflict).
Stability
- FixedFixed list-loading races across 8 screens — no more duplicates or stale data on refresh.
- FixedThe player no longer hangs on an endless spinner when switching episodes; added force-landscape on unlock.
- FixedThe notification badge is recalculated when you return to the screen instead of on a timer.
- FixedFixed status percentages in collections (no crashes on empty data).
Code quality
- NewAdded unit tests for core logic, with that logic extracted out of the widgets.
API
- FixedFixed request bodies for profile and social edits (camelCase) — changes now actually save.
Offline playback
- FixedFixed downloaded HLS playback on phones — a local loopback server and a byte-range playlist.
Startup
- ImprovedFaster app startup: event-driven readiness instead of polling every 100 ms.
The year before the first release, July 2025 to June 2026. No per-version notes were kept back then — here is what was built, in one piece.
What was built before 1.0
- NewThe app was rewritten from Android to Flutter: one codebase for Android, iOS, Windows, macOS and web.
- NewCatalogue, search, filters and collections; a release page with description, screenshots, relations and comments.
- NewA player with Kodik and AniLibria sources, dub and quality selection, opening skip, resume from where you stopped.
- NewProfile, bookmark lists, collections, friends, notifications and the feed.
- NewDownloading episodes to the device and watching without a network.