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