search-repository

Coordinate seven Android repositories with a singleton and reactive StateFlow.

49|3|Updated Nov 7, 2025
One-click install
npx skills add https://github.com/mrndstvndv/Search --skill search-repository
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: search-repository
Source: https://github.com/mrndstvndv/Search/tree/main/.opencode/skill/search-repository
Command: npx skills add https://github.com/mrndstvndv/Search --skill search-repository

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Centralizes and standardizes access to multiple app data repositories (ProviderSettings, ProviderRanking, Alias, FileSearch, Contacts, RecentApps, PinnedApps) using a singleton pattern and reactive StateFlow for UI bindings.

Core Features & Use Cases

  • Unified repository layer coordinating seven repositories across settings, ranking, alias management, file search, contacts, recents, and pinned items.
  • Implements a double-checked locking singleton to safely initialize heavy repositories.
  • Provides StateFlow-based reactive data streams for UI components and composables.

Quick Start

Query and manage the unified repository layer to read and write provider and app state across modules.

Frequently Asked Questions about search-repository

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I centralize multiple Android repository data sources using a singleton?

Centralize Android repository data by coordinating seven repositories through a unified data layer. This singleton pattern uses double-checked locking to safely initialize heavy repositories and StateFlow to provide reactive UI bindings.

How does StateFlow work for reactive UI binding in a Kotlin repository architecture?

StateFlow provides reactive data streams for UI components by exposing repository state changes directly to composables. This Kotlin-based architecture binds UI elements to data updates automatically, ensuring synchronized rendering across the app's modules.

Can I use double-checked locking for repository initialization in Android apps?

Double-checked locking initializes heavy repositories safely in Android apps by verifying instance existence before and after synchronization. This approach prevents concurrent thread access from creating duplicate singleton instances during app startup.

What is the best way to coordinate settings, contacts, and recent apps data in Android?

Coordinate settings, contacts, and recent apps data by standardizing access through a unified repository layer. This approach manages multiple distinct repositories centrally, ensuring consistent read and write operations across all app modules.

When do I need a unified repository layer for Android app state management?

A unified repository layer is needed when an Android app requires centralized management of settings, rankings, aliases, file search, contacts, recent apps, and pinned items. It standardizes data access and provides reactive streams for UI updates.

Are there limitations to using a singleton pattern for multiple repositories in Kotlin?

Singleton patterns for multiple repositories in Kotlin require careful double-checked locking to avoid thread contention during initialization. This approach suits centralized state management but requires StateFlow integration to maintain reactive UI responsiveness.