電腦店訊:很多用戶在最開始了解到“通用 Windows 應用”(Universal Windows Application,UWA)或者“通用 Windows 平台”(Universal Windows Platform,UWP)這些概念的時候,都會感到心頭一震,為微軟的黑科技歡呼雀躍,多年來的“一處開發,處處運行”的夢想終於在微軟的手上實現。但是,隨著越來越多的 UWP 應用發布和更新,一些用戶開始發現了不對勁的地方:為什麼所謂的通用應用只能在 PC 上或者反過來只能在移動端上使用呢?處處運行的期許呢?別急,對於這些疑惑氤氲心頭久久飄散不開的用戶,我們坐下來,好好聊一聊通用應用的全平台通用之道。
作為一個通用應用意味著什麼? 既然我們向著 Windows 10 下更新和發布的應用一往無前,對於普通的用戶來說,在理解 UWP 上,似乎存在一些誤解。 造成這種情況的原因是,當我們深入到應用開發層面時,非開發者們就開始表現出不理解,當然,這並沒有什麼關系。這就像一位天體物理學家來給我們這些平民老百姓解釋“黑洞”,比如我們偉大的充滿勵志元素的霍金,他就試圖他的暢銷書裡這麼做。基於數學基礎,霍金給我深入淺出的講解黑洞的尺之所長,寸之所短,而那些艱澀難懂的細節,就把他們交給那些博士吧!換句話說,不要期望在信息如何能夠逃脫黑洞而光不能幸免的問題上和他糾纏。 回到通用應用的問題上來,一個最常見的誤解就是,為什麼一些所謂的“通用應用”只能或者首先在移動端看見,比如鄒老師的“手機淘寶”,或者反過來,只能在 PC 端 看見,比如業界良心“網易雲音樂”。沒關系,現在帶你了解。 什麼是 UWP? UWP 是 Windows 10 操作系統和 Windows 10 SDK(Software Developement Kit,軟件開發套件)的組合。我們知道,在任何由現代信息技術構建的系統中,都存在分層的概念,比如大家最熟悉的 Android 操作系統,就是由位於底層的 AOSP(Android Open-Source Project,安卓開源項目)和上層的”谷歌服務框架“組成。同樣,在Windows 體系中,在某個系統層級,存在在 PC,平板,手機,Xbox One,IoT 以及 HoloLens之間共享的內核,代碼庫和 API(應用程序接口)。 這些共享技術也正是“一處開發,處處運行”口號的底氣所在,並且從廣義上來講,這麼說確實是沒有什麼問題的。然而,有些東西我們還是需要留心: 開發者可以選擇在哪個平添發布自己的應用。因為 UWP 的標簽並不意味著開發者必須把他們的應用發布在手機端或者 Xbox 上,如果他們不樂意的話 開發者被鼓勵來調整他們的代碼來保證每個平台上的應用有著更好的用戶體驗 這裡的重點是,當你的手機和電腦跑著相同的操作系統的時候,他們居然是構建在截然不同的屏幕尺寸和硬件上的! 拿 PC 來現身說法一下。當今世界上的絕大部分 PC 是沒有配備觸摸屏的。如果你強行把一個對觸摸屏高度依賴的手機端的應用移植到 PC 上,那麼只能祝使用鼠標和鍵盤的你好運!在手機上無關緊要的彈出列表和標題欄在 PC 上至關重要。反過來,對於手機應用來說,狀態欄是必須的,震動,重力感應更是不可或缺。 Xbox,在鼠標,鍵盤和觸摸屏缺席的情況下,需要我們重新構思用戶交互方式。 Xbox 應用以簡單的點按操作聞名,而不是厚重冗雜的應用指令底欄(AppBar)。 目光投射到硬件差異上,手機配備有返回鍵而這正是 PC 所缺少的。開發者們需要定義和改善交互的不同表現形式。Windows Phone 限制了內存大小的使用,所以在Windows 10 移動版上,僅有少數應用可以在後台運行。有些時候,考慮到內存緊缺,這些應用也同樣會被終結。這也是開發者必須考慮的重點。 PC 和 手機端的用戶界面和縮放模式也應該被考慮在內。在手機端 UWP 應用界面瘦身和 PC-UWP 應用界面擴展之際,開發者能夠同時也應該利用這段時間來為每種情況調整控件和內容的布局,以使其整體看上更加賞心悅目。 以上論斷是在假設開發者心系用戶體驗的情況下發表的,但是誰知道實際情況是怎樣的? 最終,一些開發者可能不想他們的應用出現在 PC 或者手機端,或者其他一些平台上。尤其是那些被認為移動屬性顯著的應用,比如滴滴出行,知乎日報,Instagram,相機應用比如 VSCO,甚至是某些金融應用。一些人習慣用老舊的思維方式來思考問題,要麼認為人們不會桌面端使用這些應用,要麼認為一款浏覽器走天下。在很多情況下,對於在這些環境下 Windows 應用所能展現的優勢不甚明朗。或者,你可能會在桌面端開發一款高水平的游戲大作,但是由於其拙劣的縮放特性亦或是硬件限制,這款游戲並不能在手機上運行。 基於以上的原因,微軟並不會要求開發者為其開發全平台應用。微軟力所能及的僅僅是幫助開發者更易於做到一次開發,少許修改,處處運行,當然,開發者自己也需要謹慎行事。 對於開發者而言,微軟的 UWP 是踏入新紀元的重要一步,因為核心代碼可以在你腿上的PC,你手中的手機,你臥室裡面的Xbox之間游走。 不過,到底在哪裡和什麼時候發布應用仍然取決於開發者的意願。最開始開發者可以全身心投入到桌面版的 Windows 10 開發維護更新工作中,當他們覺得是時候了,他們自然就會提供體驗優良的手機版應用。 當微軟這樣體量巨大的公司,在開發不同平台間的眾多應用(比如新聞,天氣,Xbox等等)時,更可能的情況是一個團隊開發核心代碼,然後選擇在不同的時間來為不同硬件平台的應用添加新特性。一個顯著的例子就是桌面版而不是手機端的游戲串流功能,因為這要求完全不同的處理和編程方式。再比如,對於消息服務來說,在手機上 SMS 和 MMS(短消息服務,多媒體消息服務,即短信和彩信) 是非常重要的,但是在 PC 上卻無關緊要。這些都是非常瑣碎的編程細節。 這也是我們在應用商店裡面看到同一個應用有著不同版本號的原因。 盡管如果從字面意思上來理解,如果編程就是“一鍵之事”,一切將會變得非常美好,但目前來說這還是不可能的。不過,當我們攜著 “surface” 屬性的設備大步跨進移動世界時,手機和 PC 端的硬件差異將會被慢慢彌合,當那天真的來到,Windows 10將會勝任其中的平衡工作。 你需要記住,通用應用並不是說應用可以一次性出現在任何地方,或者他們應該出現在任何地方。這取決於開發者和開發者自己的開發日程安排。 不要吝惜你的反饋,告訴開發者你想要的,讓我們見證在接下來的幾周,幾個月,幾年時間裡,Windows 10 通用應用的茁壯成長。這是激動人心的時刻,但是目前還為時尚早,面對這個充滿勇氣的新世界,開發者們正在調整他們自己來熟悉眼前的這一切。