CatchUp

An app for catching up on things.

Github星跟蹤圖

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
  • Reddit
  • 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, Chuck, Scalpel, debug drawer, Flipper, bug reporting, the works
  • AndroidX/Jetpack
  • Dagger 2
  • One of the more interesting parts of CatchUp is that its service architecture is a Dagger-powered plugin system
  • Room (Arch components)
  • AutoValue + extensions
  • Firebase
  • Coil
  • Apollo GraphQL
  • Standard Square buffet of Okio/OkHttp 3/Retrofit 2/Moshi
  • ThreetenABP
  • Inspector

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:

Download

CatchUp is in open alpha, but master tends to be rather far ahead of what's on the Play Store.

Development

If you'd like to build CatchUp locally, you should be able to just clone and build with no issues.

CatchUp tends to keep up with Android Studio canaries, so you may have to use a canary version.
Check the Android Gradle Plugin deps.android.gradlePlugin dependency in gradle/dependencies.kt.

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.

For apollo-android's code generation: if you want to use a local installation of the apollo-codegen
node module you'll need to make sure 0.19. is installed and linked (npm install -g apollo-codegen@0.19.1). Otherwise,
the gradle plugin should gracefully fallback to downloading it on demand.

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.

主要指標

概覽
名稱與所有者ZacSweers/CatchUp
主編程語言Kotlin
編程語言Java (語言數: 3)
平台
許可證Apache License 2.0
所有者活动
創建於2016-04-25 09:33:27
推送於2025-06-10 03:26:18
最后一次提交
發布數12
最新版本名稱0.3.5 (發布於 2018-03-29 02:52:23)
第一版名稱releasetesting (發布於 )
用户参与
星數2k
關注者數46
派生數204
提交數3.4k
已啟用問題?
問題數161
打開的問題數19
拉請求數1660
打開的拉請求數11
關閉的拉請求數130
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?