작품 · 01
TiebaLite
가벼운 서드파티 티에바(贴吧) 안드로이드 클라이언트 —— 오픈소스 TiebaLite 기반의 광고 없는 깨끗한 커뮤니티 읽기 경험. Kotlin + Jetpack Compose를 활용한 모던 안드로이드 엔지니어링.
저장소 보기 › Codeberg ›왜 만들었나
티에바(贴吧)는 제가 가장 오래 써온 커뮤니티인데, 공식 클라이언트는 해마다 무거워질 뿐입니다. 시작 광고, 피드 중간 광고, 끝없는 “추천”. 조용히 글이나 읽고 싶을 뿐인데 먼저 다섯 관문을 통과해야 합니다.
업스트림 오픈소스 프로젝트 TiebaLite가 “깨끗한 읽기”가 가능함을 증명해 주었지만, 유지보수 리듬이 불안정했고 핵심 인터페이스 몇 개는 고장 난 채 오래 방치되어 있었습니다. 제 출발점은 단순했습니다: 포크해서 살려내고, 내 사용 습관에 맞게 다듬는 것.
어려운 점
- API와의 전쟁: 서드파티 클라이언트는 “공식 인터페이스가 언제든 바뀔 수 있는” 환경에 살고 있습니다. 서명 알고리즘과 인증 흐름은 주기적으로 죽습니다. 해법은 네트워크 계층 전체를 하나의 독립 모듈로 모으는 것이었고, 인터페이스가 죽으면 그 모듈만 고치고 UI 계층은 건드리지 않습니다.
- Compose 마이그레이션의 경계: 업스트림 페이지 일부는 아직 구식 View 체계였고 전부 다시 쓰는 건 비현실적이었습니다. 결국 “새 페이지는 Compose, 기존 페이지는 최소 유지보수”라는 트랙 전략을 택해, 어떤 순간에도 동작하는 빌드를 확보했습니다.
현재 상태
- 광고 없는 깨끗한 읽기 경험. 체크인, 즐겨찾기, 글 보기 등 핵심 기능 유지
- 네트워크 계층 모듈화로 API 수정 비용이 “프로젝트 전체 조사”에서 “단일 모듈 교체”로 감소
- 업스트림을 계속 따라가며 동시에 자체 브랜치를 유지보수
배운 것
“적대적인” 프로젝트를 유지보수하는 데 가장 중요한 건 새 기술을 쫓는 것이 아니라 변하기 쉬운 부분을 울타리 안에 가두는 것입니다. UI는 천천히 진화해도 되지만, 네트워크 계층은 언제 맞아도 이길 준비가 되어 있어야 합니다.