Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

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: 14 days ago
JSON representation

An Android app for browsing Stack Overflow and other Stack Exchange sites.

Lists

README

        

# Stack
[![Build](https://github.com/tylerbwong/stack/actions/workflows/build.yml/badge.svg)](https://github.com/tylerbwong/stack/actions/workflows/build.yml)

![Stack](/.idea/icon.png)

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

Get it on Google Play

### 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.