9 คะแนน โดย GN⁺ 15 일 전 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • โปรแกรมอ่าน RSS ตัวใหม่ที่ปฏิเสธแนวคิดพื้นฐานร่วมกันของโปรแกรมอ่าน RSS ทั่วไปอย่าง ภาระหน้าที่ในการ 'จัดการรายการที่ยังไม่ได้อ่าน' ตั้งแต่รากฐาน และถ่ายทอดอุปมาของ 'สายน้ำ (River)' ที่เนื้อหาจะมาถึง คงอยู่ แล้วหายไปอย่างเป็นธรรมชาติไปทั่วทั้งอินเทอร์เฟซ
  • ตั้งค่า half-life ให้แต่ละแหล่งฟีดได้ ทำให้เนื้อหาแต่ละประเภทมีอายุการแสดงผลต่างกัน เช่น ข่าวด่วน 3 ชั่วโมง เอสเซย์ 7 วัน และแก้ปัญหาที่แหล่งซึ่งโพสต์ถี่ครอบงำฟีดทั้งหมดได้ในระดับโครงสร้าง
  • แทนที่จะ "ทำเครื่องหมายว่าอ่านแล้ว" ใช้อินเทอร์แอ็กชันเชิงฟิสิกส์แบบ 'ปล่อยไป' ที่ปัดการ์ดให้ลอยหายไป พร้อมออกแบบรายละเอียดทั้งแรงสั่นตอบสนอง แอนิเมชัน และการเลิกทำไว้อย่างประณีต
  • แยกบล็อกส่วนตัวออกจาก URL ของฟีดเป็น 'Voices' เพื่อปฏิบัติต่อบุคคลและสื่อไม่เหมือนกัน และการวิเคราะห์หัวข้อกับคำแนะนำที่ใช้ AI ทั้งหมดจะทำงาน บนอุปกรณ์เท่านั้น
  • มี UI เฉพาะสำหรับ iPhone, iPad และ Mac รวมถึงประสบการณ์แบบเดสก์ท็อปโดยเฉพาะอย่าง Command-K palette และโหมดคัดกรองเร็ว Sift

River — อินเทอร์เฟซหลัก

  • หน้าหลักเป็น River ที่รวมฟีดทั้งหมดไว้เป็นสายน้ำเดียว และไม่มีตัวนับบทความที่ยังไม่ได้อ่าน
  • เหตุผลที่ตัดตัวนับออกไม่ใช่เพื่อความมินิมอล แต่เป็นการตัดสินเชิงปรัชญาว่า "ตัวปัญหาคือการนับนั่นเอง"
  • หลังมาถึงได้ระยะหนึ่ง บทความจะค่อย ๆ จางลงและหายไป โดยไม่ต้องมีการทำเครื่องหมายว่าอ่านแล้วหรือจัดหมวดหมู่ ราวกับน้ำที่ไหลผ่านใต้สะพาน
  • แต่ละบทความมีค่า velocity ที่กำหนดว่ามันจะเก่าเร็วแค่ไหน
    • ข่าวด่วน: หายไปใน 3 ชั่วโมง
    • ข่าวทั่วไป: 18 ชั่วโมง
    • เอสเซย์: 3 วัน
    • บทสอนแบบ evergreen: สูงสุด 1 สัปดาห์
  • รายการที่เก่าลงจะค่อย ๆ มืดลงก่อนหายไปทั้งหมด โดยผู้ใช้ไม่ต้องทำอะไรเพิ่มเติม
  • ยึดหลักว่า "ข้อมูลมีอายุขัยตามธรรมชาติ และอินเทอร์เฟซควรเคารพสิ่งนั้น"

Half-Life — ตั้งค่า half-life รายแหล่ง

  • กำหนด half-life ให้ทุกแหล่งเพื่อควบคุมระยะเวลาที่บทความจะอยู่ใน River
    • ฟีดข่าวด่วนอย่าง BBC World: 3 ชั่วโมง
    • Ars Technica: 18 ชั่วโมง
    • แหล่งที่อัปเดตช้าอย่าง Aeon, The Marginalian: 1 สัปดาห์
  • แก้ปัญหาที่ฟีดเรียงตามเวลาทั้งหมดหลังยุค Google Reader ต้องเจอ นั่นคือ แหล่งที่โพสต์เยอะกลบทุกอย่างที่เหลือ
    • ต่อให้ The Verge ลงวันละ 20 ชิ้นก็จะหายไปภายในไม่กี่ชั่วโมง ขณะที่เอสเซย์ของ Craig Mod ที่ลงเดือนละครั้งจะคงอยู่ได้หลายวัน
  • ตอน onboarding จะมีความเร็วให้เลือก 5 ระดับ ได้แก่ Breaking, News, Article, Essay, Evergreen โดยเลือกเพียงหนึ่งระดับต่อแหล่ง แล้ว River จะจัดการที่เหลือเอง

Release — แทน 'ทำเครื่องหมายว่าอ่านแล้ว' ด้วย 'ปล่อยไป'

  • "mark as read" ที่โปรแกรมอ่าน RSS ส่วนใหญ่ใช้มีนัยทางภาษาคล้ายผู้ดูแลระบบกำลังเคลียร์เอกสาร
  • Current แทนที่สิ่งนี้ด้วย Release
  • ใน River หาก ปัดซ้ายค้างยาว ที่การ์ด การ์ดจะปลิวหายไป และการ์ดที่เหลือจะจัดเรียงเข้าที่เหมือนสายน้ำที่ไหลมาเติมช่องว่าง
  • เมื่ออ่านถึงท้ายบทความ ปุ่ม Release จะลอยขึ้นมาจากด้านล่าง แตะครั้งเดียวก็กลับสู่ River ได้ และบทความนั้นจะหายไปแล้ว
  • รายละเอียดของอินเทอร์แอ็กชันเชิงฟิสิกส์:
    • ระหว่างลาก การ์ดจะยุบเล็กน้อยเพื่อ สร้างความตึงเครียด
    • ยิ่งเข้าใกล้จุดวิกฤต เอนจินแรงสั่นจะสั่นถี่ขึ้นเรื่อย ๆ
    • มีแสงอุ่น ๆ ปรากฏที่ขอบ และเมื่อผ่านจุดวิกฤตการ์ดจะปลิวออกไป
    • มี ช่วงเวลาให้เลิกทำ: บทความที่ปล่อยไปแล้วยังคงอยู่ในหน่วยความจำอีกไม่กี่วินาทีเพื่อย้อนกลับได้ โดยไม่มีหน้าต่างยืนยัน

การปรับแต่งละเอียดรายแหล่ง

  • นอกจาก velocity ยังมีตัวเลือกเพิ่มเติมสำหรับแต่ละแหล่ง
    • full article fetch: ดึงข้อความเต็มจากเว็บโดยตรงสำหรับฟีดที่ให้มาแค่ย่อหน้า teaser
    • โหมดเว็บคอมิก: เปลี่ยนเป็นผู้อ่านที่เน้นรูปภาพ รองรับซูม เลื่อนภาพ และแสดง 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: แสดงชื่อและ favicon ในแถบด้านข้าง
    • iPhone/Mac: แสดงเป็น แถวใบหน้าที่เลื่อนได้ เหนือไทม์ไลน์
  • Current จะ ตรวจจับบล็อกส่วนตัวอัตโนมัติ (จากแพตเทิร์นซับโดเมน ความถี่การโพสต์ และสัญญาณจาก byline) และเสนอให้กำหนดเป็น Voice อย่างนุ่มนวล แต่การตัดสินใจสุดท้ายเป็นของผู้ใช้

Currents — คอลเลกชันแบบกำหนดเอง

  • River คือมุมมองเริ่มต้นที่รวมทุกอย่างไว้ด้วยกัน และเมื่ออยากจำกัดขอบเขตจึงใช้ Currents
  • อยู่ในแถบแนวนอนด้านบนของหน้าจอ และสลับได้ด้วยการปัดครั้งเดียว
  • มีให้มา 3 แบบเป็นค่าเริ่มต้น:
    • River: ฟีดทั้งหมด
    • Voices: คนที่ติดตามอยู่
    • Read Later: บทความที่บันทึกไว้ (แคชออฟไลน์ พร้อม สีแอมเบอร์อุ่น เพื่อบอกว่าเป็น "ของฉัน")
  • คำว่า "โฟลเดอร์" สื่อถึงภาระในการจัดระเบียบ และ "หมวดหมู่" ชวนให้นึกถึงสเปรดชีต จึงเลือกใช้คำว่า Currents ที่หมายถึงลำน้ำย่อยในแม่น้ำสายใหญ่
  • การ์ดแนะนำแบบไดนามิกยังอาจตรวจจับรูปแบบการอ่านและ แนะนำให้สร้าง Current ใหม่ ได้ด้วย

Calm by Design — ระบบการออกแบบ

  • ระบบการออกแบบเริ่มต้นจากหลักที่ว่า "ทุกอินเทอร์เฟซล้วนเป็นข้อเสนอว่าผู้ใช้ควรรู้สึกอย่างไร"
  • แท็กไลน์ภายในระบบการออกแบบคือ "Calm but not boring. Beautiful but not loud. Typography as hero. Color as punctuation."
  • เนื้อความหลักใช้ ฟอนต์ serif ของระบบ iOS ขนาด 16~18pt และขยายตาม Dynamic Type
    • เป็นการเลือกโดยตั้งใจในสภาพแวดล้อมที่แอปส่วนใหญ่ใช้ sans-serif: ฟอนต์ serif คือมาตรฐานของการอ่านงานยาวมาตลอด 500 ปี
    • ใน reader view จะขยายเป็น serif 18pt และในหน้าว่างหรือช่วงที่ชวนครุ่นคิดจะใช้ระดับไทโปกราฟีแบบ "poetic" โดยเฉพาะ
  • มี ชุดสี 9 แบบ และแต่ละแบบมีทั้งโหมดสว่างและมืด:
    • Bright: อิงจากสีน้ำเงินของ iOS
    • Paper: งาช้างอุ่นและแอมเบอร์ ให้ความรู้สึกเหมือนอ่านใต้แสงเทียน
    • Ocean: teal และ seafoam โทนเย็น
    • Dusk: violet และ lavender แบบนุ่มนวล
    • Ember: rust และ rose โทนอุ่น
    • Midnight: ดำ OLED แท้
    • Slate: ชุดสีแบบตัวแก้ไขโค้ด
    • Terminal: เขียว phosphor บนพื้นดำ สำหรับคนที่จดจำ CRT ได้
    • Solarized: ชุดสีอันประณีตของ Ethan Schoonover
  • สีไม่ได้ใช้เพื่อการตกแต่ง แต่ใช้ในความหมายเชิง semantic: แอมเบอร์อุ่นหมายถึง "ของฉัน" เสมอ (บทความที่บันทึกไว้ คอลเลกชันส่วนตัว), teal สดหมายถึง "ของใหม่", เขียว sage คือความสำเร็จ, แดงคือข้อผิดพลาด

Motion & Touch — แอนิเมชันและแรงสั่น

  • แอนิเมชันไม่ใช่ของตกแต่ง แต่เป็น คำศัพท์ (vocabulary)
  • มีระดับจังหวะเวลา 5 ขั้น:
    • Instant (0.15 วินาที): ฟีดแบ็กจิ๋ว
    • Quick (0.22 วินาที): อินเทอร์แอ็กชันหลัก
    • Standard (0.28 วินาที): การเคลื่อนย้ายการ์ด
    • Gentle (0.35 วินาที): แผงต่าง ๆ
    • Smooth (0.45 วินาที): การเคลื่อนไหวบรรยากาศ
  • จังหวะเวลาที่สม่ำเสมอช่วยสร้าง ความไว้วางใจโดยไม่รู้ตัว
  • พื้นหลังมี CurrentLines: คลื่นไซน์ 5 เส้นที่มีแอมพลิจูดและเฟสเฉพาะตัว ไหลช้า ๆ เพื่อเพิ่มชีวิตชีวาให้แอปในระดับที่ไม่ใช่แค่เห็น แต่ รู้สึกได้
  • รายละเอียดการสื่อสารด้วยแรงสั่น:
    • ท่า Release: แตะหนึ่งครั้งเมื่อถึง 50% ของแรงตึง, เมื่อเข้าใกล้จุดวิกฤตจะเป็น จังหวะพัลส์ที่เร่งเหมือนการเต้นของหัวใจ, และเมื่อทริกเกอร์จะเป็นการยืนยันแบบ สองชั้น ด้วยแรงแตะแรงตามด้วยแตะนุ่ม
    • เมื่อการเลื่อน 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:
    • ออกแบบแบบ keyboard-first
    • Command-K: ใช้ command palette เพื่อสลับ Current, ย้ายไปยังแหล่ง, ค้นหา, เปลี่ยนธีม และทำทุกอย่างได้โดยไม่ต้องไล่เมนู
    • โหมด Sift: โหมดที่สอดคล้องกับวิธีคัดกรองงานจริงบนเดสก์ท็อป กดปุ่มเดียวเพื่อให้แต่ละบทความแสดงเต็มจอ แล้วใช้ ปุ่มเดียว สำหรับ Release, บันทึก หรือข้าม

What I Left Out — สิ่งที่ตั้งใจตัดออก

  • ไม่มีตัวนับบทความที่ยังไม่ได้อ่านโดยสิ้นเชิง: ไม่ใช่แค่ "ยังไม่ได้ใส่" แต่คือ "จะไม่มีวันใส่" เป็นการตัดสินใจทางปรัชญา ตัวนับยังไม่ได้อ่านอาจทำให้แอปดีขึ้นในฐานะผู้จัดการ RSS แต่ทำให้แย่ลงในฐานะผู้อ่าน RSS
  • ไม่มีเลย์เอาต์ 3 พาเนล: ตัดโครงสร้างแถบฟีด + รายการบทความ + หน้าต่างอ่านออกไป รับคำถามอย่างจริงจังว่าทำไมทุกคนถึงลอกเลย์เอาต์ที่ Brent Simmons คิดขึ้นในปี 2002 กันมาตลอด 20 ปี
  • ไม่มีการคิวเรตด้วยอัลกอริทึม: มองว่าโซเชียลมีเดียได้แทนที่ phantom obligation ด้วย "ความกลัวว่าจะพลาดสิ่งที่กำลังเกิดขึ้นตอนนี้ (FOMO)" River จึงไหลตามลำดับการมาถึงเท่านั้น และมีเพียง velocity ที่ผู้ใช้ตั้งไว้เท่านั้นที่มีผล
  • story threading: แม้สร้างระบบที่รวมบทความเกี่ยวข้องจากหลายแหล่งเป็นเธรดเชิงเรื่องเล่าเสร็จแล้ว แต่ เปิดตัวโดยปิดการทำงานไว้ แม้การตรวจสอบด้วย Foundation Models บนอุปกรณ์จะทำงานแล้วก็ตาม เพราะวิธีนำเสนอยังไม่เหมาะสม จึงเลือกพักไว้จนกว่าจะพร้อม หรืออาจตลอดไป แทนที่จะปล่อยของที่ยังไม่เสร็จครึ่ง ๆ กลาง ๆ
  • งบประมาณด้านประสิทธิภาพ: ทุกอุปกรณ์ต้องได้ 60fps และระหว่างเลื่อนต้องใช้หน่วยความจำต่ำกว่า 150MB
    • CurrentLines ทำงานที่ 30fps ไม่ใช่ 60fps เพื่อเผื่อทรัพยากร
    • การเปลี่ยนหน้าบางส่วนถูกทำให้ง่ายกว่าต้นแบบ: เพราะบนฮาร์ดแวร์รุ่นเก่าเกิดเฟรมดรอป
    • "ประสิทธิภาพคือฟีเจอร์ และอาการกระตุก (jank) คือบั๊ก"

3 ความคิดเห็น

 
tebica 14 일 전

แนวคิดน่าสนใจดี แต่จากประสบการณ์ที่ผ่านมา ความพยายามในอุดมคติแบบนี้ไม่ค่อยมีที่ประสบความสำเร็จนัก..
จนถึงตอนนี้น่าจะยังเป็น Feedly ที่ฟีเจอร์ AI ก็ดี และโดยรวมใช้งานได้ลงตัวที่สุดนะ

 
xguru 14 일 전

ตั้งแต่ใช้ Reeder มาก็แทบไม่ได้มองรีดเดอร์ตัวอื่นเลยครับ
ถ้าเป็นคนที่ใช้ RSS รีดเดอร์อยู่แล้ว นี่เป็นบทความที่ชวนให้สนใจมากเลยครับ

แนวคิดการออกแบบก็ดีนะ แต่เพราะยังอยู่ช่วงเริ่มต้นหรือเปล่า จุดเสียใหญ่คือยังไม่มีการปรับแต่งคีย์ลัดเองได้
เดี๋ยวจะลองใช้อีกสักสองสามวันครับ