[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7527":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":16,"starSnapshotCount":16,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},7527,"CatchUp","ZacSweers\u002FCatchUp","ZacSweers","An app for catching up on things.","",null,"Kotlin",2094,213,43,19,0,1,3,61.79,"Apache License 2.0",false,"main",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"android","anvil","catchup","circuit","coroutines","dagger","dribbble","github","graphql","hackernews","kotlin","medium","moshi","producthunt","reddit","sqldelight","2026-06-12 04:00:34","\u003Cp>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FZacSweers\u002FCatchUp\u002Fmain\u002Fapp-scaffold\u002Fsrc\u002Fmain\u002Fplay\u002Flistings\u002Fen-US\u002Ffeature-graphic\u002Ffeature.png\"\u002F>\n\u003C\u002Fp>\n\nCatchUp\n=======\n\nAn app for catching up on things.\n\nhttps:\u002F\u002Fwww.zacsweers.dev\u002Fcatching-up-on-catchup-introduction\u002F\n\n## Motivations\n\nThere's a lot of services I like reading up on throughout the day. Most of these services have\ndedicated apps for consuming them, but often times I just want to skim the front page and only deep\ndive occasionally. Enter CatchUp: a high level presentation of the \"front page\" of several services\nin short form, and intelligent deeplinking into dedicated apps if you want to go further.\n\nCatchUp is not an all-purpose client for each of these services, just the concierge for at-a-glance\ndetails and router for getting on your way. It does not support login for any service, it does not\nsupport customization\u002Ffiltering of their feed. CatchUp is dumb, and you should use one of the many\ngreat dedicated apps for this if you want more integration features.\n\nCatchUp is also very much a testing ground for things I personally dive into, from architecture,\nlibraries, patterns, API quirks, and more. It's been a very fun project to spike test new things.\n\n## Features\n\n- Multiple services\n- Hacker News\n- Reddit\n- Medium\n- Product Hunt\n- Slashdot\n- Designer News\n- Dribbble\n- GitHub\n- Infinite scrolling on supported services\n- Pleasant, simple, consistent UI for across services\n- Night mode\n- Smart deeplinking into dedicated apps\n\n## Technologies\n\n- Kotlin\n- Kotlin Coroutines\n- Debugging tooling as a first class citizen in the debug build\n- Leak Canary, Scalpel, debug drawer, bug reporting, the works\n- AndroidX\u002FJetpack\n- Metro\n  - One of the more interesting parts of CatchUp is that its service architecture is a Dagger-powered plugin system\n- SqlDelight\n- Firebase\n- Coil\n- Apollo GraphQL\n- Standard Square buffet of Okio\u002FOkHttp 3\u002FRetrofit 2\u002FMoshi\n- Inspector\n- KSP\n\nThere's a lot of neat\u002Finteresting little tidbits in the CatchUp source code that I plan to write a\nmini blog series about. Each service has its own nuances that make them unique to work with in code.\n\n## Testing\n\nWhile this is a personal pet project, extensive tests can be found [here](https:\u002F\u002Fyoutu.be\u002FoHg5SJYRHA0).\n\n## Influences\n\nThis app owes a lot of its inspiration, implementation details, and general inner workings to the\nwork of others. Particularly:\n- [Nick Butcher](https:\u002F\u002Ftwitter.com\u002F@crafty) and his [Plaid](https:\u002F\u002Fgithub.com\u002Fnickbutcher\u002Fplaid) app\n- [Jake Wharton](https:\u002F\u002Ftwitter.com\u002F@jakewharton) and his [u2020](https:\u002F\u002Fgithub.com\u002Fjakewharton\u002Fu2020) demo app\n\n## Development\n\nIf you'd like to build CatchUp locally, you _should_ be able to just clone and build with no\nissues. The project requires whatever JDK version is currently defined `libs.versions.toml`.\n\nCatchUp tends to keep up with Android Studio canaries, so you may have to use a canary version.\nCheck the AGP version in `libs.versions.toml`.\n\nIf you want to build with working services, some require API keys. See the\n[wiki](https:\u002F\u002Fgithub.com\u002FZacSweers\u002FCatchUp\u002Fwiki\u002FAuthentication-information) for more details on\nwhich services require keys.\n\nBug fixes are always welcome. Tests are too if you're into that kinda thing, but I'm not actively\ntrying to make this project a shining icon of TDD. For new features or otherwise significant work,\nplease discuss in an issue first.\n\nLicense\n-------\n\n\tCopyright (C) 2017 Zac Sweers\n\n\tLicensed under the Apache License, Version 2.0 (the \"License\");\n\tyou may not use this file except in compliance with the License.\n\tYou may obtain a copy of the License at\n\n\thttp:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\n\tUnless required by applicable law or agreed to in writing, software\n\tdistributed under the License is distributed on an \"AS IS\" BASIS,\n\tWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\tSee the License for the specific language governing permissions and\n\tlimitations under the License.\n","CatchUp 是一个用于快速浏览多个在线服务平台内容的应用。其核心功能包括支持 Hacker News、Reddit、Medium 等多个服务的前端页面概览，以及智能链接到各平台官方应用进行深入阅读。技术上，项目采用了 Kotlin 语言，并广泛利用了 Kotlin 协程、Dagger 插件系统、SqlDelight 数据库等现代 Android 开发工具和技术栈。此外，它还提供了夜间模式和跨服务一致的用户界面设计。此应用非常适合那些希望在一个地方就能概览多个兴趣领域最新动态的用户使用，而不必在各个独立应用间频繁切换。",2,"2026-06-11 03:12:52","top_language"]