2P by GN⁺ 5시간전 | ★ favorite | 댓글 1개
  • RSS 리더가 공통적으로 전제해온 '읽지 않은 항목 처리'라는 의무감을 근본부터 거부하고, 콘텐츠가 자연스럽게 도착하고 머물다 사라지는 '강(River)' 메타포를 인터페이스 전체에 구현한 새로운 RSS 리더
  • 각 피드 소스에 반감기 를 설정해 속보는 3시간, 에세이는 7일 등 콘텐츠 유형별로 노출 수명이 달라지며, 다작 소스가 피드를 독점하는 문제를 구조적으로 해결
  • 글을 '읽음 처리'하는 대신 '놓아주기 라는 제스처로 카드를 날려보내는 물리 기반 인터랙션을 채택하고, 햅틱 피드백·애니메이션·실행취소까지 세밀하게 설계
  • 개인 블로그를 피드 URL이 아닌 'Voices(목소리)' 로 분리해 사람과 매체를 다르게 다루며, 모든 AI 기반 주제 분석과 추천은 온디바이스에서만 실행
  • iPhone·iPad·Mac 각 플랫폼에 맞춘 전용 UI를 제공하며, Command-K 팔레트와 빠른 심사 모드 Sift 등 데스크톱 고유 경험까지 포함

River — 핵심 인터페이스

  • 메인 화면은 모든 피드가 하나로 합쳐진 River 형태로, 읽지않은 글 카운트가 존재하지 않음
  • 카운트를 없앤 이유는 미니멀 디자인이 아니라 "세는 행위 자체가 문제" 라는 철학적 판단
  • 글은 도착 후 일정 시간이 지나면 점점 흐려지다 사라지며, 읽음 표시나 분류 없이 물이 다리 아래로 흘러가듯 지나감
  • 각 글에는 velocity(속도) 값이 있어, 얼마나 빨리 노후화되는지 결정
    • 속보: 3시간 만에 사라짐
    • 일반 기사: 18시간
    • 에세이: 3일
    • 에버그린 튜토리얼: 최대 1주일
  • 노후화된 항목은 점차 어두워지다 완전히 사라지며, 사용자가 별도 조작할 필요 없음
  • "정보에는 자연스러운 수명이 있으며, 인터페이스는 그것을 존중해야 한다"는 원칙

Half-Life — 소스별 반감기 설정

  • 모든 소스에 반감기(half-life) 를 지정해 글이 River에 머무는 시간을 제어
    • BBC World 같은 속보 피드: 3시간
    • Ars Technica: 18시간
    • Aeon, The Marginalian 같은 느린 소스: 1주일
  • Google Reader 이후 모든 시간순 피드가 겪어온 문제, 즉 다작 소스가 나머지를 매몰시키는 현상을 해결
    • The Verge가 하루 20개를 올려도 수 시간 내 사라지고, Craig Mod가 한 달에 한 번 올린 에세이는 며칠간 유지
  • 온보딩에서 Breaking, News, Article, Essay, Evergreen 다섯 단계 속도를 제시하며, 소스당 하나만 선택하면 River가 나머지를 처리

Release — '읽음 처리' 대신 '놓아주기'

  • 대부분의 RSS 리더가 사용하는 "mark as read" 는 관리자가 서류를 처리하는 듯한 언어적 함의를 지님
  • Current는 이를 Release(놓아주기) 로 대체
  • River에서 카드를 길게 왼쪽 스와이프하면 카드가 날아가고, 나머지 카드가 물이 빈 공간을 채우듯 자리를 정렬
  • 글 본문 끝에 도달하면 하단에서 Release 버튼이 떠올라, 탭 한 번으로 River로 복귀하며 해당 글은 이미 사라진 상태
  • 물리 기반 인터랙션 세부 설계:
    • 드래그 시 카드가 살짝 압축되며 긴장감 형성
    • 임계점에 가까워질수록 햅틱 엔진이 점점 빠르게 진동
    • 가장자리에 따뜻한 빛이 나타나고, 임계점을 넘으면 카드가 날아감
    • 실행취소 윈도우 제공: 놓아준 글은 수 초간 메모리에 남아 있어 되돌리기 가능, 확인 다이얼로그 없음

소스별 세부 튜닝

  • velocity 외에 소스마다 추가 옵션 제공
    • 전체 글 가져오기(full article fetch): 티저 문단만 제공하는 피드의 전문을 웹에서 직접 추출
    • 웹코믹 모드: 이미지 우선 리더로 전환, 줌·팬·alt-text 표시 지원 (XKCD 등에 최적화)
    • 뮤트: 특정 소스를 1주일간 숨김
    • 핀 고정: 특정 소스를 River 상단에 고정
  • 이 옵션들은 설정 메뉴 깊은 곳이 아니라 소스마다 한 번 스와이프로 접근 가능

The River Speaks — 동적 안내 카드

  • Current는 사용 습관을 관찰해 비침습적 안내 카드를 글 사이에 삽입
    • 특정 소스가 하루 18개를 올리면 "The Verge posted 18 items today" 카드와 함께 속도 제한·24시간 음소거 옵션 제시
    • 같은 소스에서 10개 연속 건너뛰면 "You've skipped 10 from TechCrunch. Quiet or remove?" 제안
    • 특정 소스를 계속 읽으면 핀 고정 제안, 여러 소스에서 같은 주제를 계속 읽으면 새 Current 생성 제안
  • 이 카드들은 알고리듬적 추천이 아니며, 참여를 극대화하거나 관심을 빼앗으려는 것이 아님
  • "습관을 알아채고 조용히 선반을 재배치하는 사서"에 비유
  • 모든 지능형 처리는 온디바이스에서만 실행: 자연어 처리로 주제를 식별하고, Foundation Models(사용 가능 시)로 관련 기사 검증, 어떤 데이터도 서버로 전송되지 않음

Voices — 사람과 매체의 구분

  • 대부분의 RSS 리더는 소스를 사이드바의 피드 URL 목록으로만 표시
  • Current는 개인 블로그처럼 한 사람이 쓰는 피드를 별도의 Voice(목소리) 로 분리
    • "사람을 구독하는 것이 아니라, 목소리를 따라가는 것"
  • Voice로 지정된 피드는 Voices 탭에 모여 시간순 타임라인을 형성
    • 활발한 Voice는 풀 컬러로, 조용한 Voice는 그레이스케일로 표시되며 주의를 강요하지 않음
  • Voice를 탭하면 해당 인물의 글만 필터링
    • iPad: 사이드바에 이름과 파비콘 표시
    • iPhone/Mac: 타임라인 위 스크롤 가능한 얼굴 행
  • Current는 개인 블로그를 자동 감지(서브도메인 패턴, 게시 빈도, 바이라인 신호)하고 Voice 지정을 부드럽게 제안하지만 최종 선택은 사용자 몫

Currents — 커스텀 컬렉션

  • River는 모든 것이 합쳐진 기본 뷰이며, 범위를 좁히고 싶을 때 Currents 사용
  • 화면 상단 수평 바에 위치하며, 스와이프 한 번으로 전환
  • 기본 제공 세 가지:
    • River: 전체 피드
    • Voices: 팔로우 중인 사람들
    • Read Later: 저장한 글 (오프라인 캐시, 따뜻한 앰버 색상으로 "내 것"임을 표시)
  • "폴더"는 정리 의무를, "카테고리"는 스프레드시트를 연상시키므로, 큰 강 안의 작은 물줄기라는 뜻의 "Currents"로 명명
  • 동적 안내 카드가 독서 패턴을 감지해 새 Current 생성을 제안하기도 함

Calm by Design — 디자인 시스템

  • "모든 인터페이스는 사용자가 어떻게 느껴야 하는지에 대한 주장"이라는 원칙이 디자인 시스템의 출발점
  • 디자인 시스템 내부 태그라인: "Calm but not boring. Beautiful but not loud. Typography as hero. Color as punctuation."
  • 본문은 iOS 시스템 세리프체 16~18pt, Dynamic Type에 맞춰 확장
    • 산세리프 앱이 대부분인 환경에서 의도적 선택: 세리프체는 500년간 장문 독서의 표준
    • 리더 뷰에서는 18pt 세리프로 확대, 빈 화면이나 사색적 순간에는 별도 "poetic" 타이포그래피 티어 적용
  • 9가지 색상 팔레트, 각각 라이트·다크 변형 제공:
    • Bright: iOS 블루 기반
    • Paper: 따뜻한 아이보리·앰버, 촛불 독서 느낌
    • Ocean: 쿨 틸·시폼
    • Dusk: 소프트 바이올렛·라벤더
    • Ember: 따뜻한 러스트·로즈
    • Midnight: 진정한 OLED 블랙
    • Slate: 코드 에디터 팔레트
    • Terminal: CRT를 기억하는 사람들을 위한 포스포 그린 온 블랙
    • Solarized: Ethan Schoonover의 정밀 팔레트
  • 색상은 장식이 아닌 시맨틱 용도: 따뜻한 앰버는 항상 "내 것"(저장된 글, 개인 컬렉션), 신선한 틸은 "새것", 세이지 그린은 성공, 레드는 오류

Motion & Touch — 애니메이션과 햅틱

  • 애니메이션은 장식이 아닌 어휘(vocabulary)
  • 다섯 단계 타이밍 티어:
    • Instant (0.15초): 마이크로 피드백
    • Quick (0.22초): 주요 인터랙션
    • Standard (0.28초): 카드 이동
    • Gentle (0.35초): 패널
    • Smooth (0.45초): 앰비언트 모션
  • 일관된 타이밍이 무의식적 신뢰를 형성
  • 배경에 CurrentLines: 고유 진폭과 위상을 가진 5개의 사인파가 천천히 흐르며, 보이기보다 느껴지는 수준으로 앱에 생동감 부여
  • 햅틱 커뮤니케이션 상세:
    • Release 제스처: 50% 긴장 시 탭, 임계점 접근 시 심박처럼 가속하는 리듬 펄스, 트리거 시 강한 탭 + 부드러운 탭의 2단 확인
    • River 스크롤 안정 시 미세한 "날숨", Voice 글 열 때 부드러운 펄스
  • Reduce Motion 활성화 시 모든 모션 완전 정지: 앰비언트 라인 제거, 전환 즉시 처리, 예외 없음
    • 접근성은 기능 토글이 아니라 전체 시스템을 더 좋게 만든 디자인 제약

Four Swipes — 제스처 커스터마이징

  • River의 모든 카드에 4방향 제스처 슬롯 제공: 짧은 왼쪽, 긴 왼쪽, 짧은 오른쪽, 긴 오른쪽
  • 기본값: 짧은 왼쪽=읽음 표시, 긴 왼쪽=Release, 짧은 오른쪽=저장, 긴 오른쪽=공유
  • 모든 슬롯을 원하는 동작으로 재매핑 가능: 읽음/미읽음 표시, Release, 저장, 소스 뮤트, 소스 편집, 공유, 또는 없음
  • 설정 화면에 라이브 프리뷰 카드가 있어 적용 전 스와이프 테스트 가능
  • 짧은 스와이프와 긴 스와이프는 서로 다른 임계점과 구별되는 햅틱 피드백 적용

The Small Things — 세부 기능

  • 왼쪽 가장자리 스와이프: 검색, 오른쪽 가장자리 스와이프: 설정
    • 처음 몇 번은 가장자리 접근 시 힌트가 나타나며, 3회 후 자동 은퇴
  • 읽기 진행도를 퍼센트가 아닌 자연어로 표시: "Just started", "Halfway through" 등이 River 카드에 표시
  • 전문 검색(Full-text search): 스크롤한 모든 글, 읽은 모든 글을 인덱싱하여 타이핑 즉시 결과 표시, 피드가 검색 가능한 기억이 됨
  • Read Later는 큐가 아닌 라이브러리: 저장된 글은 오프라인 캐시되며 만료되지 않고, 카운트도 없이 책장의 책처럼 대기

Beyond the Phone — iPad & Mac 경험

  • iPhone 앱이 큰 화면을 단순히 수용하는 것이 아니라, 각 플랫폼에 맞춘 전용 경험 설계
  • iPad:
    • 접이식 사이드바: 소스, Currents, Voices가 필요할 때 슬라이드 인, 필요 없으면 사라짐
    • 가로 모드: 사이드바와 리더가 나란히 배치, 글을 열어도 River에서 위치를 잃지 않음
    • 세로 모드: 사이드바 숨김, River가 전체 화면 차지
  • Mac:
    • 키보드 퍼스트 설계
    • Command-K: 커맨드 팔레트로 Current 전환, 소스 이동, 검색, 테마 변경 등 모든 동작 수행, 메뉴 탐색 불필요
    • Sift 모드: 데스크톱에서의 실제 트리아지 방식에 맞춘 모드로, 키 하나를 누르면 각 글이 전체 화면으로 표시되고 Release·저장·건너뛰기를 단일 키로 처리

What I Left Out — 의도적으로 배제한 것들

  • 읽지 않은 글 카운트 완전 배제: "아직 안 넣은 것"이 아니라 "절대 넣지 않을 것", 철학적 결정. 읽지 않음 카운트는 RSS 관리자(manager)로서는 더 나은 앱을 만들지만 RSS 독자(reader)로서는 더 나쁜 앱을 만듦
  • 3패인 레이아웃 없음: 피드 사이드바 + 항목 리스트 + 읽기 창 구조를 배제. 2002년 Brent Simmons가 발명한 이 레이아웃을 20년간 모두가 복제해온 것에 대한 의문을 진지하게 수용
  • 알고리듬 큐레이션 없음: 소셜 미디어가 phantom obligation을 "지금 벌어지는 일을 놓칠지 모른다는 두려움(FOMO)" 으로 대체했다는 인식. River는 도착 순서대로만 흐르며, 사용자가 설정한 velocity만이 영향을 줌
  • 스토리 스레딩: 여러 소스의 관련 기사를 내러티브 스레드로 묶는 시스템을 구축 완료했으나 비활성화 상태로 출시. 온디바이스 Foundation Models로 검증까지 작동하지만 프레젠테이션이 아직 적절하지 않아, 반쯤 완성된 상태로 출시하기보다 준비가 될 때까지 또는 영원히 보류
  • 퍼포먼스 버짓: 모든 기기에서 60fps, 스크롤 중 메모리 150MB 이하 유지
    • CurrentLines는 여유 확보를 위해 60fps가 아닌 30fps로 구동
    • 일부 전환은 프로토타입보다 단순화: 구형 하드웨어에서 프레임 드롭 발생 때문
    • "퍼포먼스는 기능이고, 버벅임(jank)은 버그"