thetruong1099
- 11 skills
- 0 followers
- 10 hours ago last updated
- ▌ Data Layer · thetruong1099Data layer architecture patterns for this project. Use when implementing repositories (interface in domain/repository, impl in data/remote-data), data sources extending BaseDataSource with fetchData/fetchRestData/fetchPagingData, mappers using BaseMapper or BidirectionalMapper, Hilt DI modules for repositories/data sources, or custom PagingSource classes.
- ▌ Mvi Pattern · thetruong1099Implements MVI (Model-View-Intent) pattern for Android feature development. Use when creating new feature ViewModels, defining ViewState/ViewEvent/ViewEffect, handling data loading with callPagingDataWithInternet or collectDataStateWithInternet, structuring Screen composables with stateful/stateless split, or handling navigation via effects.
- ▌ Code Quality · thetruong1099Code quality guidelines for this project. Covers ktlint configuration and commands, architecture/Kotlin/Compose/error/testing review checklists, git branch naming and commit message conventions, and module dependency enforcement rules. Automatically applied during code review.
- ▌ Error Handling · thetruong1099Error handling flow from data layer to UI. Use when implementing AppError handling in ViewModels with showErrorToast, adding new error types to AppError sealed class, extending ExceptionMapper for new infrastructure exceptions, extending ErrorHandler for new UI messages, or understanding the complete Exception to AppError to Toast flow.
- ▌ Kotlin Patterns · thetruong1099Kotlin coding patterns for this project. Provides guidance on scope functions, collection operations with sequences, sealed class handling, extension functions, coroutine patterns, null safety, and data class usage. Automatically applied when writing Kotlin code in this codebase.
- ▌ Testing Strategy · thetruong1099Testing patterns for this project. Use when writing ViewModel unit tests with MainDispatcherRule and MockK, UseCase tests mocking repositories, Repository tests with data source mocks, or Compose UI tests with FakeBaseViewModel and TemplateThemePreview. Covers Google Truth assertions and test naming conventions.
- ▌ Kotlin Concurrency · thetruong1099Kotlin coroutine and Flow patterns for this project. Covers when to use Flow vs suspend in BaseViewModel, Flow operators (map/filter/combine/flatMapLatest/debounce), StateFlow vs Channel vs SharedFlow, Dispatcher selection, structured concurrency with coroutineScope and supervisorScope, and cancellation patterns.
- ▌ Android Performance · thetruong1099Android performance best practices for this project. Covers Compose stability and recomposition reduction, LazyList optimization with stable keys and contentType, image loading with Coil, Paging3 caching with cachedIn, memory management avoiding Context in ViewModels, and ProGuard rules for Moshi and Konvert.
- ▌ Compose Conventions · thetruong1099Jetpack Compose UI conventions for this project's screens. Use when creating composable screens (XxxScreen/XxxScreenInternal pattern), using BaseScreenComponent, applying MaterialTheme.spacing for padding, writing @Preview composables with FakeBaseViewModel, handling PagingData with rememberPagingRefreshState, or setting up navigation with LocalAppNavController.
- ▌ Compose Performance · thetruong1099Jetpack Compose performance optimization patterns for this project. Covers recomposition rules, type stability with @Immutable/@Stable, lambda stability for callbacks, deferred state reads, PagingData with stable item keys, animation performance, and debugging recomposition with Layout Inspector.
- ▌ Project Architecture · thetruong1099Module structure, dependency rules, and naming conventions for the Android MVI Template. Use when creating new feature or domain modules, understanding which modules can depend on which, choosing convention plugins for build.gradle.kts, following naming conventions for ViewModels/UseCases/Repositories/Screens, or adding screens to the navigation graph.