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

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

△?品果科技三位聯(lián)合創(chuàng)始人徐灝、徐瀅、顧銳 (左起)

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

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

及時跟進新技術(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 改進了以往的培訓(xùn)方式。

“在內(nèi)部推廣學(xué)習(xí) Kotlin 之前,我們公司的技術(shù)分享比較中規(guī)中矩,談不上培訓(xùn),很多人聽了其他同事的分享以后有多少收獲、能否落地,其實是不明確的?!?/i>?Lee 說。


△?品果科技開設(shè)的內(nèi)部 Kotlin 課程

為了讓 Kotlin 更快在公司項目中落地,Lee 最初選擇了參加 StudyJams 的形式,動員公司里的同事組建了一個小組參加學(xué)習(xí),最后也有四個同事順利拿到了畢業(yè)證。后來也在公司內(nèi)部建立了類似的學(xué)習(xí)機制,每周開課兩次,對此感興趣的工程師們自愿參加。因為一線的優(yōu)秀開發(fā)者們普遍抱有隨時充電學(xué)習(xí)的態(tài)度,所以每次課程都人滿為患。值得欣慰的是,Kotlin 的學(xué)習(xí)曲線較為合理,既不會很平,也沒有很陡 (您可以參考我們發(fā)布的文章《31天,從淺到深輕松學(xué)習(xí)Kotlin》),有 Java 語言基礎(chǔ)的開發(fā)者上手并不困難。

當(dāng) Kotlin 成為品果科技工程師們 "標配" 技能后,Lee 開始嘗試完全用 Kotlin 開發(fā)新的功能 —— 他們只用了三個月時間便將一個復(fù)雜度相當(dāng)高的新模塊開發(fā)到了可上線程度,但因產(chǎn)品策略的調(diào)整,目前這個新功能還未正式對外。

“雖然還沒上線,但有了實操經(jīng)驗,可以說我們技術(shù)團隊已經(jīng)對Kotlin上手了?!?/i>?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 行。”


△?品果科技的開發(fā)工程師在交流心得

而代碼行數(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 重構(gòu)完成,這些 Kotlin 代碼主要用在了相機模塊和一些基礎(chǔ)模塊上,品果希望在一年之內(nèi)把 Kotlin 的代碼占比提升到 50%。

歷史轉(zhuǎn)折中的第三方拍照應(yīng)用

第三方拍照應(yīng)用逐漸淡出了智能手機的 "裝機必備" 清單,是個無可否認的事實。在手機廠商越來越重視軟件配套、手機自帶相機應(yīng)用愈發(fā)強大的當(dāng)下,曾經(jīng)叱咤風(fēng)云的第三方拍照應(yīng)用紛紛開始了轉(zhuǎn)型。作為起步較早的第三方拍照應(yīng)用,Camera360 也很早意識到了賽道的變化。品果科技 COO 顧銳表示,實際上,在如今的市場格局下,用戶使用手機拍照已經(jīng)被清晰地分成了兩種場景:記錄場景和創(chuàng)作場景。

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

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


Camera360 Reference_騰訊視頻

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

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

“但后來我們發(fā)現(xiàn)手機廠商在這方面做的越來越好,畢竟是自家生產(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 后,品果也第一時間選擇了跟進,以期讓動態(tài)功能的表現(xiàn)力更加優(yōu)秀。

△?品果的工作人員在 GDD 上

顧銳舉了這樣一個例子:Camera360 曾在全球范圍舉辦了一個封面女郎征集挑戰(zhàn)賽,用戶可以將自己的照片上傳到指定專區(qū),獲勝者將成為某一天 Camera360 的開機封面。這個活動在泰國、越南等市場吸引了大量的當(dāng)?shù)嘏杂脩魠⒓?,后來品果?lián)合那些熱門地區(qū)的知名企業(yè),提供當(dāng)?shù)匮莩獣闹蓖▍^(qū)選拔入口,也獲得了用戶歡迎。現(xiàn)在 Camera360 已成為東南亞國民級別的應(yīng)用。

△?Camera360 在泰國舉辦的落地活動收到了當(dāng)?shù)赜脩舻臒崃覛g迎

新內(nèi)容訂閱也是 Camera360 正在發(fā)力的方向。在海外市場,很多用戶是愿意為更新的功能、特效付費的,顧銳提到 Camera360 在日本應(yīng)用商店登頂,還曾獲得熱門偶像團體 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)使用

點擊這里在?"成功案例"?菜單中您可查看更多谷歌開發(fā)者的故事

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,160評論 25 708
  • 當(dāng)有人對你說:你個沒心沒肺的東西 有時候我們應(yīng)該感到慶幸 沒心沒肺有時候是件好事 為什么大多懷念童年 因為那個時候...
    徐曉滕閱讀 508評論 0 0
  • 陋巷深深, 我步步尋覓, 驀然仰首, 那塊黑漆牌匾閃亮了我的眸子。 推門, 步入一室安然。 盈盈的是她親切的笑臉。...
    花悠然閱讀 137評論 0 0
  • “我是從那兒出來的嗎,那我想再重新進去!” 這是韓國導(dǎo)演金基德的作品《圣殤》中崔江道對自己的“母親”說的話,足以表...
    隨性的瑪利亞閱讀 1,916評論 0 0
  • 幾日前在甘肅出差,閑來無事就看了一部電視劇《艦在亞丁灣》,里面講述了亞丁灣護航官兵及家屬們的“家長里短”,里面有一...
    關(guān)中布衣閱讀 156評論 2 2

友情鏈接更多精彩內(nèi)容