Vetro

Verified safeOpen sourceExclusive
No reviews reviews
6
downloads
8.0
android

AI summary

Curious what AI thinks about this app? Ask for a short summary highlighting what it does and any noteworthy details.

About this app

MAList is a simple and flexible app for creating lists. Originally developed for anime tracking, it can also be used for TV shows, movies, or even shopping lists.

✨ Features

📝 Core Functionality

- Create lists for any type of content - Add custom titles and descriptions - Episode/item counter - 1–5 star rating system - Favorites system

👉 Gestures

- Swipe to delete with confirmation - Swipe to add items to Favorites

🎨 Interface & Customization

- Fully redesigned interface - Light/Dark theme switching - Language switching: - English - Russian - Updated typography with new fonts - Dozens of new icons

✨ Visuals & UX

- Reworked animations - New visual effects - Improved haptic feedback (vibration and tactile response) - One UI + iOS-inspired design with large headers, rounded corners, and glass menus

🔄 Updates & Stability

- In-app update system - Improved release tracking - Improved statistics menu - Fixed search functionality - Numerous bug fixes and internal optimizations

💾 Storage & Privacy

- 100% local storage - No accounts, no cloud, no tracking - All data and images are stored locally on your device

The app creates its own folder: Documents/MyAnimeList

All data is stored locally in JSON format.

📂 Permissions

MAList requires the following permission:

- MANAGE_EXTERNAL_STORAGE Used to create and manage the app's local database and image storage.

What's new

vv3.0.6-BetaMar 4, 2026
  • 🧪 v3.0.6-Beta Massive architectural, visual and infrastructure refactor. Clean Architecture. Strict MVI. Real performance.
  • 🏗 1. Clean Architecture Refactor Layer Isolation
  • UI fully isolated from Domain layer Introduced SaveAnimeParams (DTO) SaveAnimeUseCase no longer depends on AddEditUiState ViewModel Purification Removed Context and File from ViewModels Introduced ImageStorageRepository abstraction No more direct Android SDK access (Environment, external storage, Vetro folder, etc.) True Domain Layer Heavy business logic moved from ViewModels into UseCases:
  • SaveAnimeUseCase UpdateCommentUseCase GetAnimeForEditUseCase Includes:
  • UUID generation Database operations Data validation logic
  • 🔄 2. State Management & Strict MVI Side Effects (UDF)
  • Removed callback anti-patterns (onSuccess: () -> Unit) Introduced Channel<AddEditEffect> for one-time events: NavigateBack ShowError Screen Decoupling AddEditScreen fully decoupled from HomeViewModel Lists now update reactively via SQLDelight asFlow() Removed Artificial Delays Deleted delay(600) hacks from FAB clicks UI now reacts instantly to real isLoading state
  • 🖼 3. Jetpack Compose & Performance (Target: 120 FPS)
  • Critical Anti-pattern Removed Deleted remembered @Composable lambda list from AddEditScreen Replaced with proper declarative AnimatedFormRow Restored correct recomposition behavior Prevented potential memory leaks UI Purity Removed java.io.File checks from Compose layer Coil now receives absolute path String directly UI components are now fully dumb & fast Glassmorphism Optimization (Haze) Blur radius reduced: 40.dp → 20.dp Introduced custom Modifier.safeHaze(): Hardware accelerated blur on Android 12+ Elegant translucent fallback on older devices Significant GPU load reduction Shared Elements Smoothness Added skipToLookaheadSize() in AnimeCard Cards no longer "jump" after returning from Details screen Image Rendering Enabled crossfade(true) in all AsyncImage usages Images now fade in smoothly instead of popping pixel-by-pixel XML Removal Deleted legacy gal.xml and krestic.xml Replaced with ImageVector (SyncIcons) Removed XML parsing overhead (I/O) during overlay rendering
  • 🛠 4. Infrastructure, Safety & Code Quality
  • Absolute Testability Introduced IdGenerator Domain layer is now fully deterministic 100% unit-testable business logic Permission Abstraction Introduced PermissionChecker Removed Build.VERSION & Environment checks from SplashViewModel Idiomatic Kotlin Replaced legacy try/catch blocks with Result API runCatching { ... }.onFailure { ... } Applied across project (including HomeViewModel) Dependency Injection Cleanup (Koin) Removed legacy singleton (companion object instance) from DropboxSyncManager Fully constructor-injected via Koin graph Cleaner, safer DI configuration

About this version

Version
v3.0.6-Beta (1)
Size
20.72 MB
Requires Android
8.0
Target SDK
26
Architecture
arm64-v8a, armeabi-v7a, x86, x86_64
Downloads
6
Updated
Mar 4, 2026
Package
com.example.myapplication

Ratings & reviews

0 ratings
  • 5
    0
  • 4
    0
  • 3
    0
  • 2
    0
  • 1
    0

Write a review

Tap a star to rate this app