0
本文作者: SAKURA | 2014-06-06 14:36 |
作者:觸寶輸入法PM 周兆文
庫(kù)克在 WWDC 2014 宣布了 iOS 8 一系列令人興奮的新特性。其中一個(gè)對(duì)于英語(yǔ)和其他語(yǔ)言國(guó)家用戶(hù)來(lái)說(shuō)不太關(guān)注, 但是中文用戶(hù)企盼已久的事兒就是開(kāi)放了第三方輸入法。
剛忙活完錘子發(fā)布會(huì)的老羅也在直播過(guò)程發(fā)微博:“輸入法這個(gè)牛逼!”
是的,這是一個(gè)特牛逼的事兒。技術(shù)上要開(kāi)放輸入法并不能算是一件很牛逼的“高科技”,,真正牛逼的是給 iOS 系統(tǒng)的輸入體驗(yàn)帶來(lái)了無(wú)限的可能性。
iOS 自帶的輸入法一直是被人詬病的一大短板,無(wú)論是英語(yǔ)輸入中時(shí)常上演搞笑鏡頭的自動(dòng)糾錯(cuò)功能,還是讓中文用戶(hù)痛苦不堪的拼音輸入?!盀榱税惭b第三方輸入法”,這幾乎成了iOS設(shè)備用戶(hù)越獄的第一大理由。
而現(xiàn)在,蘋(píng)果終于愿意向開(kāi)發(fā)者放開(kāi)限制,最終得益的將是 iOS 的終端用戶(hù)。用戶(hù)將能使用上更安全, 更漂亮,功能更強(qiáng)大的輸入法。而許多以前 iOS 系統(tǒng)輸入法所不支持的小語(yǔ)種也將能用上真正意義上的自己語(yǔ)言的”輸入法”。
同時(shí), 對(duì)于開(kāi)發(fā)者來(lái)說(shuō),iOS 平臺(tái)第三方輸入法市場(chǎng)將是一次真正意義上的從零開(kāi)始的機(jī)會(huì)。無(wú)論你在安卓上是巨頭還是小眾,在App Store大家都是零起點(diǎn)。而且iOS平臺(tái)上的無(wú)法通過(guò)預(yù)裝進(jìn)行推廣,用戶(hù)也能隨時(shí)隨地輕松卸載任何第三方應(yīng)用。對(duì)于各家輸入法來(lái)說(shuō),真正地將所有精力和資源放在用戶(hù)體驗(yàn)上才是占據(jù)榜單前排,占據(jù)用戶(hù)桌面的最好途徑。從技術(shù)上來(lái)說(shuō), Apple這次開(kāi)放的程度較為有限,但已足夠開(kāi)發(fā)一個(gè)功能完整的智能輸入法。
這次在iOS 8中開(kāi)放的主要接口包括:
insertText:
插入字符串
deleteBackward:
向前刪除
documentContextAfterInput:
獲取光標(biāo)之后的內(nèi)容
documentContextBeforeInput:
獲取光標(biāo)之前的內(nèi)容
通過(guò) InsertText 和 deleteBackward, 即可實(shí)現(xiàn)輸入法基本的輸入和刪除等功能。
同時(shí)還能通過(guò) documentContextAfterInput 和 documentContextBeforeInput 獲取上下文接口,實(shí)現(xiàn)觸寶的上下文預(yù)測(cè)功能(通過(guò)上下文語(yǔ)義優(yōu)化候選詞預(yù)測(cè))。
此外 Apple 還開(kāi)放了一系列其他的接口,比如 UITextInputDelegate,用于綁定當(dāng)前輸入框中的選區(qū)變動(dòng)和內(nèi)容變動(dòng)事件。這可以幫助輸入法實(shí)時(shí)地跟蹤光標(biāo)位置和選區(qū)的變化,從而及時(shí)根據(jù)新的內(nèi)容和光標(biāo)位置進(jìn)行語(yǔ)義學(xué)習(xí)和語(yǔ)義預(yù)測(cè)。
另外一個(gè)對(duì)于開(kāi)發(fā)者非常方便的接口是 UILexicon,Apple 的文檔中這樣解釋 UILexicon:
The UILexicon object contains words from various sources, including:
?Unpaired first names and last names from the user’s Address Book database
?Text shortcuts defined in the Settings > General > Keyboard > Shortcuts list
?A common words dictionary that includes the names of Apple products
輸入法可以簡(jiǎn)單地導(dǎo)入通信錄中的聯(lián)系人姓名,快捷詞條,一個(gè)系統(tǒng)內(nèi)置的蘋(píng)果產(chǎn)品相關(guān)詞語(yǔ)的詞庫(kù)。 以往在安卓上這可能都需要額外聲明權(quán)限,并自己從頭開(kāi)始實(shí)現(xiàn),而Apple則提供了一個(gè)更加統(tǒng)一發(fā)布的途徑。當(dāng)然,聯(lián)系人姓名是以名和姓分開(kāi)成為兩個(gè)詞的形式導(dǎo)入,這也體現(xiàn)了Apple一如既往對(duì)用戶(hù)隱私的關(guān)注。
同樣的, 一些創(chuàng)新的輸入方式,比如滑行輸入,手勢(shì)輸入等方式也沒(méi)有被限制,后續(xù)用戶(hù)們可以在 iOS 8上體驗(yàn)觸寶的中文滑行輸入和英文整句滑行輸入方式。
不過(guò)蘋(píng)果終究是蘋(píng)果, 不會(huì)一次性將一個(gè)系統(tǒng)核心的部分完全沒(méi)有保留的開(kāi)放出來(lái)。為了保證體驗(yàn)的一致性和隱私安全,目前 iOS 8開(kāi)放的輸入法相關(guān)端口還相當(dāng)有限。
首先在 secureTextEntry 屬性為 YES 的輸入框內(nèi),比如密碼框,iOS 系統(tǒng)將強(qiáng)行調(diào)用系統(tǒng)默認(rèn)輸入法, 以保證用戶(hù)的信息安全,這一點(diǎn)在 UIKeyboardTypePhonePad 和 UIKeyboardTypeNamePhonePad 類(lèi)型的輸入框(數(shù)字輸入框,比如電話號(hào)碼框)中亦是如此。
此外還有一些比較令人遺憾的限制:
“Because a custom keyboard can draw only within the primary view of its UIInputViewController object, it cannot select text or control cursor position. These operations are
under the control of the text input app that is using the keyboard. If that app provides an editing menu interface (such as for Cut, Copy, and Paste), the keyboard has no
access to it. A custom keyboard cannot offer inline autocorrection controls near the insertion point.”
第三方輸入法將不允許移動(dòng)光標(biāo)位置,不允許選中輸入框中的文字,這將直接導(dǎo)致目前在安卓輸入法中被廣泛使用的光標(biāo)快捷移動(dòng)功能, 以及剪切,復(fù)制,粘貼等功能無(wú)法使用。
再比如默認(rèn)情況下輸入法是沒(méi)有 Network access 聯(lián)網(wǎng)權(quán)限的,這將導(dǎo)致在線語(yǔ)音輸入,云輸入等功能無(wú)法使用。但相對(duì)的,對(duì)于離線云輸入,離線語(yǔ)音技術(shù)來(lái)說(shuō)也是一個(gè)機(jī)遇。
另外 Apple 強(qiáng)制要求所有的第三方輸入法必須在鍵盤(pán)上放置“切換輸入法”按鍵, 而如今的安卓第三方輸入法幾乎都沒(méi)有, 也不愿意放置這個(gè)按鍵。 畢竟開(kāi)發(fā)者誰(shuí)會(huì)希望提供用戶(hù)一個(gè)“方便地切換到別家產(chǎn)品”的入口呢。
這些限制和規(guī)定都聚焦到 Apple 在 Programming Guide (開(kāi)發(fā)向?qū)?中反復(fù)提到一個(gè)關(guān)鍵字 “Trust” 信任。
“Your first consideration when creating a custom keyboard must be how you will establish and maintain user trust.”
“在開(kāi)發(fā)第三方輸入法時(shí), 第一個(gè)必需考慮的事就是如何建立和維護(hù)用戶(hù)信任?!?/p>
Apple提出了三個(gè)具體的方面:
1、“Safety of keystroke data.”
用戶(hù)只希望輸入的信息能進(jìn)入輸入框或文檔中,而不是被保存或上傳。
2、“Appropriate and minimized use of other user data.”
如果你記錄或請(qǐng)求了其他的用戶(hù)數(shù)據(jù),比如通信錄數(shù)據(jù)和地理位置信息,你就要負(fù)擔(dān)起向用戶(hù)解釋你需要獲取這些信息的原因。
3、“Accuracy.”
上屏內(nèi)容需要精確反應(yīng)用戶(hù)的點(diǎn)擊,這點(diǎn)和隱私無(wú)關(guān), 而是用戶(hù)能通過(guò)使用感受到你產(chǎn)品的精準(zhǔn)能力。
的確,作為輸入法產(chǎn)品,能緊密接觸許多用戶(hù)的隱私內(nèi)容和安全信息。前一陣子的百度日文輸入法被爆出偷偷上傳用戶(hù)資料,老牌輸入法 Swype 被爆出私自記錄和上傳用戶(hù)位置信息。而 Apple 正是吸取了這些前車(chē)之鑒, 給第三方輸入法劃定了一個(gè)嚴(yán)格,但又相對(duì)合理的權(quán)限范圍和行為準(zhǔn)則,既保證了用戶(hù)的信息安全,也使得iOS第三方輸入法的開(kāi)發(fā)有了一定之規(guī)?;緛?lái)說(shuō), iOS 8只是將之前的私有接口開(kāi)放了出來(lái),可以認(rèn)為 iOS 8的第三方輸入法的能力不會(huì)超越以往的越獄版輸入法,更不可能超越系統(tǒng)自帶輸入法。
總而言之, 這次開(kāi)放第三方輸入法必然將在全球相關(guān)行業(yè)和開(kāi)發(fā)者中掀起一陣騷動(dòng),在新的平臺(tái)上,渠道的優(yōu)勢(shì)被削弱到最低,比拼的就是產(chǎn)品本身。最終勝出的既可能是坐擁幾億用戶(hù)的老牌巨頭, 有可能是某些對(duì)了apple 用戶(hù)的口味,能在用戶(hù)體驗(yàn)上獨(dú)辟蹊徑的黑馬,用戶(hù)將用腳投票…
【整體看iOS 8的開(kāi)放程度】最后,如果跳脫“開(kāi)放第三方輸入法”這個(gè)細(xì)分的點(diǎn),從開(kāi)發(fā)者的角度整體看這次 iOS 8 的開(kāi)放性,有三點(diǎn)蠻值得一提:
1、在垂直領(lǐng)域利用開(kāi)發(fā)者完善用戶(hù)體驗(yàn),強(qiáng)調(diào)本地化的服務(wù)
包括早期iOS 里面的地區(qū),就中國(guó)地區(qū)來(lái)看,香港和臺(tái)灣的數(shù)據(jù)TOMTOM提供的,而大陸地區(qū)的數(shù)據(jù)則是高德提供的,到后期與社交新浪微博打通,我們認(rèn)為凡是與數(shù)據(jù)相關(guān)的業(yè)務(wù),蘋(píng)果這方面都不是很擅長(zhǎng)。就拿這次開(kāi)放輸入法為例,輸入法本身是一個(gè)體現(xiàn)用戶(hù)個(gè)性化的應(yīng)用,蘋(píng)果系統(tǒng)的封閉同時(shí)為了保持一致性,肯定是需要犧牲掉用戶(hù)體驗(yàn),當(dāng)然你看地圖和輸入法都是用戶(hù)的吐槽點(diǎn)。所以這些“臟活累活”蘋(píng)果會(huì)交給第三方做,這樣在本地化體驗(yàn)上會(huì)更加好,最起碼不會(huì)輸給Android。
2、堅(jiān)固并且完善iOS平臺(tái)化
蘋(píng)果由于多年的封閉,本身就搭建了非常良好的平臺(tái),就好象一個(gè)女子非常注意飲食,所以他的身材保持的非常好,但是如果想要變的漂亮就需要衣服的點(diǎn)綴,對(duì)于iOS來(lái)說(shuō)一樣,從Healthkit看,無(wú)論是Nike還是其他的服務(wù)供應(yīng)商,蘋(píng)果都希望借助這個(gè)平臺(tái)打通用戶(hù),未來(lái)實(shí)現(xiàn)更多商業(yè)化,通過(guò)數(shù)據(jù)以及合作方強(qiáng)化自身平臺(tái)的服務(wù)。同時(shí)蘋(píng)果也在樹(shù)立標(biāo)準(zhǔn)。
3、降低開(kāi)發(fā)者的成本
Swift語(yǔ)言的出現(xiàn)與多設(shè)備之間的打通本身就是開(kāi)發(fā)者的福利, Swift語(yǔ)言本身學(xué)習(xí)成本較低,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)需要兼顧至少三個(gè)系統(tǒng)平臺(tái),未來(lái)Swift也可以幫助開(kāi)發(fā)者將自身應(yīng)用轉(zhuǎn)移至其他平臺(tái)。
最后,其實(shí)iOS和android的開(kāi)放和封閉都是相對(duì)的,我們相信未來(lái)二者都會(huì)越來(lái)越成功,只不過(guò)走的路線不同罷了,而近兩年android趨向于封閉,ios趨向于開(kāi)放,路線明顯相反,對(duì)于iOS 來(lái)說(shuō),本身基礎(chǔ)打得好,這次開(kāi)放我覺(jué)得蘋(píng)果越來(lái)越在移動(dòng)平臺(tái)上重視開(kāi)發(fā)者的能力,我認(rèn)為他們希望借助在某些領(lǐng)域里的開(kāi)發(fā)者幫助蘋(píng)果搭建并且完善自己的生態(tài)鏈,并且未來(lái)開(kāi)發(fā)者也是幫助蘋(píng)果搭建與android生態(tài)鏈競(jìng)爭(zhēng)的壁壘。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。