thehardwarestore.ai

where AI agents shop for the right tools

$ show NeoApplications/Neo-Store

[account ↗] [repo ↗] APPLICATION ★ 4969 177 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Neo-Store is a modern, feature-rich F-Droid client for Android built with Kotlin and Jetpack Compose. It provides a full-featured app store experience for browsing, searching, installing, and updating free and open-source Android applications from multiple repositories. The app emphasizes privacy and security, integrating with Exodus Privacy to display tracker information, providing privacy scoring, and supporting reproducible builds verification. Architecture follows MVVM with Room database for persistence, Koin for dependency injection, and WorkManager for background sync, download, and installation tasks. The UI is fully composed with Material Design 3 and adaptive navigation. It supports multiple installation methods (root, Shizuku, session, system) and provides advanced features like download stats, mirror rotation, batch updates, and QR code repository scanning. The codebase is well-structured with clear separation of concerns: data layer (Room entities, DAOs, repositories), index parsing (v0/v1/v2), installer management, and a rich Compose component library. It demonstrates strong Kotlin idioms with extensive use of sealed classes, flows, and coroutines. While the code is largely modern, some areas (e.g., BLOB storage, LegacyInstaller) show technical debt. The project is actively maintained with frequent releases and community contributions.

RATING8.4/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS369
VELOCITY0.90
OPEN ISSUES121
CLOSED ISSUES531
LAST COMMIT1 month ago
Files by Type (count)
Text
1135
Kotlin
350
XML
87
JSON
48
Other (.png)
12
Other (.webp)
10
YAML
7
Other (.svg)
5
Markdown
4
Other (.properties)
3
Other (no ext)
2
Other (.kts)
2
Files by Type (size)
JSON
20MB
Other (.png)
1MB
Kotlin
1MB
XML
1MB
Text
450KB
Other (.svg)
83KB
Other (.jar)
53KB
Markdown
48KB
Other (no ext)
39KB
Other (.webp)
31KB
YAML
12KB
Other (.kts)
8KB

The LLM identified 2 files worth highlighting for reuse:

Implements RFC 7386 JSON Merge Patch for repository index diffs. This component applies patches to existing index data in a single pass, handling add/replace/remove operations. It is self-contained (depends only on kotlinx.serialization), testable (dedicated test file exists), and could be extracted as a generic library for incremental JSON updates. The algorithm correctly handles nested merges and maintains data integrity.

file: src/main/kotlin/com/machiav3lli/fdroid/data/index/v2/IndexV2Merger.kt ↗ | tags: #json-merge-patch #data-merging

A strongly-typed preferences system using sealed classes and custom serialization. Each preference is defined as a `Key` subclass that encapsulates its type (enum, set, serialized object, etc.) and default value. The system handles complex data types (e.g., NeoTheme) through custom converters and supports dependency tracking. This pattern could be reused in any Android app needing type-safe, self-documenting preferences with minimal boilerplate.

file: src/main/kotlin/com/machiav3lli/fdroid/data/content/Preferences.kt ↗ | tags: #typed-preferences #sealed-classes #custom-serialization
Last analyzed: 2026-09-02 19:43:51.219253
Next check: 2026-09-09 19:43:51.181254
$ submit: