All Projects → ZacSweers → Catchup

ZacSweers / Catchup

Licence: apache-2.0
An app for catching up on things.

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Catchup

Androidkotlincomponents
Boilerplates for Android Components Architecture with Rx, Dagger & Realm written in Kotlin
Stars: ✭ 79 (-95.33%)
Mutual labels:  rxjava, room, architecture-components, dagger
Fountain
Android Kotlin paged endpoints made easy
Stars: ✭ 175 (-89.64%)
Mutual labels:  rxjava, room, architecture-components
hackertab.dev
Hackertab turns your New Tab page into a geeky one that keeps you as a developer updated with the best tools, news, jobs and events.
Stars: ✭ 229 (-86.45%)
Mutual labels:  reddit, hackernews, producthunt
Android Jetpack Demo
🔥 快速入门Android Jetpack以及相关Kotlin、RxJava、MVVM等主流技术,独立构架App的基础技能
Stars: ✭ 335 (-80.18%)
Mutual labels:  rxjava, room, dagger
Marvel
Marvel Characters Android Application Assigned by smava GmbH
Stars: ✭ 227 (-86.57%)
Mutual labels:  rxjava, dagger, fragments
Star Wars Shop
Simple project with clean architecture and android lifecycle
Stars: ✭ 37 (-97.81%)
Mutual labels:  rxjava, architecture-components, dagger
Githubprojectbrowser
This is a sample Android Project that is based on Clean Architecture
Stars: ✭ 64 (-96.21%)
Mutual labels:  room, architecture-components
Android Okgraphql
Reactive GraphQl client for Android
Stars: ✭ 64 (-96.21%)
Mutual labels:  graphql, rxjava
Kotlin Pokedex
🌀 A Pokedex app using ViewModel, LiveData, Room and Navigation
Stars: ✭ 1,156 (-31.6%)
Mutual labels:  room, architecture-components
Androcat
AndroCat is a GitHub client for Android phones and provides to user GitHub user interface like how they used to.
Stars: ✭ 87 (-94.85%)
Mutual labels:  rxjava, dagger
Bigbang
Android base project used by Xmartlabs team
Stars: ✭ 47 (-97.22%)
Mutual labels:  rxjava, dagger
Android Mvp Starter
Create/Generate your MVP projects easily
Stars: ✭ 72 (-95.74%)
Mutual labels:  rxjava, dagger
Alfonz
Mr. Alfonz is here to help you build your Android app, make the development process easier and avoid boilerplate code.
Stars: ✭ 90 (-94.67%)
Mutual labels:  rxjava, architecture-components
Android tmdb clean architecture
Showcase of clean architecture concepts along with Continuous Integration and Development for modular Android applications. Includes test suits (functional and unit tests) along with code coverage.
Stars: ✭ 63 (-96.27%)
Mutual labels:  rxjava, room
Tdcapp
Sample app which access the TDC (The Developer's Conference) REST API.
Stars: ✭ 55 (-96.75%)
Mutual labels:  room, architecture-components
Easychatandroidclient
EasyChat是一个开源的社交类的App。主要包含消息、好友、群组等相关的IM核心功能。部分界面参照了QQ、微信等相关社交APP。EasyChat APP整体采用MVVM模式,基于JetPack(Lifecycle,LiveData,ViewModel,Room)构建
Stars: ✭ 64 (-96.21%)
Mutual labels:  room, dagger
Awesome Android Kotlin Apps
👓 A curated list of awesome android kotlin apps by open-source contributors.
Stars: ✭ 1,058 (-37.4%)
Mutual labels:  rxjava, dagger
Presently
Android app for recording gratitude journal entries
Stars: ✭ 109 (-93.55%)
Mutual labels:  room, architecture-components
Mvvm Reddit
A companion project for our blog post on better Android software development using MVVM with RxJava.
Stars: ✭ 106 (-93.73%)
Mutual labels:  rxjava, reddit
Android Architecture
🌇该项目结合 MVP 与 Clean 架构思想,探索在 Android 项目上的最佳实践。
Stars: ✭ 112 (-93.37%)
Mutual labels:  rxjava, dagger

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, 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
  • Room
  • Firebase
  • Coil
  • Apollo GraphQL
  • Standard Square buffet of Okio/OkHttp 3/Retrofit 2/Moshi
  • Inspector
  • Anvil
  • 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 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].