Agent Skills: App Architecture Skill

MVVM pattern, Clean Architecture, Repository pattern, dependency injection, SOLID principles.

mvvmclean-architecturerepository-patterndependency-injectionsolid-principles
architectureID: pluginagentmarketplace/custom-plugin-android/architecture

Skill Files

Browse the full folder contents for architecture.

Download Skill

Loading file tree…

skills/architecture/SKILL.md

Skill Metadata

Name
architecture
Description
MVVM pattern, Clean Architecture, Repository pattern, dependency injection, SOLID principles.

App Architecture Skill

Quick Start

MVVM Pattern

@HiltViewModel
class UserViewModel @Inject constructor(
    private val repository: UserRepository
) : ViewModel() {
    private val _state = MutableLiveData<UiState>()
    val state: LiveData<UiState> = _state
    
    fun loadUser(id: Int) {
        viewModelScope.launch {
            _state.value = repository.getUser(id)
        }
    }
}

Repository Pattern

interface UserRepository {
    suspend fun getUser(id: Int): User
}

class UserRepositoryImpl(
    private val dao: UserDao,
    private val api: UserApi
) : UserRepository {
    override suspend fun getUser(id: Int): User {
        return dao.getUser(id) ?: api.fetchUser(id)
    }
}

Dependency Injection (Hilt)

@Module
@InstallIn(SingletonComponent::class)
object RepositoryModule {
    @Provides
    fun provideUserRepository(dao: UserDao, api: UserApi): UserRepository {
        return UserRepositoryImpl(dao, api)
    }
}

Key Concepts

MVVM Benefits

  • Lifecycle awareness
  • Configuration change handling
  • Separation of concerns
  • Testability

Clean Architecture Layers

  • Domain: Business rules
  • Application: Use cases
  • Presentation: UI
  • Infrastructure: Data sources

SOLID Principles

  • S: Single Responsibility
  • O: Open/Closed
  • L: Liskov Substitution
  • I: Interface Segregation
  • D: Dependency Inversion

Best Practices

✅ Dependency injection ✅ Interface-based design ✅ Layered architecture ✅ Single responsibility ✅ Testable code

Resources