△ 品果科技三位聯(lián)合創(chuàng)始人徐灝、徐瀅、顧銳 (左起)
雖然現(xiàn)在很多 Android 旗艦機(jī)的自帶相機(jī)拍照功能越來越強大,第三方相機(jī)應(yīng)用的必要性似乎越來越低。能在激烈的市場競爭中屹立不倒,得益于Camera360 開發(fā)公司成都品果科技對于產(chǎn)品定位的精準(zhǔn)拿捏以及最新技術(shù)的快速跟進(jìn)。
這個老牌影像應(yīng)用是如何在手機(jī)自帶相機(jī)越來越強的沖擊下順利存活的?在技術(shù)層面又有哪些追求?這一次,我們帶來的是 Camera360 的開發(fā)商品果科技的心得與故事。
及時跟進(jìn)新技術(shù) 用 Kotlin "換血" 提效
任何一家技術(shù)驅(qū)動型公司,都會對熱門領(lǐng)域的新技術(shù)嗅覺敏感。品果也不例外。品果的技術(shù)總監(jiān) Lee 在大概六七年前知道了 Kotlin 這種新型語言,那時候關(guān)于 Kotlin 的技術(shù)社區(qū)逐漸開始起步。2017 年,Lee 和同事參加Google I/O 大會時見證了 Kotlin 正式成為 Android 官方語言的時刻,回到成都后,便開始在公司內(nèi)部推動學(xué)習(xí) Kotlin。在組織公司里的工程師們學(xué)習(xí)Kotlin 時,Lee 改進(jìn)了以往的培訓(xùn)方式。
“在內(nèi)部推廣學(xué)習(xí) Kotlin 之前,我們公司的技術(shù)分享比較中規(guī)中矩,談不上培訓(xùn),很多人聽了其他同事的分享以后有多少收獲、能否落地,其實是不明確的。” Lee 說。
△ 品果科技開設(shè)的內(nèi)部 Kotlin 課程
為了讓 Kotlin 更快在公司項目中落地,Lee 最初選擇了參加 StudyJams 的形式,動員公司里的同事組建了一個小組參加學(xué)習(xí),最后也有四個同事順利拿到了畢業(yè)證。后來也在公司內(nèi)部建立了類似的學(xué)習(xí)機(jī)制,每周開課兩次,對此感興趣的工程師們自愿參加。因為一線的優(yōu)秀開發(fā)者們普遍抱有隨時充電學(xué)習(xí)的態(tài)度,所以每次課程都人滿為患。值得欣慰的是,Kotlin 的學(xué)習(xí)曲線較為合理,既不會很平,也沒有很陡 ,有 Java 語言基礎(chǔ)的開發(fā)者上手并不困難。
當(dāng) Kotlin 成為品果科技工程師們 "標(biāo)配" 技能后,Lee 開始嘗試完全用Kotlin 開發(fā)新的功能 —— 他們只用了三個月時間便將一個復(fù)雜度相當(dāng)高的新模塊開發(fā)到了可上線程度,但因產(chǎn)品策略的調(diào)整,目前這個新功能還未正式對外。
“雖然還沒上線,但有了實操經(jīng)驗,可以說我們技術(shù)團(tuán)隊已經(jīng)對Kotlin上手了。” Lee 說。
△ 內(nèi)部 Kotlin 培訓(xùn)課
除了使用 Kotlin 開發(fā)新功能,品果也在用 Kotlin 重構(gòu) Camera360 的老模塊。Camera360 的架構(gòu)師表示,使用 Kotlin 可以顯著減少代碼行數(shù)。
“我們統(tǒng)計了整個項目中的所有代碼,其中每個 Kotlin 文件的平均行數(shù)是 86 行,而相對每個 java 文件則平均接近 200 行,這能側(cè)面反應(yīng) Kotlin 更加簡潔;具體來說,我們的一個工具類庫,在使用Kotlin重構(gòu)之后,代碼從2600 行減少到了 1400 行。”
而代碼行數(shù)的減少意味著效率的提升,雖然沒辦法具體量化效率提升了多少,但一些提升是顯而易見的,比如自動類型推斷讓編寫代碼更簡潔,data class 可以減少大量的模板代碼,默認(rèn)參數(shù)減少重載方法的編寫,字符串模板這些開發(fā)中最常用到的功能,另外 lambda 表達(dá)式、函數(shù)式編程和擴(kuò)展方法這些更高級的功能也大大豐富了代碼的編寫方式和效率。
此外,使用 Kotlin 顯著減少 NullPointerException 這個 Java 語言的老大難問題,在一個 90% Java 代碼的老項目中,每個版本的前 50 條錯誤最高統(tǒng)計中,平均出現(xiàn) 1~2 次 NPE,而在一個 70% 使用了 Kotlin 代碼的新項目中,很難在錯誤統(tǒng)計的前幾頁找到 NPE。
強大的語法糖也是深受工程師們喜愛的一個特性。目前,Camera360 大概有 10% 左右的代碼使用 Kotlin 重構(gòu)完成,這些 Kotlin 代碼主要用在了相機(jī)模塊和一些基礎(chǔ)模塊上,品果希望在一年之內(nèi)把 Kotlin 的代碼占比提升到50%。
歷史轉(zhuǎn)折中的第三方拍照應(yīng)用
第三方拍照應(yīng)用逐漸淡出了智能手機(jī)的 "裝機(jī)必備" 清單,是個無可否認(rèn)的事實。在手機(jī)廠商越來越重視軟件配套、手機(jī)自帶相機(jī)應(yīng)用愈發(fā)強大的當(dāng)下,曾經(jīng)叱咤風(fēng)云的第三方拍照應(yīng)用紛紛開始了轉(zhuǎn)型。作為起步較早的第三方拍照應(yīng)用,Camera360 也很早意識到了賽道的變化。品果科技 COO 顧銳表示,實際上,在如今的市場格局下,用戶使用手機(jī)拍照已經(jīng)被清晰地分成了兩種場景:記錄場景和創(chuàng)作場景。
手機(jī)廠商對攝像頭以及算法的優(yōu)化調(diào)教,是力求在記錄場景中,給予用戶更好的體驗,讓人們可以更加迅速、準(zhǔn)確、真實地記錄眼前的景象,講究的是所見即所得。
而曾經(jīng)的第三方拍照應(yīng)用,雖然承擔(dān)記錄眼前景象的任務(wù)越來越少,但各家的核心都逐漸放到了創(chuàng)作場景中來,即讓用戶將喜愛的照片更加生動,這種需求下追求的差異化、風(fēng)格化是和記錄場景的初衷截然不同的。
這兩種拍照場景體現(xiàn)在手機(jī)商,辨識前后攝像頭的定位差異。很多用戶打開手機(jī)前置攝像頭自拍的時候,希望把自己拍得美一點。但這個美也會有一個限度,可能會去做一些細(xì)微的修飾,但過猶不及。這個尺度其實并不好掌握,“點到為止” 的美化方案,便是 Camera360 長期以來在行業(yè)里摸索出的規(guī)律。
在發(fā)展初期,Camera360 是記錄、創(chuàng)作兩手抓,所以早期的一些濾鏡如LOMO、復(fù)古等,其實都是想讓用戶更好地記錄所見到的世界。那個時候在各種特效之外,品果的技術(shù)團(tuán)隊還在相機(jī)啟動速度,占用系統(tǒng)資源方面花了很多精力去優(yōu)化,這也是其得以在第三方相機(jī)大戰(zhàn)中脫穎而出的一個關(guān)鍵。
“但后來我們發(fā)現(xiàn)手機(jī)廠商在這方面做的越來越好,畢竟是自家生產(chǎn)的設(shè)備,所以在軟硬件結(jié)合方面有著天然的優(yōu)勢,這時第三方拍照應(yīng)用的記錄場景幾乎已經(jīng)被剝奪了。” 顧銳表示。
所以在這樣的產(chǎn)業(yè)轉(zhuǎn)折中,第三方拍照應(yīng)用將未來發(fā)展重心放在了創(chuàng)作場景中,品果也在 Camera360 之后,推出了 MIX 這樣聚焦于影像后期創(chuàng)作的應(yīng)用。
而在變現(xiàn)方面,Camera360 也在嘗試向內(nèi)容社區(qū)和新功能訂閱模式發(fā)展。
品果曾經(jīng)用 Google 的 AdWords 平臺購買廣告,但作為一個工具型產(chǎn)品,Camera360 在全球推廣的核心依然是產(chǎn)品本身的運用前沿技術(shù)開發(fā)新功能,所建立起的口碑。比如,當(dāng)年 Camera360 推出了創(chuàng)新性的動態(tài)貼紙功能,便憑借這個新的特性成功登頂日本應(yīng)用市場。在 Google 推出了ARCore 后,品果也第一時間選擇了跟進(jìn),以期讓動態(tài)功能的表現(xiàn)力更加優(yōu)秀。
△ 品果的工作人員在 GDD 上
顧銳舉了這樣一個例子:Camera360 曾在全球范圍舉辦了一個封面女郎征集挑戰(zhàn)賽,用戶可以將自己的照片上傳到指定專區(qū),獲勝者將成為某一天Camera360 的開機(jī)封面。這個活動在泰國、越南等市場吸引了大量的當(dāng)?shù)嘏杂脩魠⒓樱髞砥饭?lián)合那些熱門地區(qū)的知名企業(yè),提供當(dāng)?shù)匮莩獣闹蓖▍^(qū)選拔入口,也獲得了用戶歡迎?,F(xiàn)在 Camera360 已成為東南亞國民級別的應(yīng)用。
新內(nèi)容訂閱也是 Camera360 正在發(fā)力的方向。在海外市場,很多用戶是愿意為更新的功能、特效付費的,顧銳提到 Camera360 在日本應(yīng)用商店登頂,還曾獲得熱門偶像團(tuán)體 AKB48 成員在綜藝節(jié)目中力薦,這些其實都是靠內(nèi)容和功能取得的成績。
Firebase、Google Cloud Platform 等開發(fā)者工具都已經(jīng)成為了品果日常工作中的好幫手。 一邊學(xué)習(xí)新技術(shù),一邊利用新工具,早早揚帆出海的品果在多年的實踐中,已經(jīng)有了豐富的研發(fā)/運營經(jīng)驗。
“和 Google 合作了這么多年,我們成了堅定的新技術(shù)、新工具追隨者,也受益良多。” 顧銳表示。
△ 品果科技旗下 "Camera360" 和 "Camera360 lite" 兩款產(chǎn)品獲 Google Play "Best of 2016" 的獎牌
成立近 8 年的品果,在日新月異的移動互聯(lián)網(wǎng)領(lǐng)域見證了太多的行業(yè)變遷,自身也經(jīng)歷了從 "產(chǎn)品輸出" 到 "技術(shù)輸出",從 "記錄場景" 到 "創(chuàng)作場景" 的定位升級。但無論行業(yè)如何變幻,保持對新技術(shù)的熱情追求,是這家公司永葆活力的秘訣。
合適的技術(shù)就像一片含蓄而又前衛(wèi)的濾鏡,能將看似平凡的事業(yè)刻畫得更加美好,也能折射出不一樣的光線,照亮前行的路。
*注: 本文配圖的肖像權(quán)歸拍攝對象本人所有,品果科技征得員工同意后授權(quán)使用