How m4ykey/kmp-stos works
Stos is a cross-platform Compose app for browsing StackExchange and Stack Overflow. Users can browse questions and details, search with filters, explore tags and related questions, read comments and answers, and view user and site information. The common app connects presentation and domain features to remote API services; shared paging and Markdown rendering support result lists and readable content. The source index and excerpts show several service and search relationships, but not most presentation-to-domain wiring, so those links are omitted rather than inferred.
Main entry points: main.kt App entry · App.kt App UI · SearchService.kt Search service · QuestionService.kt Question services
Components 17
App and navigation
- App entry
composeApp/src/jvmMain/kotlin/com/m4ykey/stos/main.kt - App UI
composeApp/src/commonMain/kotlin/com/m4ykey/stos/app/App.kt - Navigation
composeApp/src/commonMain/kotlin/com/m4ykey/stos/app/navigation
Question browsing
- Question screens
composeApp/src/commonMain/kotlin/com/m4ykey/stos/question/presentation - Question services
composeApp/src/commonMain/kotlin/com/m4ykey/stos/question/data/network/service/QuestionService.kt - Question domain
composeApp/src/commonMain/kotlin/com/m4ykey/stos/question/domain/model/Question.kt - Answer comments
composeApp/src/commonMain/kotlin/com/m4ykey/stos/answer/presentation - Answer service
composeApp/src/commonMain/kotlin/com/m4ykey/stos/answer/data/network/service/RemoteAnswerService.kt
Search and sites
- Search screens
composeApp/src/commonMain/kotlin/com/m4ykey/stos/search/presentation - Search repository
composeApp/src/commonMain/kotlin/com/m4ykey/stos/search/data/repository/RemoteSearchRepository.kt - Search service
composeApp/src/commonMain/kotlin/com/m4ykey/stos/search/data/network/service/SearchService.kt - Site browser
composeApp/src/commonMain/kotlin/com/m4ykey/stos/sites
Users and comments
- User profiles
composeApp/src/commonMain/kotlin/com/m4ykey/stos/user
Network and rendering
- Paging core
core/src/commonMain/kotlin/com/m4ykey/core/paging/BasePagingSource.kt - Markdown renderer
text-markdown/src/commonMain/kotlin/com/m4ykey/markdown/TextMarkdown.kt
Other components
- Reader
- StackExchange API
Connections 9
- Reader → App entry: opens app
README.md - App entry → App UI: starts
composeApp/src/jvmMain/kotlin/com/m4ykey/stos/main.kt - App UI → Navigation: uses
composeApp/src/commonMain/kotlin/com/m4ykey/stos/app/App.kt - Question services → StackExchange API: requests data
composeApp/src/commonMain/kotlin/com/m4ykey/stos/question/data/network/service/QuestionService.kt - Search service → StackExchange API: searches
composeApp/src/commonMain/kotlin/com/m4ykey/stos/search/data/network/service/SearchService.kt - Search repository → Search service: uses
composeApp/src/commonMain/kotlin/com/m4ykey/stos/search/data/repository/RemoteSearchRepository.kt - Answer service → StackExchange API: requests comments
- User profiles → StackExchange API: loads profiles
- Site browser → StackExchange API: loads sites