9 điểm bởi GN⁺ 9 ngày trước | 3 bình luận | Chia sẻ qua WhatsApp
  • Một trình đọc RSS mới từ chối tận gốc cảm giác nghĩa vụ phải “xử lý các mục chưa đọc” vốn được mọi trình đọc RSS mặc định chấp nhận, và hiện thực hóa xuyên suốt giao diện ẩn dụ “dòng sông (River)” nơi nội dung tự nhiên xuất hiện, lưu lại rồi biến mất
  • Có thể đặt half-life cho từng nguồn feed, để tin nóng tồn tại 3 giờ, bài luận tồn tại 7 ngày… nghĩa là tuổi thọ hiển thị thay đổi theo loại nội dung, từ đó giải quyết về mặt cấu trúc vấn đề nguồn đăng quá nhiều chiếm lĩnh toàn bộ feed
  • Thay vì “đánh dấu là đã đọc”, ứng dụng dùng tương tác vật lý “thả đi” để hất tấm thẻ ra khỏi màn hình, với haptic feedback, hoạt ảnh và cả hoàn tác đều được thiết kế rất tỉ mỉ
  • Tách blog cá nhân khỏi URL feed để thành “Voices” riêng, đối xử con người và cơ quan truyền thông theo cách khác nhau; mọi phân tích chủ đề và gợi ý bằng AI đều chỉ chạy on-device
  • Cung cấp UI chuyên biệt cho iPhone, iPad và Mac, đồng thời có cả những trải nghiệm đặc trưng desktop như bảng lệnh Command-K và chế độ duyệt nhanh Sift

River — giao diện cốt lõi

  • Màn hình chính có dạng River, nơi mọi feed được hợp nhất thành một luồng duy nhất và không tồn tại bộ đếm bài chưa đọc
  • Lý do bỏ bộ đếm không phải vì thiết kế tối giản, mà là một phán đoán mang tính triết lý rằng “chính hành vi đếm mới là vấn đề”
  • Sau khi đến nơi, bài viết sẽ mờ dần theo thời gian rồi biến mất, trôi qua như nước chảy dưới cầu mà không cần đánh dấu đã đọc hay phân loại
  • Mỗi bài có một giá trị velocity quyết định tốc độ nó trở nên cũ
    • Tin nóng: biến mất sau 3 giờ
    • Bài báo thông thường: 18 giờ
    • Bài luận: 3 ngày
    • Hướng dẫn evergreen: tối đa 1 tuần
  • Các mục đã cũ sẽ dần tối đi rồi biến mất hoàn toàn, người dùng không cần thao tác gì thêm
  • Nguyên tắc là: “Thông tin có vòng đời tự nhiên của nó, và giao diện phải tôn trọng điều đó”

Half-Life — thiết lập half-life theo từng nguồn

  • Có thể chỉ định half-life cho mọi nguồn để kiểm soát thời gian bài viết lưu lại trong River
    • Feed tin nhanh như BBC World: 3 giờ
    • Ars Technica: 18 giờ
    • Những nguồn chậm như Aeon, The Marginalian: 1 tuần
  • Giải quyết vấn đề mà mọi feed theo thứ tự thời gian từ sau thời Google Reader đều gặp phải: nguồn đăng dày đặc chôn vùi tất cả phần còn lại
    • Dù The Verge đăng 20 bài một ngày thì chúng cũng biến mất sau vài giờ, còn một bài luận Craig Mod đăng mỗi tháng một lần có thể hiện diện vài ngày
  • Trong onboarding, ứng dụng đưa ra 5 cấp tốc độ: Breaking, News, Article, Essay, Evergreen; chỉ cần chọn một cấp cho mỗi nguồn, River sẽ lo phần còn lại

Release — thay cho “đánh dấu đã đọc”

  • Cụm “mark as read” mà đa số trình đọc RSS dùng mang hàm ý ngôn ngữ như một người quản trị đang xử lý giấy tờ
  • Current thay nó bằng Release
  • Nếu vuốt dài sang trái một thẻ trong River, thẻ sẽ bay đi và các thẻ còn lại sẽ sắp xếp lại vị trí như nước lấp vào khoảng trống
  • Khi cuộn đến cuối bài, nút Release sẽ nổi lên từ cạnh dưới; chỉ cần chạm một lần là quay lại River và bài đó đã ở trạng thái biến mất
  • Chi tiết thiết kế tương tác vật lý:
    • Khi kéo, thẻ hơi co lại để tạo cảm giác căng
    • Càng gần ngưỡng kích hoạt, haptic engine rung càng nhanh
    • Một ánh sáng ấm xuất hiện ở mép, và khi vượt qua ngưỡng thì thẻ bay đi
    • cửa sổ hoàn tác: bài đã thả đi vẫn được giữ trong bộ nhớ vài giây để có thể khôi phục, không có hộp thoại xác nhận

Tinh chỉnh chi tiết theo từng nguồn

  • Ngoài velocity, mỗi nguồn còn có thêm các tùy chọn khác
    • Lấy toàn văn bài viết (full article fetch): trực tiếp trích xuất từ web phần đầy đủ của những feed chỉ cung cấp đoạn teaser
    • Chế độ webcomic: chuyển sang trình đọc ưu tiên hình ảnh, hỗ trợ zoom, pan và hiển thị alt-text (tối ưu cho XKCD, v.v.)
    • Tắt tạm: ẩn một nguồn trong 1 tuần
    • Ghim: ghim một nguồn lên đầu River
  • Các tùy chọn này không bị giấu sâu trong phần cài đặt mà có thể truy cập chỉ bằng một lần vuốt trên từng nguồn

The River Speaks — thẻ hướng dẫn động

  • Current quan sát thói quen sử dụng rồi chèn vào giữa các bài những thẻ hướng dẫn không xâm lấn
    • Nếu một nguồn đăng 18 bài trong ngày, sẽ xuất hiện thẻ “The Verge posted 18 items today” cùng các tùy chọn giới hạn tốc độ hoặc tắt tiếng 24 giờ
    • Nếu bạn bỏ qua 10 bài liên tiếp từ cùng một nguồn, sẽ có gợi ý “You've skipped 10 from TechCrunch. Quiet or remove?”
    • Nếu bạn liên tục đọc một nguồn nào đó, ứng dụng sẽ gợi ý ghim; nếu bạn liên tục đọc cùng một chủ đề ở nhiều nguồn, ứng dụng sẽ gợi ý tạo Current mới
  • Những thẻ này không phải gợi ý do thuật toán điều khiển, cũng không nhằm tối đa hóa tương tác hay cướp lấy sự chú ý
  • Nó được ví như “một thủ thư nhận ra thói quen của bạn và lặng lẽ sắp xếp lại giá sách”
  • Mọi xử lý thông minh đều chỉ chạy trên thiết bị: dùng xử lý ngôn ngữ tự nhiên để nhận diện chủ đề, dùng Foundation Models (nếu khả dụng) để đối chiếu các bài liên quan, và không dữ liệu nào được gửi lên máy chủ

Voices — phân biệt con người và cơ quan truyền thông

  • Hầu hết trình đọc RSS chỉ hiển thị nguồn như một danh sách URL feed trong thanh bên
  • Current tách các feed do một người duy nhất viết, như blog cá nhân, thành Voice riêng
    • “Không phải đăng ký theo dõi một con người, mà là theo dõi một giọng nói”
  • Những feed được gắn là Voice sẽ tập hợp trong tab Voices để tạo thành một timeline theo thời gian
    • Voice hoạt động tích cực được hiển thị đầy đủ màu sắc, còn Voice yên ắng thì ở dạng grayscale, không ép người dùng phải chú ý
  • Chạm vào một Voice sẽ lọc chỉ còn bài viết của người đó
    • iPad: hiển thị tên và favicon trong sidebar
    • iPhone/Mac: một hàng khuôn mặt có thể cuộn phía trên timeline
  • Current tự động nhận diện blog cá nhân (mẫu subdomain, tần suất đăng, tín hiệu byline) và nhẹ nhàng gợi ý gán thành Voice, nhưng quyết định cuối cùng vẫn thuộc về người dùng

Currents — bộ sưu tập tùy chỉnh

  • River là chế độ xem mặc định nơi mọi thứ được trộn chung; khi muốn thu hẹp phạm vi, bạn dùng Currents
  • Nó nằm trên thanh ngang ở đầu màn hình và có thể chuyển chỉ bằng một cú vuốt
  • Ba mục mặc định gồm:
    • River: toàn bộ feed
    • Voices: những người đang theo dõi
    • Read Later: các bài đã lưu (được cache offline, hiển thị bằng tông hổ phách ấm để cho thấy đó là “của mình”)
  • “Folder” gợi nghĩa vụ sắp xếp, còn “category” gợi hình ảnh bảng tính, nên sản phẩm chọn tên “Currents” với ý nghĩa những dòng nước nhỏ trong một con sông lớn
  • Các thẻ hướng dẫn động đôi khi cũng phát hiện mẫu đọc và gợi ý tạo Current mới

Calm by Design — hệ thống thiết kế

  • Nguyên tắc khởi đầu của hệ thống thiết kế là: “Mọi giao diện đều là một tuyên bố về việc người dùng nên cảm thấy thế nào”
  • Tagline nội bộ của hệ thống thiết kế: “Calm but not boring. Beautiful but not loud. Typography as hero. Color as punctuation.”
  • Phần thân bài dùng serif hệ thống của iOS ở cỡ 16~18pt, mở rộng theo Dynamic Type
    • Đây là một lựa chọn có chủ ý trong bối cảnh phần lớn ứng dụng dùng sans-serif: serif đã là tiêu chuẩn cho đọc văn bản dài suốt 500 năm
    • Ở chế độ reader view, cỡ chữ serif được tăng lên 18pt, và trong những màn hình trống hay khoảnh khắc mang tính suy tưởng, một tầng typography “poetic” riêng sẽ được áp dụng
  • Bảng màu 9 lựa chọn, mỗi lựa chọn đều có biến thể sáng và tối:
    • Bright: dựa trên xanh iOS
    • Paper: ivory và amber ấm, gợi cảm giác đọc sách dưới ánh nến
    • Ocean: teal và seafoam lạnh
    • Dusk: violet và lavender dịu
    • Ember: rust và rose ấm
    • Midnight: đen OLED thực thụ
    • Slate: bảng màu kiểu trình soạn thảo code
    • Terminal: xanh phosphor trên nền đen cho những ai nhớ màn hình CRT
    • Solarized: bảng màu tinh chỉnh của Ethan Schoonover
  • Màu sắc không dùng để trang trí mà mang ý nghĩa ngữ nghĩa: amber ấm luôn là “của tôi” (bài đã lưu, bộ sưu tập cá nhân), teal tươi là “mới”, xanh sage là thành công, đỏ là lỗi

Motion & Touch — hoạt ảnh và haptic

  • Hoạt ảnh không phải đồ trang trí mà là một từ vựng
  • Năm tầng nhịp độ thời gian:
    • Instant (0,15 giây): phản hồi vi mô
    • Quick (0,22 giây): tương tác chính
    • Standard (0,28 giây): di chuyển thẻ
    • Gentle (0,35 giây): panel
    • Smooth (0,45 giây): chuyển động môi trường
  • Nhịp độ nhất quán tạo nên sự tin cậy ở cấp độ vô thức
  • Nền có CurrentLines: 5 sóng sin với biên độ và pha riêng chậm rãi trôi, mang lại sinh khí cho ứng dụng ở mức cảm nhận được hơn là nhìn thấy được
  • Chi tiết giao tiếp qua haptic:
    • Cử chỉ Release: chạm nhẹ khi đạt 50% lực căng, các xung nhịp tăng tốc như nhịp tim khi tiến gần ngưỡng, và khi kích hoạt sẽ có xác nhận hai tầng gồm một cú chạm mạnh rồi một cú chạm mềm
    • Khi cuộn River ổn định có cảm giác “thở ra” rất nhẹ; khi mở bài từ Voice có một xung mềm
  • Khi Reduce Motion được bật, mọi chuyển động sẽ dừng hoàn toàn: bỏ các đường ambient, xử lý chuyển cảnh tức thì, không có ngoại lệ
    • Khả năng tiếp cận không phải công tắc tính năng, mà là một ràng buộc thiết kế giúp toàn hệ thống tốt hơn

Four Swipes — tùy biến cử chỉ

  • Mọi thẻ trong River đều có 4 ô cử chỉ theo 4 hướng: vuốt trái ngắn, vuốt trái dài, vuốt phải ngắn, vuốt phải dài
  • Mặc định: vuốt trái ngắn = đánh dấu đã đọc, vuốt trái dài = Release, vuốt phải ngắn = lưu, vuốt phải dài = chia sẻ
  • Có thể gán lại mọi ô cho hành động mong muốn: đánh dấu đã đọc/chưa đọc, Release, lưu, tắt tiếng nguồn, sửa nguồn, chia sẻ, hoặc không làm gì
  • Màn hình cài đặt có thẻ xem trước trực tiếp để thử vuốt trước khi áp dụng
  • Vuốt ngắn và vuốt dài có ngưỡng khác nhau và đi kèm phản hồi haptic phân biệt rõ ràng

The Small Things — các chi tiết nhỏ

  • Vuốt từ mép trái: tìm kiếm, vuốt từ mép phải: cài đặt
    • Trong vài lần đầu, sẽ có gợi ý xuất hiện khi bạn tiến đến mép; sau 3 lần thì tự động biến mất
  • Tiến độ đọc được hiển thị bằng ngôn ngữ tự nhiên thay vì phần trăm: như “Just started”, “Halfway through” trên thẻ River
  • Tìm kiếm toàn văn (Full-text search): lập chỉ mục mọi bài bạn đã cuộn qua, mọi bài bạn đã đọc và hiển thị kết quả ngay khi gõ, biến feed thành một ký ức có thể tìm kiếm
  • Read Later không phải một hàng đợi mà là một thư viện: các bài đã lưu được cache offline, không hết hạn và chờ sẵn như sách trên giá mà không có bộ đếm

Beyond the Phone — trải nghiệm iPad & Mac

  • Không chỉ là ứng dụng iPhone được kéo giãn cho màn hình lớn; trải nghiệm riêng cho từng nền tảng đã được thiết kế
  • iPad:
    • Sidebar có thể thu gọn: Sources, Currents và Voices sẽ trượt vào khi cần, biến mất khi không cần
    • Chế độ ngang: sidebar và trình đọc đặt cạnh nhau, mở bài mà vẫn không mất vị trí trong River
    • Chế độ dọc: sidebar ẩn đi, River chiếm toàn màn hình
  • Mac:
    • Thiết kế keyboard-first
    • Command-K: bảng lệnh để chuyển Current, chuyển nguồn, tìm kiếm, đổi theme và thực hiện mọi thao tác mà không cần lần mò menu
    • Chế độ Sift: chế độ phù hợp với cách triage thực tế trên desktop; chỉ với một phím, mỗi bài sẽ hiện toàn màn hình và bạn có thể Release, lưu hoặc bỏ qua bằng một phím duy nhất

What I Left Out — những gì bị chủ đích loại bỏ

  • Loại bỏ hoàn toàn bộ đếm bài chưa đọc: không phải “chưa thêm vào” mà là “sẽ không bao giờ thêm vào”, một quyết định mang tính triết lý. Bộ đếm chưa đọc có thể tạo ra ứng dụng tốt hơn nếu xem RSS là công cụ quản trị, nhưng lại tạo ra ứng dụng tệ hơn nếu xem RSS là công cụ để đọc
  • Không có bố cục 3 khung: loại bỏ cấu trúc sidebar feed + danh sách mục + khung đọc. Đây là cách sản phẩm nghiêm túc chất vấn việc mọi người đã sao chép suốt 20 năm bố cục do Brent Simmons tạo ra từ năm 2002
  • Không có tuyển chọn theo thuật toán: xuất phát từ nhận thức rằng mạng xã hội đã thay thế phantom obligation bằng “nỗi sợ bỏ lỡ điều đang xảy ra ngay lúc này (FOMO)”. River chỉ chảy theo đúng thứ tự xuất hiện, và chỉ velocity do người dùng đặt mới có tác động
  • Story threading: hệ thống nhóm các bài liên quan từ nhiều nguồn thành các mạch truyện đã được hoàn thiện nhưng ra mắt ở trạng thái tắt. Việc kiểm chứng bằng Foundation Models on-device cũng hoạt động, nhưng vì cách trình bày vẫn chưa phù hợp nên tác giả chọn hoãn lại cho đến khi sẵn sàng — hoặc có thể là mãi mãi — thay vì phát hành một thứ mới hoàn thiện một nửa
  • Performance budget: giữ 60fps trên mọi thiết bị và dùng dưới 150MB bộ nhớ khi cuộn
    • CurrentLines chạy ở 30fps thay vì 60fps để dành dư địa
    • Một số chuyển cảnh đã được đơn giản hóa so với bản prototype vì gây rớt khung hình trên phần cứng cũ
    • “Hiệu năng là tính năng, và độ giật (jank) là bug”

3 bình luận

 

Ý tưởng thì hấp dẫn đấy, nhưng theo kinh nghiệm của tôi, trong những nỗ lực lý tưởng kiểu này thì hiếm khi có cái nào thực sự thành công..
Hiện tại thì có lẽ Feedly vẫn là lựa chọn an toàn nhất, cả tính năng AI cũng tốt nữa.

 

Từ sau Reeder thì tôi hầu như không xem qua các trình đọc khác. Nếu là người dùng RSS reader thì đây đúng là một bài viết khiến bạn thấy rất hứng thú.

Thiết kế thì tốt, nhưng có lẽ vì vẫn còn ở giai đoạn đầu nên việc chưa có tùy chỉnh phím tắt là một thiếu sót lớn. Trước mắt tôi sẽ dùng thêm vài ngày nữa.