Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reactivecircus/release-probe
An Android app for tracking new releases of libraries and dependencies from various sources.
https://github.com/reactivecircus/release-probe
android androidx architecture-components blueprint clean-architecture kotlin kotlin-coroutines kotlin-flow microservices-architecture mvi single-activity unidirectional-data-flow
Last synced: about 1 month ago
JSON representation
An Android app for tracking new releases of libraries and dependencies from various sources.
- Host: GitHub
- URL: https://github.com/reactivecircus/release-probe
- Owner: ReactiveCircus
- License: mit
- Created: 2018-07-28T07:03:09.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2023-02-18T00:32:53.000Z (almost 2 years ago)
- Last Synced: 2024-05-21T11:57:11.574Z (7 months ago)
- Topics: android, androidx, architecture-components, blueprint, clean-architecture, kotlin, kotlin-coroutines, kotlin-flow, microservices-architecture, mvi, single-activity, unidirectional-data-flow
- Language: Kotlin
- Homepage:
- Size: 951 KB
- Stars: 10
- Watchers: 4
- Forks: 3
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ReleaseProbe
[![CircleCI](https://circleci.com/gh/ReactiveCircus/release-probe.svg?style=svg)](https://circleci.com/gh/ReactiveCircus/release-probe)
[![GitHub Actions status](https://github.com/ReactiveCircus/release-probe/workflows/Instrumented%20test%20workflow/badge.svg)](https://github.com/ReactiveCircus/release-probe/actions)
[![Android API](https://img.shields.io/badge/API-23%2B-blue.svg?style=flat-square&label=API&maxAge=300)](https://www.android.com/history/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square&maxAge=3600)](https://opensource.org/licenses/MIT)An Android app for monitoring new releases of libraries and dependencies such as AndroidX, Firebase and other popular 3rd party libraries on GitHub. Get notified when your favourite library has a new release.
## Goals
The main goal of this project is to experiment with some of the latest technologies including, libraries, architecture, infrastructure, tooling, design patterns in Android development, and apply them in a non-trivial project. Therefore it's expected that the focus will be mostly on the technologies rather than adding new features. Current tech stack is documented below.## Tech Stack
### Language
100% Kotlin.TODO
### Architecture Guideline
TODO
### Core Libraries
TODO
### Microservices Architecture
TODO
### Project Dependency Graph
To get a visualization of the project's dependency graph ([Graphviz](https://brewinstall.org/Install-graphviz-on-Mac-with-Brew/) required):
```
./gradlew projectDependencyGraph
```The generated project dependency graph is available at `./build/reports/dependency-graph/project.dot.png`.
### Testing
TODO
### Code Quality
In addition to Android Lint, [detekt](https://github.com/arturbosch/detekt) has been configured for Kotlin static analysis.
### Continuous Integration
We use **CircleCI** for CI/CD. We also have a separate workflow for running instrumented tests with **GitHub Actions**.
### Workflow
#### All pull requests and pushes to main
* **build (CircleCI)** - assembles the release APK and App Bundle
* **unit_tests (CircleCI)** - runs all unit tests
* **static_analysis (CircleCI)** - runs Android Lint and detekt
* **Run Instrumented Tests (GitHub Actions)** - runs instrumented tests on Emulators#### On release branches only
* **deploy_to_play (CircleCI)** - deploys the release App Bundle to Google Play's internal test channel
### Docker Container
[reactivecircus/android-sdk](https://hub.docker.com/r/reactivecircus/android-sdk/) is used for running CI jobs. Dockerfiles are available on [GitHub](https://github.com/reactivecircus/docker-android-images)### Running Instrumented Tests with GitHub Actions
Running proper automated UI tests on CI remains a challenge especially when operating with free plans for side projects.
Therefore we are running our instrumented tests with a custom GitHub Action - [Android Emulator Runner](https://github.com/ReactiveCircus/android-emulator-runner) which installs, configures and runs Android Emulators on **macOS** virtual machines with hardware acceleration enabled.
## Building
### Bugsnag
A Bugsnag API key is required. Place the following in `~/.gradle/gradle.properties`:
```
RELEASE_PROBE_BUGSNAG_API_KEY=
```### APK and Bundle
The following will generate the unsigned APK and AAB (App Bundle) files.
`./gradlew assemble bundle`
Signed APK and AAB will be generated when the release keystore and signing credentials are provided, which happens on CI builds.
## TODO