

GitHub - hzsweers/CatchUp: An app for catching up on things.
source link: https://github.com/hzsweers/CatchUp
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

CatchUp
An app for catching up on things.
https://www.zacsweers.dev/catching-up-on-catchup-introduction/
Motivations
There's a lot of services I like reading up on throughout the day. Most of these services have dedicated apps for consuming them, but often times I just want to skim the front page and only deep dive occasionally. Enter CatchUp: a high level presentation of the "front page" of several services in short form, and intelligent deeplinking into dedicated apps if you want to go further.
CatchUp is not an all-purpose client for each of these services, just the concierge for at-a-glance details and router for getting on your way. It does not support login for any service, it does not support customization/filtering of their feed. CatchUp is dumb, and you should use one of the many great dedicated apps for this if you want more integration features.
CatchUp is also very much a testing ground for things I personally dive into, from architecture, libraries, patterns, API quirks, and more. It's been a very fun project to spike test new things.
Features
- Multiple services
- Hacker News
- Medium
- Product Hunt
- Slashdot
- Designer News
- Dribbble
- GitHub
- Infinite scrolling on supported services
- Pleasant, simple, consistent UI for across services
- Night mode
- Smart deeplinking into dedicated apps
Technologies
- Kotlin
- RxJava 2/AutoDispose
- Debugging tooling as a first class citizen in the debug build
- Leak Canary, Scalpel, debug drawer, Flipper, bug reporting, the works
- AndroidX/Jetpack
- Dagger 2 + Hilt
- One of the more interesting parts of CatchUp is that its service architecture is a Dagger-powered plugin system
- Firebase
- Apollo GraphQL
- Standard Square buffet of Okio/OkHttp 3/Retrofit 2/Moshi
- Inspector
- Anvil
There's a lot of neat/interesting little tidbits in the CatchUp source code that I plan to write a mini blog series about. Each service has its own nuances that make them unique to work with in code.
Testing
While this is a personal pet project, extensive tests can be found here.
Influences
This app owes a lot of its inspiration, implementation details, and general inner workings to the work of others. Particularly:
Development
If you'd like to build CatchUp locally, you should be able to just clone and build with no issues. The project requires JDK 11 or higher.
CatchUp tends to keep up with Android Studio canaries, so you may have to use a canary version.
Check the Android Gradle Plugin SharedBuildVersions.agp
version in buildSrc/build.gradle.kts
.
If you want to build with working services, some require API keys. See the wiki for more details on which services require keys.
Bug fixes are always welcome. Tests are too if you're into that kinda thing, but I'm not actively trying to make this project a shining icon of TDD. For new features or otherwise significant work, please discuss in an issue first.
License
Copyright (C) 2017 Zac Sweers
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Recommend
-
104
README.md Wrap JSON encoding/decoding errors in exception A simple wrapper around json_encode() and json_decode() for catching any errors without executing json_...
-
97
What do you do when something goes wrong in your PHP application? Probably throwing an exception, so it can be caught at a higher level and handled appropriately. This should never be done, as every…
-
51
Over the past several years, artificial intelligence (AI) has become an integral component of many enterprise tech stacks, facilitatin...
-
60
README.md xCrash
-
29
This post describes a compile-time technique for catching use-after-move bugs in modern C++. It’s currently used to prevent some mistakes in the Serenity Operating System
-
14
Catchup subscriptions with Rails Event StoreHi, weʼre arkency 👋 The usual way of handling domain events in Rails Event Store is using the included pub-sub mechanism. And in most case...
-
15
Create an eye-catching GitHub Readme (🅰🆆🅴🆂🅾🅼🅴 Svelte)As new technologies emerge, it is sometimes hard to find resources to learn and better your skills. When I first learned Go approximately 6+ years ago, there were minima...
-
10
Details- Catch up (Been a while since the last meetup)- Where are we as Rust group- What's new on Rust- Any interesting showcase or presentation from any of our members- Zoom meeting link be...
-
12
readme mleak ----- Library for catching memory le...
-
5
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK