2 पॉइंट द्वारा GN⁺ 1 시간 전 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Pedometer++ की watchOS मैप फीचर को 6 साल से अधिक समय तक इस लक्ष्य के साथ निखारा गया कि Apple Watch पर संभव सबसे अच्छा मैप अनुभव दिया जा सके, और Pedometer++ 8 की रिलीज़ के साथ यह एक महत्वपूर्ण मुकाम पर पहुँचा
  • शुरुआती कोशिश में सर्वर पर मैप बनाकर उसे Apple Watch पर दिखाया जाता था, लेकिन हर बार workout data को आगे-पीछे भेजना पड़ता था, इसलिए navigation और रोज़मर्रा के इस्तेमाल के लिए यह व्यावहारिक नहीं था और offline में भी काम नहीं कर सकता था
  • watchOS पर ज़रूरी control पाने के लिए टीम ने अपना SwiftUI native map rendering engine खुद बनाया, और 2021 तक tile-based मैप को स्थिर रूप से render करने तथा उस पर location information overlay करने की क्षमता हासिल कर ली
  • watchOS 26 और Liquid Glass के अनुरूप Andy Allen के साथ एक नया base map बनाया गया, जिसमें visual complexity घटाई गई और contrast व saturation बढ़ाई गई ताकि glass जैसे elements के नीचे भी इसे आसानी से पढ़ा जा सके
  • Rafa Conde के साथ मिलकर metrics को ऊपर बाईं ओर layer करने और मैप को vertical stack के सबसे ऊपर वाले page पर रखने वाला नया layout बनाया गया, जिसे सैकड़ों मील की field testing के बाद Pedometer++ 8 के final design में शामिल किया गया

Pedometer++ की watchOS मैप यात्रा

  • पहाड़ों या outdoor माहौल में रास्ता न भटकने की एक अहम आदत है चलते समय अपनी मौजूदा लोकेशन को बहुत बार देखना, और कलाई पर मौजूद मैप इसके लिए सबसे अच्छा तरीका साबित होता है
  • Apple Watch के शुरुआती लॉन्च से ही कलाई पर एक अच्छा मैप चाहिए था, लेकिन व्यवहारिक रूप से यह संभावना तब बनी जब watchOS 6 में SwiftUI आया और “वास्तविक” ऐप बनाना संभव हुआ
  • शुरुआती Apple Watch में स्क्रीन छोटी थी और processor धीमा था, इसलिए मनचाहे स्तर तक पहुँचना मुश्किल था, और Pedometer++ का पहला मैप प्रयास सर्वर पर मैप बनाने वाले तरीके पर आधारित था
  • इस server-generated तरीके में हर refresh के लिए संबंधित workout data को बार-बार भेजना पड़ता था, इसलिए यह idea validation के लिए उपयोगी था, लेकिन navigation या रोज़मर्रा के उपयोग के लिए व्यावहारिक नहीं था और offline में भी काम नहीं कर सकता था

SwiftUI आधारित कस्टम मैप इंजन

  • watchOS पर आगे बढ़ने के लिए lower-level control की ज़रूरत थी, इसलिए पूरी तरह SwiftUI native map rendering engine खुद बनाया गया
  • उस समय watchOS पर SwiftUI ही उपलब्ध विकल्प था, और इससे उन widgets में भी मैप जोड़ना आसान हुआ जो केवल SwiftUI को support करते थे
  • 2021 तक टीम watchOS पर मैप को स्थिर और अच्छे performance के साथ render करने के स्तर तक पहुँच गई
  • यह इंजन tile-based map render कर सकता है और उसके ऊपर location information overlay कर सकता है

watchOS स्क्रीन डिज़ाइन की सीमाएँ

  • watchOS ऐप डिज़ाइन छोटी स्क्रीन और एक हाथ से उपयोग जैसी सीमाओं के कारण दिलचस्प लेकिन निराशाजनक चुनौती थी
  • लक्ष्य यह था कि उपयोगकर्ता मैप पढ़ सके, navigation में उसका उपयोग कर सके, और साथ ही workout से जुड़ी जानकारी भी देख सके
  • कई डिज़ाइन प्रयोगों के बाद कुछ समय तक modal approach अपनाई गई, जिसमें ऊपर बाईं ओर के बटन से मैप स्क्रीन और metrics स्क्रीन के बीच स्विच किया जाता था
  • इस तरीके में एक स्क्रीन पर मैप को स्वतंत्र रूप से pan, zoom in और zoom out किया जा सकता था, जबकि दूसरी स्क्रीन पर watchOS के सामान्य tabbed page interface के ज़रिए metrics और controls दिए जाते थे
  • लेकिन यह डिज़ाइन एक समझौते जैसा लगता था, और मैप को interactive बनाने के लिए swipe की ज़रूरत वाली UI संरचना के भीतर मैप को रखना मुश्किल था
  • Apple Watch की स्क्रीन बड़ी होने के साथ यह ज़रूरत कम हो गई कि मैप को उपयोगी बनाने के लिए उसे बाकी चीज़ों से बहुत सख्ती से अलग जगह दी जाए
  • बाद में metrics को स्क्रीन के नीचे रखने का विकल्प भी देखा गया, लेकिन लंबी outings या navigation-केंद्रित न होने वाले workouts में उसकी अलग सीमाएँ सामने आईं
  • अलग-अलग डिज़ाइन प्रस्तावों में एक साझा सीमा यह थी कि ऐप एक समय में केवल fixed fields का set ही दिखा सकता था
  • इंटरफ़ेस को user-configurable बनाया जा सकता था, लेकिन watchOS डिज़ाइन में कुछ सेकंड से ज़्यादा समय लेने वाली interactions से बचना चाहिए, और user settings स्वभाव से झंझटभरी होती हैं, इसलिए यह उपयुक्त नहीं था

Liquid Glass के अनुरूप नया मैप

  • जब ऐप की संरचना को लेकर विचार जारी था, तभी Apple ने watchOS 26 और Liquid Glass की घोषणा की
  • Liquid Glass का मुख्य डिज़ाइन तत्व layered composition है, और ऐसे रंगों के प्रकार भी महत्वपूर्ण थे जो एक-दूसरे के साथ अच्छी तरह काम करें
  • पहले ऐप के default map के रूप में Thunderforest Outdoors इस्तेमाल होता था; उसका content अच्छा था, लेकिन उसके ऊपर glass जैसे elements रखने पर वह Liquid Glass के साथ अच्छी तरह मेल नहीं खाता था
  • map designer Andy Allen के साथ मिलकर पूरी तरह नया default map बनाया गया जो Liquid Glass में बेहतर दिखाई दे
  • नए मैप में visual complexity कम की गई, elements का contrast बढ़ाया गया, और map elements की saturation बढ़ाई गई ताकि वे glass के नीचे धुंधले होकर एकसाथ न घुलें
  • इस काम की मदद से map tiles का dark mode variant भी बनाया जा सका
  • dark mode iOS पर भी उपयोगी है, लेकिन watchOS पर इसका असर खास तौर पर अधिक था, और इसे इस लक्ष्य के साथ समायोजित किया गया कि हाथ की दूरी से भी मैप बहुत आसानी से पढ़ा जा सके
  • नतीजतन watchOS के लिए उपयुक्त मैप तो बन गया, लेकिन उस स्तर का ऐप डिज़ाइन अभी भी कमज़ोर था

Rafa Conde के साथ नया लेआउट

  • डिज़ाइन में आई रुकावट दूर करने के लिए designer Rafa Conde के साथ काम किया गया
  • कई वैकल्पिक layouts में से metrics को ऊपर बाईं ओर layer करने और मैप को vertical stack के सबसे ऊपर वाले page पर रखने वाला डिज़ाइन अंतिम दिशा बना
  • इस डिज़ाइन में पहले मैप पर tap करना पड़ता है, तभी exploration mode में प्रवेश होता है, और इसी तरह interactive map की समस्या को संभाला गया
  • पूरे concept के तय होने के बाद वास्तविक ऐप बनाना और सूक्ष्म details को refine करना जारी रहा
  • Rafa का concept जल्दी ही एक तेज़ prototype में बदला गया, और सैकड़ों मील पैदल चलकर field में उसका परीक्षण किया गया
  • इसके बाद fonts और अधिक सूक्ष्म डिज़ाइन विकल्पों को और निखारा गया, और अंततः Pedometer++ 8 में शामिल final design तक पहुँचा गया
  • अंतिम स्क्रीन पढ़ने में आसान, उपयोगी, watchOS प्लेटफ़ॉर्म के लिए स्वाभाविक और साथ ही नई व विशिष्ट डिज़ाइन वाली बनी

MapKit का उपयोग क्यों नहीं किया गया

  • watchOS के लिए Apple MapKit आने से पहले ही कस्टम मैप पर काम शुरू हो चुका था, और MapKit की बजाय खुद implementation चुनने की वजह यह थी कि Pedometer++ के लिए ज़रूरी configurability और utility उसमें पर्याप्त नहीं थी
  • MapKit बुनियादी उपयोग के लिए अच्छा है, लेकिन Pedometer++ जिस स्तर का control देना चाहता था, वह उसमें नहीं था
  • watchOS का MapKit हमेशा dark mode में दिखता है; यह default के रूप में ठीक हो सकता है, लेकिन accessibility और user choice के लिहाज़ से सीमाएँ पैदा करता है, इसलिए उपयोगकर्ता को विकल्प मिलना चाहिए
  • समय के साथ watchOS का MapKit अधिक सक्षम हुआ है, लेकिन animation और overlays के मामले में अब भी सीमित है
  • MapKit में terrain contours और trail coverage बेहतर हो रहे हैं, लेकिन अब भी कई ऐसे स्थान हैं जहाँ MapKit का मैप लगभग खाली दिखता है और उससे अधिक समृद्ध detail की ज़रूरत होती है
  • उदाहरण के तौर पर स्कॉटलैंड के एक पसंदीदा hiking route के प्रवेश बिंदु पर कस्टम मैप और MapKit के बीच अंतर की तुलना की गई है

2 टिप्पणियां

 
xguru 16 분 전

मैं ट्रेकिंग नहीं करता, लेकिन ऐप में की गई मेहनत वाकई बहुत ज़बरदस्त लगती है
मैप बनाने वालों को hire किया था..

 
GN⁺ 1 시간 전
Hacker News की राय
  • Apple Watch में Apple की अपनी बनाई हुई hiking/topographic map का न होना एक बड़ी कमी लगता है। सबसे महंगे “explorer” Watch Ultra में भी यह नहीं है, और GPX import जैसी सुविधा तो लगभग सपने जैसी है
    आखिरकार यह एक lifestyle device है, लेकिन फिर भी कमी खलती है

    • शायद iPad के लिए calculator app बनाने में भी 10 साल से ज़्यादा लग गए थे
    • ईमानदारी से कहूँ तो Apple के बनाए apps जितने कम हों, ecosystem और app quality के लिए उतना बेहतर है। हाल में Apple ने जिन apps को “sherlock” किया है उनकी quality खास अच्छी नहीं रही, लेकिन default app बन जाने के बाद third-party के लिए मुकाबला करना कहीं मुश्किल हो जाता है
  • इसका evolution शानदार है, और यह देखना भी अच्छा है कि center-aligned, symmetric UI जैसी design conventions से बाहर निकलकर क्या बनाया जा सकता है। इसे देखकर Apple Watch लेने का मन हो सकता है
    लेख के screenshot में Scotland के मेरे पसंदीदा छोटे walking routes में से एक, Glen Coe का Hidden Valley दिख रहा है
    लेकिन उस घाटी के नीचे वाले घर से जुड़ी यादें इतनी सुखद नहीं हैं। पहले मैं वहाँ से गाड़ी में गुजरते हुए, पहाड़ों के बीच एकांत कोने में हमेशा बंद रहने वाले उस घर को सपनों की तरह देखता था, और सोचता था कि ऐसी जगह रहना कितना खास होगा। hiking trail की parking थोड़ी ही ऊपर सड़क पर थी
    कुछ साल बाद Louis Theroux की एक documentary में मैंने उस घर को पहचाना, जिसमें वह उसके मालिक TV personality Jimmy Saville के साथ वहाँ गया था। बाद में Australia लौटने के बाद पता चला कि Saville की मौत के बाद उसे UK के सबसे कुख्यात child abusers और sex offenders में से एक के रूप में उजागर किया गया, जो बेहद भयानक था। screenshot map के ऊपर उस cottage का नाम और outline वास्तव में दिखाई देते हैं

  • जिज्ञासा में खोजने पर लगा कि hiking trails जैसी Apple Maps में न मिलने वाली details जोड़ने के लिए उन्होंने cartographers को hire करके बड़े और सुंदर custom map images बनवाए
    इसलिए dynamically rendered Apple Maps के विपरीत यह मूल रूप से image tiles दिखाने का तरीका है। इससे ज़्यादा सुंदर और detailed maps बनाए जा सकते हैं, लेकिन zoom level के हिसाब से अलग downloads, rotation, और update की संभावना जैसी बातों पर असर पड़ता है

    • cartographers से अलग design बनवाना और उस design को render/deliver करने की technology, दोनों पूरी तरह अलग समस्याएँ हैं
      मूल map provider vector tiles और raster tiles, दोनों services देता है: https://www.thunderforest.com/maps/outdoors/
      आम तरीका यह है कि vector tile service और style definitions को सीधे इस्तेमाल किया जाए, या ज़रूरत हो तो raster tiles generate किए जाएँ
    • मेरा मानना है कि Apple शायद Apple Watch के Metal graphics API को third-party developers के लिए खोलता ही नहीं, इसलिए इस तरह की dynamic rendering संभव ही न हो
  • Pedometer++ उपयोगकर्ता के रूप में, David ने वर्षों तक जो detail के प्रति लगन बनाए रखी है वह चकित करती है। app का evolution सच में शानदार है

    • वह सचमुच बेहद समर्पित developer है। यहाँ भी “तो... मैंने custom maps commission कराए”, यानी mapmaker को hire करना, इसका एकदम सही उदाहरण है
      पहले Watchsmith पर किए गए काम की वजह से वह लगभग widgets का विश्वस्तरीय विशेषज्ञ बन गया, और फिर Widgetsmith के साथ उसकी बड़ी सफलता का सफर भी शानदार था। यह उन मामलों में से है जहाँ सफलता सचमुच सही व्यक्ति को मिली
  • घड़ी पर static tiles सही चुनाव हैं। मैंने constraints वाले devices पर dynamic rendering की है, और pan तथा zoom हर frame में garbage collection pauses की भेंट चढ़ जाते थे

    • watchOS में garbage collection नहीं है, यह ARC का इस्तेमाल करता है
  • WatchOS पर Apple Maps काफ़ी अच्छा है, लेकिन आमतौर पर मैं cycle पर route set करता हूँ और करीब 3 मिनट बाद “क्या आप workout कर रहे हैं?” स्क्रीन सब कुछ ढक देती है, जिससे मैं बंद किए बिना map नहीं देख पाता
    मेरा मानना है कि उस स्क्रीन को full screen नहीं लेना चाहिए; उसे notification बन जाना चाहिए, या कुछ समय बाद चुपचाप recording शुरू कर देनी चाहिए
    हैरानी होती है कि Apple में जो लोग इस पर काम करते हैं, वे खुद इस समस्या से ज़रूर टकराते होंगे
    अगर इस app का map स्क्रीन पर बना रह सकता है, तो मेरे लिए यह killer feature होगा। लेकिन App Store page को सरसरी तौर पर देखकर भी साफ़ नहीं हुआ कि कौन-सी सुविधाएँ subscription के पीछे हैं और कौन-सी नहीं, और मुझे वे apps पसंद नहीं जो सारी setup पूरी होने तक यह नहीं बताते, इसलिए शायद मैं बस workout manually शुरू करना याद रखने की कोशिश करूँगा

    • “क्या आप workout कर रहे हैं?” फीचर को बंद किया जा सकता है। workout settings में Check In Reminders बंद कर दें