Apache License 2.0

项目介绍

ZacSweers/CatchUp 是一个托管在 GitHub 上的开源项目,主要使用 Kotlin 编写,采用 Apache License 2.0 许可证,目前获得 2.1k 个 Star、209 次 Fork。

仓库全名
ZacSweers/CatchUp
开源许可证
Apache License 2.0
Star 数
2.1k
Fork 数
209
未关闭 Issue
19

README 摘要

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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

CatchUp 用什么语言开发?

主要使用 Kotlin 编写,采用 Apache License 2.0 许可证,目前有 2.1k 个 Star。

CatchUp 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 CatchUp 的源码?

可以直接克隆仓库:git clone https://github.com/ZacSweers/CatchUp.git,默认分支为 main;安装与运行步骤见仓库 README。

CatchUp 最近还在维护吗?

仓库最近一次更新为 1 天前,当前有 19 个未关闭 Issue;Star 数为 2.1k,可作为社区活跃度的参考。

简要分析

热度分
2564
价值分
1328
活跃状态
活跃

语言占比

Java
Kotlin
Shell

Release

README

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
  • Kotlin Coroutines
  • Debugging tooling as a first class citizen in the debug build
  • Leak Canary, Scalpel, debug drawer, bug reporting, the works
  • AndroidX/Jetpack
  • Metro
    • One of the more interesting parts of CatchUp is that its service architecture is a Dagger-powered plugin system
  • SqlDelight
  • Firebase
  • Coil
  • Apollo GraphQL
  • Standard Square buffet of Okio/OkHttp 3/Retrofit 2/Moshi
  • Inspector
  • KSP

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 whatever JDK version is currently defined libs.versions.toml.

CatchUp tends to keep up with Android Studio canaries, so you may have to use a canary version. Check the AGP version in libs.versions.toml.

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.

评论

暂无评论