- यह नया RSS रीडर उन सभी पारंपरिक धारणाओं को मूल रूप से अस्वीकार करता है जिनमें 'अनपढ़े आइटम संभालने' का एक अनिवार्य दबाव माना जाता रहा है, और पूरे इंटरफ़ेस में 'नदी (River)' रूपक को लागू करता है जहाँ कंटेंट स्वाभाविक रूप से आता है, ठहरता है और फिर गायब हो जाता है
- हर फ़ीड स्रोत के लिए half-life सेट किया जा सकता है, जिससे breaking news 3 घंटे, essays 7 दिन आदि जैसे कंटेंट प्रकारों की दृश्यता-अवधि अलग होती है, और बहुत ज़्यादा पोस्ट करने वाले स्रोतों द्वारा पूरी फ़ीड पर कब्ज़ा कर लेने की समस्या संरचनात्मक रूप से हल होती है
- लेखों को 'mark as read' करने के बजाय 'Release' नाम का जेस्चर अपनाया गया है, जिसमें कार्ड को उड़ा दिया जाता है; इसके साथ haptic feedback, animation और undo तक बहुत बारीकी से डिज़ाइन किए गए हैं
- व्यक्तिगत ब्लॉगों को फ़ीड URL के बजाय 'Voices' के रूप में अलग किया जाता है, ताकि लोगों और मीडिया को अलग-अलग तरह से संभाला जा सके; साथ ही, सभी AI-आधारित topic analysis और recommendations केवल on-device चलते हैं
- iPhone·iPad·Mac के लिए उनके अनुरूप समर्पित UI दिए गए हैं, और Command-K palette तथा तेज़ review mode Sift जैसे desktop-विशिष्ट अनुभव भी शामिल हैं
River — मुख्य इंटरफ़ेस
- मुख्य स्क्रीन एक संयुक्त River है जहाँ सभी फ़ीड एक साथ मिल जाती हैं, और अनपढ़े लेखों की कोई गिनती मौजूद नहीं होती
- गिनती हटाने का कारण minimal design नहीं, बल्कि यह दार्शनिक मान्यता है कि "गिनना ही समस्या है"
- लेख आने के कुछ समय बाद धीरे-धीरे धुंधले होते हैं और फिर गायब हो जाते हैं; बिना read status या वर्गीकरण के वे ऐसे गुजरते हैं जैसे पुल के नीचे पानी बहता हो
- हर लेख के पास एक velocity मान होता है, जो तय करता है कि वह कितनी जल्दी पुराना माना जाएगा
- breaking news: 3 घंटे में गायब
- सामान्य लेख: 18 घंटे
- essays: 3 दिन
- evergreen tutorials: अधिकतम 1 सप्ताह
- पुराने पड़ चुके आइटम धीरे-धीरे गहरे होते जाते हैं और अंततः पूरी तरह गायब हो जाते हैं; उपयोगकर्ता को अलग से कुछ करने की ज़रूरत नहीं
- मूल सिद्धांत: "जानकारी की एक प्राकृतिक आयु होती है, और इंटरफ़ेस को उसका सम्मान करना चाहिए"
Half-Life — स्रोत-आधारित half-life सेटिंग
- हर स्रोत को एक half-life दिया जाता है, जिससे नियंत्रित होता है कि लेख River में कितनी देर तक रहेगा
- BBC World जैसे breaking news फ़ीड: 3 घंटे
- Ars Technica: 18 घंटे
- Aeon, The Marginalian जैसे धीमे स्रोत: 1 सप्ताह
- यह उस समस्या को हल करता है जिससे Google Reader के बाद की लगभग सभी chronological feeds जूझती रही हैं, यानी बहुत अधिक प्रकाशित करने वाले स्रोत बाकी सबको दबा देते हैं
- चाहे The Verge एक दिन में 20 पोस्ट करे, वे कुछ घंटों में गायब हो जाएँगी; जबकि Craig Mod का महीने में एक बार आने वाला essay कई दिनों तक बना रहेगा
- onboarding के दौरान Breaking, News, Article, Essay, Evergreen की पाँच गति-स्तर पेश किए जाते हैं; हर स्रोत के लिए एक चुनना होता है और बाकी River संभाल लेता है
Release — 'mark as read' की जगह 'छोड़ देना'
- ज़्यादातर RSS रीडर का "mark as read" ऐसा भाषाई संकेत देता है जैसे कोई प्रबंधक कागज़ात निपटा रहा हो
- Current इसे Release से बदलता है
- River में कार्ड को बाईं ओर लंबा swipe करने पर कार्ड उड़ जाता है, और बाकी कार्ड ऐसे व्यवस्थित हो जाते हैं जैसे पानी खाली जगह भर रहा हो
- लेख के अंत तक पहुँचने पर नीचे से Release बटन उभरता है; एक टैप में River पर वापसी होती है और वह लेख पहले ही गायब हो चुका होता है
- physics-based interaction की बारीकियाँ:
- drag करते समय कार्ड हल्का-सा compress होता है और तनाव का एहसास बनता है
- threshold के करीब आते-आते haptic engine तेज़-तेज़ कंपन करने लगता है
- किनारों पर गर्म रोशनी दिखाई देती है, और सीमा पार होते ही कार्ड उड़ जाता है
- undo window उपलब्ध: छोड़ा गया लेख कुछ सेकंड तक memory में रहता है, इसलिए वापस लाना संभव है; कोई confirmation dialog नहीं
स्रोत-स्तर की बारीक ट्यूनिंग
- velocity के अलावा हर स्रोत के लिए अतिरिक्त विकल्प दिए गए हैं
- full article fetch: जो फ़ीड सिर्फ teaser paragraph देती हैं, उनके पूरे लेख वेब से सीधे निकाले जाते हैं
- webcomic mode: image-first reader में बदल जाता है, जिसमें zoom·pan·alt-text display का समर्थन है (XKCD आदि के लिए अनुकूल)
- mute: किसी खास स्रोत को 1 सप्ताह के लिए छिपाएँ
- pin: किसी स्रोत को River के शीर्ष पर स्थिर रखें
- ये विकल्प settings मेनू की गहराई में नहीं, बल्कि हर स्रोत पर एक swipe से उपलब्ध हैं
The River Speaks — डायनेमिक गाइड कार्ड
- Current उपयोग की आदतों को देखकर लेखों के बीच non-intrusive guide cards डालता है
- अगर कोई स्रोत एक दिन में 18 पोस्ट करे, तो "The Verge posted 18 items today" कार्ड के साथ rate limit और 24-hour mute विकल्प दिए जाते हैं
- अगर आप एक ही स्रोत से 10 लेख लगातार छोड़ दें, तो "You've skipped 10 from TechCrunch. Quiet or remove?" जैसा सुझाव आता है
- अगर आप किसी खास स्रोत को लगातार पढ़ते रहें, तो pin का सुझाव; और यदि कई स्रोतों में एक ही विषय बार-बार पढ़ा जाए, तो नया Current बनाने का सुझाव
- ये कार्ड algorithmic recommendations नहीं हैं, और न ही engagement बढ़ाने या ध्यान खींचने के लिए बने हैं
- इनकी तुलना ऐसे लाइब्रेरियन से की गई है जो आपकी आदत समझकर चुपचाप शेल्फ़ पुनर्व्यवस्थित कर देता है
- सारी intelligent processing केवल on-device होती है: natural language processing से विषय पहचाने जाते हैं, Foundation Models (जहाँ उपलब्ध हों) से संबंधित लेखों की पुष्टि की जाती है, और कोई भी data server पर नहीं भेजा जाता
Voices — व्यक्ति और माध्यम का अंतर
- अधिकांश RSS रीडर स्रोतों को साइडबार में सिर्फ फ़ीड URL की सूची के रूप में दिखाते हैं
- Current व्यक्तिगत ब्लॉग जैसे एक व्यक्ति द्वारा लिखी जाने वाली फ़ीड को अलग Voice के रूप में पहचानता है
- "आप किसी व्यक्ति को subscribe नहीं कर रहे, बल्कि उसकी आवाज़ का अनुसरण कर रहे हैं"
- Voice के रूप में चिह्नित फ़ीड Voices tab में इकट्ठी होकर chronological timeline बनाती हैं
- सक्रिय Voice full color में दिखती हैं, जबकि शांत Voice grayscale में, ताकि वे ध्यान की मांग न करें
- किसी Voice पर टैप करने से सिर्फ उसी व्यक्ति के लेख फ़िल्टर होकर दिखते हैं
- iPad: साइडबार में नाम और favicon
- iPhone/Mac: timeline के ऊपर scrollable faces row
- Current व्यक्तिगत ब्लॉगों को स्वचालित रूप से पहचानता है (subdomain patterns, publishing frequency, byline signals) और Voice के रूप में चिह्नित करने का सहज सुझाव देता है, लेकिन अंतिम निर्णय उपयोगकर्ता का होता है
Currents — कस्टम कलेक्शन
- River डिफ़ॉल्ट दृश्य है जहाँ सब कुछ एक साथ मिला रहता है; दायरा सीमित करना हो तो Currents इस्तेमाल किए जाते हैं
- ये स्क्रीन के ऊपर एक horizontal bar में होते हैं, और एक swipe से बदले जा सकते हैं
- डिफ़ॉल्ट रूप से तीन दिए गए हैं:
- River: पूरी फ़ीड
- Voices: जिन लोगों को आप फ़ॉलो करते हैं
- Read Later: सहेजे गए लेख (offline cache, गर्म amber रंग से "अपना" होने का संकेत)
- "folders" संगठन के दायित्व का एहसास देते हैं, और "categories" spreadsheet जैसा लगते हैं, इसलिए इनका नाम Currents रखा गया — यानी बड़ी नदी के भीतर छोटी धाराएँ
- डायनेमिक गाइड कार्ड पढ़ने के पैटर्न देखकर नया Current बनाने का सुझाव भी दे सकते हैं
Calm by Design — डिज़ाइन सिस्टम
- डिज़ाइन सिस्टम की शुरुआत इस सिद्धांत से होती है कि "हर इंटरफ़ेस इस बात पर दावा करता है कि उपयोगकर्ता को कैसा महसूस करना चाहिए"
- आंतरिक tagline: "Calm but not boring. Beautiful but not loud. Typography as hero. Color as punctuation."
- मुख्य पाठ iOS system serif में 16~18pt पर है, और Dynamic Type के अनुसार फैलता है
- sans-serif ऐप्स से भरी दुनिया में यह एक जानबूझकर किया गया चुनाव है: serif 500 वर्षों से long-form reading का मानक रहा है
- reader view में यह 18pt serif तक बड़ा होता है, और खाली स्क्रीन या चिंतनशील पलों में अलग "poetic" typography tier लागू होती है
- 9 रंग पैलेट, हर एक के light·dark वेरिएंट के साथ:
- Bright: iOS blue आधारित
- Paper: गर्म ivory·amber, मोमबत्ती की रोशनी में पढ़ने जैसा एहसास
- Ocean: cool teal·seafoam
- Dusk: soft violet·lavender
- Ember: गर्म rust·rose
- Midnight: असली OLED black
- Slate: code editor palette
- Terminal: CRT याद रखने वालों के लिए phosphor green on black
- Solarized: Ethan Schoonover की सटीक palette
- रंग सजावट नहीं बल्कि semantic भूमिका निभाते हैं: गर्म amber हमेशा "मेरा" दर्शाता है (saved articles, personal collections), ताज़ा teal "नया", sage green सफलता, और red त्रुटि
Motion & Touch — animation और haptics
- animation सजावट नहीं, बल्कि एक vocabulary है
- पाँच-स्तरीय timing tiers:
- Instant (0.15 सेकंड): micro-feedback
- Quick (0.22 सेकंड): मुख्य interactions
- Standard (0.28 सेकंड): card movement
- Gentle (0.35 सेकंड): panels
- Smooth (0.45 सेकंड): ambient motion
- timing की यह स्थिरता अवचेतन भरोसा पैदा करती है
- बैकग्राउंड में CurrentLines: अलग amplitude और phase वाली 5 sine waves धीरे-धीरे बहती हैं, जिससे ऐप में ऐसा जीवन आता है जो दिखने से ज़्यादा महसूस होता है
- haptic communication का विस्तार:
- Release gesture: 50% tension पर tap, threshold के पास दिल की धड़कन जैसी तेज़ होती rhythm pulse, trigger होने पर एक strong tap + एक soft tap की दो-स्तरीय पुष्टि
- River scroll स्थिर होने पर हल्की "साँस छोड़ने" जैसी अनुभूति, Voice लेख खोलने पर नरम pulse
- Reduce Motion चालू होने पर सारी motion पूरी तरह बंद: ambient lines हट जाती हैं, transitions तुरंत हो जाते हैं, कोई अपवाद नहीं
- accessibility यहाँ कोई feature toggle नहीं, बल्कि ऐसी design constraint है जो पूरे सिस्टम को बेहतर बनाती है
Four Swipes — gesture customization
- River के हर कार्ड पर 4-दिशात्मक gesture slots हैं: छोटा left, लंबा left, छोटा right, लंबा right
- डिफ़ॉल्ट: छोटा left = mark as read, लंबा left = Release, छोटा right = save, लंबा right = share
- सभी slots को मनचाहे action पर remap किया जा सकता है: mark read/unread, Release, save, source mute, source edit, share, या कुछ नहीं
- settings screen में live preview card दिया गया है, जिससे लागू करने से पहले swipe test किया जा सकता है
- छोटे और लंबे swipe के लिए अलग threshold और अलग haptic feedback लागू होता है
The Small Things — छोटी लेकिन अहम सुविधाएँ
- बाएँ किनारे से swipe: search, दाएँ किनारे से swipe: settings
- शुरुआत की कुछ बार किनारे के पास पहुँचने पर hint दिखता है, और 3 बार के बाद अपने-आप हट जाता है
- reading progress को प्रतिशत के बजाय natural language में दिखाया जाता है: जैसे "Just started", "Halfway through" आदि River कार्ड पर दिखते हैं
- Full-text search: आपने जिन सभी लेखों को scroll किया है और जो भी पढ़े हैं, सब index होते हैं; टाइप करते ही परिणाम दिखते हैं, और फ़ीड एक searchable memory बन जाती है
- Read Later कोई queue नहीं बल्कि library है: सहेजे गए लेख offline cache होते हैं, expire नहीं होते, और बिना गिनती के किताबों की तरह शेल्फ़ पर प्रतीक्षा करते हैं
Beyond the Phone — iPad & Mac अनुभव
- यह सिर्फ iPhone ऐप को बड़े स्क्रीन पर फैलाने की कोशिश नहीं है, बल्कि हर platform के लिए समर्पित अनुभव डिज़ाइन किया गया है
- iPad:
- folding sidebar: sources, Currents, Voices ज़रूरत पड़ने पर slide in होते हैं, और न होने पर गायब
- landscape mode: sidebar और reader साथ-साथ रहते हैं, इसलिए लेख खोलने पर भी River में अपनी जगह नहीं खोती
- portrait mode: sidebar छिपा रहता है, River पूरी स्क्रीन ले लेता है
- Mac:
- keyboard-first डिज़ाइन
- Command-K: command palette से Current बदलना, source jump, search, theme change आदि सभी काम; मेनू में भटकने की ज़रूरत नहीं
- Sift mode: desktop पर वास्तविक triage workflow के अनुरूप मोड, जिसमें एक key दबाने पर हर लेख full screen में खुलता है और Release·save·skip को single key से नियंत्रित किया जा सकता है
What I Left Out — जिन चीज़ों को जानबूझकर छोड़ा गया
- अनपढ़े लेखों की गिनती पूरी तरह बाहर: यह "अभी तक नहीं जोड़ा" गया फीचर नहीं, बल्कि "कभी नहीं जोड़ा जाएगा" वाला दार्शनिक निर्णय है। unread count RSS manager के रूप में बेहतर ऐप बनाता है, लेकिन RSS reader के रूप में बदतर
- कोई 3-pane layout नहीं: feed sidebar + item list + reading pane वाली संरचना को अस्वीकार किया गया है। 2002 में Brent Simmons द्वारा बनाए गए इस लेआउट को 20 साल से सबने दोहराया है—इस पर गंभीर सवाल उठाया गया है
- कोई algorithmic curation नहीं: यह समझते हुए कि social media ने phantom obligation की जगह "अभी क्या हो रहा है, यह छूट जाने का डर (FOMO)" दे दी है। River केवल आने के क्रम में बहता है; सिर्फ उपयोगकर्ता द्वारा तय की गई velocity ही असर डालती है
- story threading: कई स्रोतों के संबंधित लेखों को narrative thread में बाँधने वाला सिस्टम तैयार है, लेकिन disabled state में लॉन्च किया गया है। on-device Foundation Models के साथ verification भी काम करता है, पर presentation अभी संतोषजनक नहीं; इसलिए आधा-पका फीचर जारी करने के बजाय इसे तैयार होने तक, या शायद हमेशा के लिए, रोका गया है
- performance budget: सभी डिवाइस पर 60fps, और scrolling के दौरान memory 150MB से कम
- CurrentLines को headroom बनाए रखने के लिए 30fps पर चलाया जाता है, 60fps पर नहीं
- कुछ transitions prototype की तुलना में सरल बनाए गए: पुराने hardware पर frame drops आ रहे थे
- "performance एक feature है, और jank एक bug"
अभी कोई टिप्पणी नहीं है.