이잉크 UI 개발 관례를 묻는 Ask HN, 새로고침·고스팅 대응 노하우 쏠려
- 글쓴이는 Bigme Hibreak Pro BW 흑백 이잉크 스마트폰용으로 Lemmy 프런트엔드와 OpenRouter 프런트엔드를 브라우저 기반으로 만들려 하며 완성 후 GPL로 공개할 계획임
- LLM 스트리밍 출력을 그대로 화면에 뿌리면 이잉크 최악의 시나리오라 버퍼링 후 청크 단위로 그려야 하고, 스크롤 대신 페이지네이션으로 고스팅 문제를 피하려 한다고 밝힘
- dredmorbius는 자신의 글 "E-Ink Design Principles for Web and Applications"에서 정리한 10가지 원칙을 제시함, persistence는 공짜지만 paint는 비싸고 refresh는 느리며 스크롤 대신 페이지네이션, 그라디언트 대신 라인아트를 쓰라는 내용임
- 다른 댓글러는 이잉크를 5Hz 신문처럼 다뤄야 한다며 애니메이션·전환을 없애고 흰 영역을 미리 확보해 검은 잉크로 채우는 방식이 반대보다 훨씬 낫다고 조언함
- Boox Note Air 5c용으로 만든 inka.page 같은 실제 이잉크 앱 예시와 Palm Pilot, TUI, Oberon 같은 저해상도 UI 참고 사례가 함께 소개됨
Hacker News opinions
이잉크 UI 원칙 10개 정리해봤음: persistence는 공짜, pixel은 싸지만 paint는 비쌈, refresh는 느림, 색상은 거의 없다고 봐야 함. 스크롤 대신 페이지네이션, pan 대신 전체 새로고침, 애니메이션은 최소화하고 이미지는 그라디언트 대신 라인아트나 하프톤으로 가야 함.
그 중에 흑백 대비가 그레이스케일보다 훨씬 빠르고 고스팅도 적어서, 이미지 처리할 때 특히 중요한 부분임.
리마커블 프로에 Excalidraw 포팅하면서 느낀 건데, 이잉크는 레이아웃을 최대한 단조롭게 유지해야 함. 앱이 스스로 이전 렌더링을 깨는 일이 없어야 하고, 유저 인터랙션도 중간 상태를 최소화하도록 설계해야 함. 무조건 피드백을 없애라는 게 아니라 애초에 중간 피드백이 필요 없게 만들라는 거.
이잉크는 컴퓨터보다 5Hz 신문에 가깝다고 보고 print 디자인 가이드라인을 참고하는 게 나음. 새로고침 있을 거라 기대하지 말고 애니메이션·전환 다 빼고, 출력될 자리를 흰색으로 미리 잡아둔 다음 검은 잉크로 채우는 방식이 반대보다 훨씬 잘 작동함.
브렛 빅터의 Magic Ink 에세이도 이 얘기랑 관련 있음, 한번 읽어볼 만함.
긴 작업이면 화면 새로고침 속도보다 느려도 애니메이션 하나 넣어주는 게 나음. 그래야 유저가 뭔가 진행 중이라는 걸 알 수 있음.
Boox Note Air 5c용으로 inka.page라는 걸 만들어봤음, 깃허브에 소스 있으니 참고해도 좋음.
Kobo Clara에서도 되면 좋겠다.
이잉크 스크롤은 스페이스바나 페이지다운 누를 때마다 어디까지 읽었는지 놓치는 느낌이라 짜증남. 스크롤 거리를 조절 가능하게 하거나(예: 95%만 내려서 이전 줄 살짝 남기기), 터치면 누르고 있는 동안엔 화면 안 갱신하고 손 뗄 때만 갱신하는 방식도 고려해볼만함.
느린 터미널 다루던 TUI 패턴들 재활용할 만함, less나 emacs처럼 한 줄씩 대신 페이지 단위로 스크롤하고 일부 줄은 남겨두는 방식.
Oberon OS 쓸 때 스크롤바 UI가 재밌었음, 중간 클릭하면 그 위치가 화면 맨 위로 오는 식이라 탭 한 번으로 정확한 위치로 이동 가능했음. 이잉크에도 잘 맞을 듯.
초기 맥OS 말고 팜파일럿이나 TUI 앱들도 참고할 만함, 저해상도에서 어떻게 레이아웃 짜는지 배울 게 많음.
다만 옛날 흑백 기기는 대부분 LCD라 이잉크(전자잉크)랑은 다름, LCD는 새로고침이 빠르고 고스팅도 없어서 교훈은 얻을 수 있어도 매체 자체가 다르다는 점은 감안해야 함.