這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場

Android_開發者發表於2019-02-27

在智慧手機行業發展之初,大多數手機自帶相機應用的表現都不能盡如人意。那時,一些演算法強大的第三方拍照應用成了 “裝機必備” 清單裡的成員。Camera360 就是這樣一個老牌 “裝機必備” 的拍照類應用,已經近 8 歲 “高齡” 的它,曾經獲選 Google Play “Best of 2016″。目前在 Google Play 上的總下載量超過 4 億次。

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場
△ 品果科技三位聯合創始人徐灝、徐瀅、顧銳 (左起)

雖然現在很多 Android 旗艦機的自帶相機拍照功能越來越強大,第三方相機應用的必要性似乎越來越低。能在激烈的市場競爭中屹立不倒,得益於 Camera360 開發公司成都品果科技對於產品定位的精準拿捏以及最新技術的快速跟進。

這個老牌影像應用是如何在手機自帶相機越來越強的衝擊下順利存活的?在技術層面又有哪些追求?這一次,我們帶來的是 Camera360 的開發商品果科技的心得與故事。

及時跟進新技術 用 Kotlin “換血” 提效

任何一家技術驅動型公司,都會對熱門領域的新技術嗅覺敏感。品果也不例外。品果的技術總監 Lee 在大概六七年前知道了 Kotlin 這種新型語言,那時候關於 Kotlin 的技術社群逐漸開始起步。2017 年,Lee 和同事參加 Google I/O 大會時見證了 Kotlin 正式成為 Android 官方語言的時刻,回到成都後,便開始在公司內部推動學習 Kotlin。在組織公司裡的工程師們學習 Kotlin 時,Lee 改進了以往的培訓方式。

“在內部推廣學習 Kotlin 之前,我們公司的技術分享比較中規中矩,談不上培訓,很多人聽了其他同事的分享以後有多少收穫、能否落地,其實是不明確的。” Lee 說。

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場
△ 品果科技開設的內部 Kotlin 課程

為了讓 Kotlin 更快在公司專案中落地,Lee 最初選擇了參加 StudyJams 的形式,動員公司裡的同事組建了一個小組參加學習,最後也有四個同事順利拿到了畢業證。後來也在公司內部建立了類似的學習機制,每週開課兩次,對此感興趣的工程師們自願參加。因為一線的優秀開發者們普遍抱有隨時充電學習的態度,所以每次課程都人滿為患。值得欣慰的是,Kotlin 的學習曲線較為合理,既不會很平,也沒有很陡 (您可以參考我們釋出的文章《31天,從淺到深輕鬆學習Kotlin》),有 Java 語言基礎的開發者上手並不困難。

當 Kotlin 成為品果科技工程師們 “標配” 技能後,Lee 開始嘗試完全用 Kotlin 開發新的功能 —— 他們只用了三個月時間便將一個複雜度相當高的新模組開發到了可上執行緒度,但因產品策略的調整,目前這個新功能還未正式對外。

“雖然還沒上線,但有了實操經驗,可以說我們技術團隊已經對Kotlin上手了。” Lee 說。

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場
△ 內部 Kotlin 培訓課

除了使用 Kotlin 開發新功能,品果也在用 Kotlin 重構 Camera360 的老模組。Camera360 的架構師表示,使用 Kotlin 可以顯著減少程式碼行數。

“我們統計了整個專案中的所有程式碼,其中每個 Kotlin 檔案的平均行數是 86 行,而相對每個 java 檔案則平均接近 200 行,這能側面反應 Kotlin 更加簡潔;具體來說,我們的一個工具類庫,在使用Kotlin重構之後,程式碼從 2600 行減少到了 1400 行。”

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場
△ 品果科技的開發工程師在交流心得

而程式碼行數的減少意味著效率的提升,雖然沒辦法具體量化效率提升了多少,但一些提升是顯而易見的,比如自動型別推斷讓編寫程式碼更簡潔,data class 可以減少大量的模板程式碼,預設引數減少過載方法的編寫,字串模板這些開發中最常用到的功能,另外 lambda 表示式、函數語言程式設計和擴充套件方法這些更高階的功能也大大豐富了程式碼的編寫方式和效率。

此外,使用 Kotlin 顯著減少 NullPointerException 這個 Java 語言的老大難問題,在一個 90% Java 程式碼的老專案中,每個版本的前 50 條錯誤最高統計中,平均出現 1~2 次 NPE,而在一個 70% 使用了 Kotlin 程式碼的新專案中,很難在錯誤統計的前幾頁找到 NPE。

強大的語法糖也是深受工程師們喜愛的一個特性。目前,Camera360 大概有 10% 左右的程式碼使用 Kotlin 重構完成,這些 Kotlin 程式碼主要用在了相機模組和一些基礎模組上,品果希望在一年之內把 Kotlin 的程式碼佔比提升到 50%。

歷史轉折中的第三方拍照應用

第三方拍照應用逐漸淡出了智慧手機的 “裝機必備” 清單,是個無可否認的事實。在手機廠商越來越重視軟體配套、手機自帶相機應用愈發強大的當下,曾經叱吒風雲的第三方拍照應用紛紛開始了轉型。作為起步較早的第三方拍照應用,Camera360 也很早意識到了賽道的變化。品果科技 COO 顧銳表示,實際上,在如今的市場格局下,使用者使用手機拍照已經被清晰地分成了兩種場景:記錄場景和創作場景。

手機廠商對攝像頭以及演算法的優化調教,是力求在記錄場景中,給予使用者更好的體驗,讓人們可以更加迅速、準確、真實地記錄眼前的景象,講究的是所見即所得。

而曾經的第三方拍照應用,雖然承擔記錄眼前景象的任務越來越少,但各家的核心都逐漸放到了創作場景中來,即讓使用者將喜愛的照片更加生動,這種需求下追求的差異化、風格化是和記錄場景的初衷截然不同的。

點選這裡可檢視拍照場景視訊

這兩種拍照場景體現在手機商,辨識前後攝像頭的定位差異。很多使用者開啟手機前置攝像頭自拍的時候,希望把自己拍得美一點。但這個美也會有一個限度,可能會去做一些細微的修飾,但過猶不及。這個尺度其實並不好掌握,“點到為止” 的美化方案,便是 Camera360 長期以來在行業裡摸索出的規律。

在發展初期,Camera360 是記錄、創作兩手抓,所以早期的一些濾鏡如 LOMO、復古等,其實都是想讓使用者更好地記錄所見到的世界。那個時候在各種特效之外,品果的技術團隊還在相機啟動速度,佔用系統資源方面花了很多精力去優化,這也是其得以在第三方相機大戰中脫穎而出的一個關鍵。

“但後來我們發現手機廠商在這方面做的越來越好,畢竟是自家生產的裝置,所以在軟硬體結合方面有著天然的優勢,這時第三方拍照應用的記錄場景幾乎已經被剝奪了。” 顧銳表示。

所以在這樣的產業轉折中,第三方拍照應用將未來發展重心放在了創作場景中,品果也在 Camera360 之後,推出了 MIX 這樣聚焦於影像後期創作的應用。

而在變現方面,Camera360 也在嘗試向內容社群和新功能訂閱模式發展。

品果曾經用 Google 的 AdWords 平臺購買廣告,但作為一個工具型產品,Camera360 在全球推廣的核心依然是產品本身的運用前沿技術開發新功能,所建立起的口碑。比如,當年 Camera360 推出了創新性的動態貼紙功能,便憑藉這個新的特性成功登頂日本應用市場。在 Google 推出了 ARCore 後,品果也第一時間選擇了跟進,以期讓動態功能的表現力更加優秀。

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場
△ 品果的工作人員在 GDD 上

顧銳舉了這樣一個例子:Camera360 曾在全球範圍舉辦了一個封面女郎徵集挑戰賽,使用者可以將自己的照片上傳到指定專區,獲勝者將成為某一天 Camera360 的開機封面。這個活動在泰國、越南等市場吸引了大量的當地女性使用者參加,後來品果聯合那些熱門地區的知名企業,提供當地演唱會的直通區選拔入口,也獲得了使用者歡迎。現在 Camera360 已成為東南亞國民級別的應用。

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場
△ Camera360 在泰國舉辦的落地活動收到了當地使用者的熱烈歡迎

新內容訂閱也是 Camera360 正在發力的方向。在海外市場,很多使用者是願意為更新的功能、特效付費的,顧銳提到 Camera360 在日本應用商店登頂,還曾獲得熱門偶像團體 AKB48 成員在綜藝節目中力薦,這些其實都是靠內容和功能取得的成績。

Firebase、Google Cloud Platform 等開發者工具都已經成為了品果日常工作中的好幫手。 一邊學習新技術,一邊利用新工具,早早揚帆出海的品果在多年的實踐中,已經有了豐富的研發/運營經驗。

“和 Google 合作了這麼多年,我們成了堅定的新技術、新工具追隨者,也受益良多。” 顧銳表示。

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場
△ 品果科技旗下 “Camera360” 和 “Camera360 lite” 兩款產品獲 Google Play “Best of 2016” 的獎牌

成立近 8 年的品果,在日新月異的移動網際網路領域見證了太多的行業變遷,自身也經歷了從 “產品輸出” 到 “技術輸出”,從 “記錄場景” 到 “創作場景” 的定位升級。但無論行業如何變幻,保持對新技術的熱情追求,是這家公司永葆活力的祕訣。

合適的技術就像一片含蓄而又前衛的濾鏡,能將看似平凡的事業刻畫得更加美好,也能折射出不一樣的光線,照亮前行的路。

注: 本文配圖的肖像權歸拍攝物件本人所有,品果科技徵得員工同意後授權使用

點選這裡在 “成功案例” 選單中您可檢視更多谷歌開發者的故事

這款老牌 “裝機必備” 應用,一邊用 Kotlin 換血,一邊深耕精細市場

相關文章