
河出圖,洛出書,圣人則之。
今天,歲寒輸入法在安卓平臺的第4個版本正式發(fā)布,這是一個全新的版本,也一個新的開始,是歲寒輸入法的一次再出發(fā),標志著歲寒輸入法跨平臺實現(xiàn)的戰(zhàn)略目標初步達成,統(tǒng)一的代碼、統(tǒng)一的界面、統(tǒng)一的操作、統(tǒng)一的文件(詞庫、主題包、詞條格式都已統(tǒng)一,未來還將引入用于分享布局的統(tǒng)一文件格式)、統(tǒng)一的體驗。
為了便于區(qū)分兩個平臺的版本和安卓平臺的新舊版本,仿照Rime輸入法的做法,我決定對兩個平臺的版本分別取一個中文名,斗膽一竊古人文慧,將iOS平臺的1版本取名為:洛書,將安卓平臺的4版本取名為:河圖。
| iOS -洛書 | Android-河圖 |
|---|---|
![]() |
之所以取洛書河圖之名,是因為這兩本書皆暗藏九合之數(shù),其在本質是統(tǒng)一的,與“洛書”、“河圖”的要體現(xiàn)的統(tǒng)一性是相吻合的。
統(tǒng)一的鍵盤界面
| 洛書 | 河圖 |
|---|---|
![]() |
統(tǒng)一的主程序設置
| 洛書 | 河圖 |
|---|---|
![]() |
統(tǒng)一的主題包功能
| 洛書 | 河圖 |
|---|---|
![]() |
諸如此類,洛書與河圖在外觀上如出一轍。但這種統(tǒng)一不僅僅只是外表的統(tǒng)一而已,更重要的是,洛書河圖的內(nèi)里也是統(tǒng)一的。
洛書河圖使用Xamarin技術實現(xiàn),共用了80%以上的代碼,剩下的20%是為了使程序能夠在特定平臺上的運行而編寫的,即使這部分代碼是針對特定平臺的,但他們在實現(xiàn)的邏輯層面上也是幾乎一致的。關于技術上的問題,可以參考我之前寫的另一篇文章:我為什么選擇Xamarin。時隔一年多,我終于實現(xiàn)了文中所預定的目標。
為何要重做安卓版?
不像歲寒輸入法3與歲寒輸入法1和歲寒輸入法2那種差別,河圖與歲寒輸入法3仍然是同一個輸入方案的實現(xiàn)。而已經(jīng)有了一個功能豐富的歲寒輸入法3版本,為什么還要重做一個功能相近的河圖呢?
理由有四:
一是為用戶提供一致的體驗;洛書河圖了幾乎完全統(tǒng)一的“外部”,用戶可以平滑地從一個平臺過渡多另一個平臺;對于同時使用兩個平臺的用戶來說,這個平臺上的使用經(jīng)驗,在另一個平臺上也是適用的,不會產(chǎn)生割裂感;通用的詞庫格式和主題包等可以讓用戶自由地在平臺之間來回切換。
二是改善輸入法的使用體驗,使其對新手老手都變得更友好;歲寒輸入法3中有不少功能對新手而言比較難以掌握,有些問題幾乎每一個新手都會問一遍,這說明在人機交互設計上歲寒輸入法是存在缺陷的。河圖的出現(xiàn),就是為了修復這些缺陷,使歲寒輸入法更易用,更強大,也更加人性化。
三是歲寒輸入法3的代碼結構已經(jīng)老化變質,非推倒重來不可;一直以來,有很多用戶向我提出了不少極有價值的建議,但有些建議我一聽就覺得頭疼不已。頭疼不是因為他們提的建議不好,而是要在歲寒輸入法3既有的代碼體系中加入這些功能,艱難而困重。開始編寫歲寒輸入法3的代碼是在5年以前,那時,我選擇自己使用代碼來繪制鍵盤的界面,必須承認的是,這個決定極大地鍛煉了我的編程水平。經(jīng)過多年的迭代更新,我認為歲寒輸入法3的代碼已然積重難返,重做勢在必行。
四是使雙平臺的維護更新工作進入同步運行軌道;如果iOS平臺和Android平臺都使用各種的原生技術開發(fā),在實現(xiàn)上彼此分割,也就意味著在一個平臺上做好的功能,在另一個平臺上還要重新再做一次;這還罷了,更可怕的是,兩個平臺會存在大量互不相關的bug,我要面臨同時維護和更新兩套代碼的尷尬境地。提高編程效率是提高程序質量的大前提。因此我沒有選擇分別用Java去實現(xiàn)Android平臺的歲寒輸入法,用Objcet-C或swift去實現(xiàn)iOS平臺的歲寒輸入法,而是使用基于C#的Xamarin技術棧去實現(xiàn)一個代碼共享的跨平臺歲寒輸入法,相當于是通過繞遠路的辦法抄了近道吧。
收費策略
河圖推出后,歲寒輸入法會繼續(xù)延續(xù)之前安卓的免費策略,通過自由捐贈獲得收益,而洛書依然會是收費的。這并非我是厚此薄彼,而實在是安卓生態(tài)難以實施付費使用的策略,而相比之下,iOS生態(tài)對開發(fā)者而言要更友好一些,當然部分原因也是iOS開發(fā)成本更高一些,比如每年99美元的開發(fā)者證書,所以希望iOS平臺的用戶能夠見諒。
未來如果可能,我會推出一些內(nèi)購功能,然后取消付費使用方式,在兩個平臺上執(zhí)行相同的收費策略,屆時希望大家能夠給予理解與支持。
發(fā)展路線
河圖雖然已經(jīng)發(fā)布了,但相比之歲寒輸入法3在功能上還是稍有欠缺的,畢竟歲寒輸入法3已經(jīng)更新迭代多年,積累了相對豐富的功能,但我可以保證的是,未來河圖的功能將比現(xiàn)在的歲寒輸入法3只多不少,而且只要技術上允許,洛書河圖的功能性會繼續(xù)保持這種一致性,并在適當?shù)臅r機推出基于網(wǎng)絡的服務功能,比如在線的主題包分享、在線的詞條分享甚至是詞庫的云備份功能等等,敬請期待。
寫在最后
我開始編寫第一版歲寒輸入法的時候,還是一個二十出頭的毛頭小伙,歲寒輸入法走到現(xiàn)在第四個版本了(算是iOS平臺,可以算四個半),而如今的我,已經(jīng)是馬上奔三的人了,再自居是年輕人就顯得有些恬不知恥了。在這些年的成長過程中,我明白過來,自己的資質其實平庸無奇,那種自命不凡的風發(fā)意氣已經(jīng)從我身上漸漸褪去,蛻變成一種叫做執(zhí)著的品質,我唯一懂得的東西叫堅持,我咬著牙告訴自己,青春可以死去,但夢想不行。



