https://github.com/tylerbwong/stack
An Android app for browsing Stack Overflow and other Stack Exchange sites.
https://github.com/tylerbwong/stack
android dagger-hilt jetpack-compose kotlin kotlin-coroutines markdown room stackexchange stackoverflow
Last synced: 15 days ago
JSON representation
An Android app for browsing Stack Overflow and other Stack Exchange sites.
- Host: GitHub
- URL: https://github.com/tylerbwong/stack
- Owner: tylerbwong
- License: gpl-3.0
- Created: 2018-03-19T00:54:54.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-04-04T09:12:47.000Z (20 days ago)
- Last Synced: 2025-04-04T10:24:48.986Z (20 days ago)
- Topics: android, dagger-hilt, jetpack-compose, kotlin, kotlin-coroutines, markdown, room, stackexchange, stackoverflow
- Language: Kotlin
- Homepage: https://stack.tylerbwong.me
- Size: 3.75 MB
- Stars: 557
- Watchers: 31
- Forks: 39
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-compose - Stack - An Android app for browsing Stack Overflow and other Stack Exchange sites (Miscellaneous)
README
# Stack
[](https://github.com/tylerbwong/stack/actions/workflows/build.yml)
Stack is an Android application that lets you browse [stackoverflow.com](https://stackoverflow.com) and other Stack Exchange sites. It is powered by the [Stack Exchange API](https://api.stackexchange.com/).
### Download
### Development
The goal of this project is to provide examples for the latest Android libraries and tools. A few noteworthy examples include:
* [Kotlin Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) for asynchronous code
* [Dagger Hilt](https://developer.android.com/training/dependency-injection/hilt-android) for dependency injection
* [Jetpack Compose](https://developer.android.com/jetpack/compose) for declarative UI code written in Kotlin (Slowly being introduced)
* [Room](https://developer.android.com/jetpack/androidx/releases/room) for local data persistence
* [Markwon](https://github.com/noties/Markwon) for rendering markdown### Features
* View questions, answers, and comments with rich Markdown/LaTeX previews
* Browse any Stack Exchange site
* Log in to vote for questions or post new questions, answers, and comments
* Bookmark questions to save for later (Temporarily broken. See [#126](https://github.com/tylerbwong/stack/issues/126))
* Search for questions with advanced filter controls
* View other users' profiles
* Material 3 dynamic theming available
* Question/answer deep linking### Subprojects
Here you can also find a few useful Gradle modules as well:
* [buildSrc](./buildSrc) - A Gradle module for common build logic with a custom plugin example.
* [compose-markdown](./compose-markdown) - A Jetpack Compose Text component that can render markdown content using [intellij-markdown](https://github.com/valich/intellij-markdown) for parsing.
* [compose-preference](./compose-preference) - A set of Jetpack Compose Preference components.
* [dynamic-list-adapter](./dynamic-list-adapter) - An abstraction around `RecyclerView` built on `ListAdapter` for asynchronous list diffing.
* [dynamic-list-adapter-viewbinding](./dynamic-list-adapter-viewbinding) - View Binding support for `DynamicListAdapter`.# License
Copyright (C) 2023 Tyler Wong
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses.