在智能手機行業發展之初,大多數手機自帶相機應用的表現都不能盡如人意。那時,一些算法強大的第三方拍照應用成了 「裝機必備」 清單裏的成員。Camera360 就是這樣一個老牌 「裝機必備」 的拍照類應用,已經近 8 歲 「高齡」 的它,曾經獲選 Google Play "Best of 2016"。目前在 Google Play 上的總下載量超過 4 億次。html
雖然如今不少 Android 旗艦機的自帶相機拍照功能愈來愈強大,第三方相機應用的必要性彷佛愈來愈低。能在激烈的市場競爭中屹立不倒,得益於 Camera360 開發公司成都品果科技對於產品定位的精準拿捏以及最新技術的快速跟進。這個老牌影像應用是如何在手機自帶相機愈來愈強的衝擊下順利存活的?在技術層面又有哪些追求?這一次,咱們帶來的是 Camera360 的開發商品果科技的心得與故事。java
任何一家技術驅動型公司,都會對熱門領域的新技術嗅覺敏感。品果也不例外。品果的技術總監 Lee 在大概六七年前知道了 Kotlin 這種新型語言,那時候關於 Kotlin 的技術社區逐漸開始起步。2017 年,Lee 和同事參加 Google I/O 大會時見證了 Kotlin 正式成爲 Android 官方語言的時刻,回到成都後,便開始在公司內部推進學習 Kotlin。在組織公司裏的工程師們學習 Kotlin 時,Lee 改進了以往的培訓方式。算法
爲了讓 Kotlin 更快在公司項目中落地,Lee 最初選擇了參加 StudyJams 的形式,動員公司裏的同事組建了一個小組參加學習,最後也有四個同事順利拿到了畢業證。後來也在公司內部創建了相似的學習機制,每週開課兩次,對此感興趣的工程師們自願參加。由於一線的優秀開發者們廣泛抱有隨時充電學習的態度,因此每次課程都人滿爲患。值得欣慰的是,Kotlin 的學習曲線較爲合理,既不會很平,也沒有很陡 (您能夠參考咱們發佈的文章 《31天,從淺到深輕鬆學習Kotlin》),有 Java 語言基礎的開發者上手並不困難。「在內部推廣學習 Kotlin 以前,咱們公司的技術分享比較中規中矩,談不上培訓,不少人聽了其餘同事的分享之後有多少收穫、可否落地,實際上是不明確的。」 Lee 說。編程
當 Kotlin 成爲品果科技工程師們 "標配" 技能後,Lee 開始嘗試徹底用 Kotlin 開發新的功能 —— 他們只用了三個月時間便將一個複雜度至關高的新模塊開發到了可上線程度,但因產品策略的調整,目前這個新功能還未正式對外。架構
除了使用 Kotlin 開發新功能,品果也在用 Kotlin 重構 Camera360 的老模塊。Camera360 的架構師表示,使用 Kotlin 能夠顯著減小代碼行數。「雖然還沒上線,但有了實操經驗,能夠說咱們技術團隊已經對Kotlin上手了。」 Lee 說。函數式編程
而代碼行數的減小意味着效率的提高,雖然沒辦法具體量化效率提高了多少,但一些提高是顯而易見的,好比自動類型推斷讓編寫代碼更簡潔,data class 能夠減小大量的模板代碼,默認參數減小重載方法的編寫,字符串模板這些開發中最經常使用到的功能,另外 lambda 表達式、函數式編程和擴展方法這些更高級的功能也大大豐富了代碼的編寫方式和效率。「咱們統計了整個項目中的全部代碼,其中每一個 Kotlin 文件的平均行數是 86 行,而相對每一個 java 文件則平均接近 200 行,這能側面反應 Kotlin 更加簡潔;具體來講,咱們的一個工具類庫,在使用Kotlin重構以後,代碼從 2600 行減小到了 1400 行。」函數
此外,使用 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 後,品果也第一時間選擇了跟進,以期讓動態功能的表現力更加優秀。
顧銳舉了這樣一個例子:Camera360 曾在全球範圍舉辦了一個封面女郎徵集挑戰賽,用戶能夠將本身的照片上傳到指定專區,獲勝者將成爲某一天 Camera360 的開機封面。這個活動在泰國、越南等市場吸引了大量的當地女性用戶參加,後來品果聯合那些熱門地區的知名企業,提供當地演唱會的直通區選拔入口,也得到了用戶歡迎。如今 Camera360 已成爲東南亞國民級別的應用。 新內容訂閱也是 Camera360 正在發力的方向。在海外市場,不少用戶是願意爲更新的功能、特效付費的,顧銳提到 Camera360 在日本應用商店登頂,還曾得到熱門偶像團體 AKB48 成員在綜藝節目中力薦,這些其實都是靠內容和功能取得的成績。Firebase、Google Cloud Platform 等開發者工具都已經成爲了品果平常工做中的好幫手。 一邊學習新技術,一邊利用新工具,早早揚帆出海的品果在多年的實踐中,已經有了豐富的研發/運營經驗。
「和 Google 合做了這麼多年,咱們成了堅決的新技術、新工具追隨者,也受益良多。」 顧銳表示。
成立近 8 年的品果,在突飛猛進的移動互聯網領域見證了太多的行業變遷,自身也經歷了從 "產品輸出" 到 "技術輸出",從 "記錄場景" 到 "創做場景" 的定位升級。但不管行業如何變幻,保持對新技術的熱情追求,是這家公司永葆活力的祕訣。
合適的技術就像一片含蓄而又前衛的濾鏡,能將看似平凡的事業刻畫得更加美好,也能折射出不同的光線,照亮前行的路。
注: 本文配圖的肖像權歸拍攝對象本人全部,品果科技徵得員工贊成後受權使用
點擊這裏在 "成功案例" 菜單中您可查看更多谷歌開發者的故事