这款老牌 “装机必备” 应用,一边用 Kotlin 换血,一边深耕精细市场

在智能手机行业发展之初,大多数手机自带相机应用的表现都不能尽如人意。那时,一些算法强大的第三方拍照应用成了 “装机必备” 清单里的成员。Camera360 就是这样一个老牌 “装机必备” 的拍照类应用,已经近 8 岁 “高龄” 的它,曾经获选 Google Play "Best of 2016"。目前在 Google Play 上的总下载量超过 4 亿次。

△ 品果科技三位联合创始人徐灏、徐滢、顾锐 (左起)

虽然现在很多 Android 旗舰机的自带相机拍照功能越来越强大,第三方相机应用的必要性似乎越来越低。能在激烈的市场竞争中屹立不倒,得益于 Camera360 开发公司成都品果科技对于产品定位的精准拿捏以及最新技术的快速跟进。

这个老牌影像应用是如何在手机自带相机越来越强的冲击下顺利存活的?在技术层面又有哪些追求?这一次,我们带来的是 Camera360 的开发商品果科技的心得与故事。

及时跟进新技术 用 Kotlin "换血" 提效

任何一家技术驱动型公司,都会对热门领域的新技术嗅觉敏感。品果也不例外。品果的技术总监 Lee 在大概六七年前知道了 Kotlin 这种新型语言,那时候关于 Kotlin 的技术社区逐渐开始起步。2017 年,Lee 和同事参加 Google I/O 大会时见证了 Kotlin 正式成为 Android 官方语言的时刻,回到成都后,便开始在公司内部推动学习 Kotlin。在组织公司里的工程师们学习 Kotlin 时,Lee 改进了以往的培训方式。

“在内部推广学习 Kotlin 之前,我们公司的技术分享比较中规中矩,谈不上培训,很多人听了其他同事的分享以后有多少收获、能否落地,其实是不明确的。” Lee 说。


△ 品果科技开设的内部 Kotlin 课程

为了让 Kotlin 更快在公司项目中落地,Lee 最初选择了参加 StudyJams 的形式,动员公司里的同事组建了一个小组参加学习,最后也有四个同事顺利拿到了毕业证。后来也在公司内部建立了类似的学习机制,每周开课两次,对此感兴趣的工程师们自愿参加。因为一线的优秀开发者们普遍抱有随时充电学习的态度,所以每次课程都人满为患。值得欣慰的是,Kotlin 的学习曲线较为合理,既不会很平,也没有很陡 (您可以参考我们发布的文章《31天,从浅到深轻松学习Kotlin》),有 Java 语言基础的开发者上手并不困难。

当 Kotlin 成为品果科技工程师们 "标配" 技能后,Lee 开始尝试完全用 Kotlin 开发新的功能 —— 他们只用了三个月时间便将一个复杂度相当高的新模块开发到了可上线程度,但因产品策略的调整,目前这个新功能还未正式对外。

“虽然还没上线,但有了实操经验,可以说我们技术团队已经对Kotlin上手了。” Lee 说。


△ 内部 Kotlin 培训课

除了使用 Kotlin 开发新功能,品果也在用 Kotlin 重构 Camera360 的老模块。Camera360 的架构师表示,使用 Kotlin 可以显著减少代码行数。

“我们统计了整个项目中的所有代码,其中每个 Kotlin 文件的平均行数是 86 行,而相对每个 java 文件则平均接近 200 行,这能侧面反应 Kotlin 更加简洁;具体来说,我们的一个工具类库,在使用Kotlin重构之后,代码从 2600 行减少到了 1400 行。”


△ 品果科技的开发工程师在交流心得

而代码行数的减少意味着效率的提升,虽然没办法具体量化效率提升了多少,但一些提升是显而易见的,比如自动类型推断让编写代码更简洁,data class 可以减少大量的模板代码,默认参数减少重载方法的编写,字符串模板这些开发中最常用到的功能,另外 lambda 表达式、函数式编程和扩展方法这些更高级的功能也大大丰富了代码的编写方式和效率。

此外,使用 Kotlin 显著减少 NullPointerException 这个 Java 语言的老大难问题,在一个 90% Java 代码的老项目中,每个版本的前 50 条错误最高统计中,平均出现 1~2 次 NPE,而在一个 70% 使用了 Kotlin 代码的新项目中,很难在错误统计的前几页找到 NPE。

强大的语法糖也是深受工程师们喜爱的一个特性。目前,Camera360 大概有 10% 左右的代码使用 Kotlin 重构完成,这些 Kotlin 代码主要用在了相机模块和一些基础模块上,品果希望在一年之内把 Kotlin 的代码占比提升到 50%。

历史转折中的第三方拍照应用

第三方拍照应用逐渐淡出了智能手机的 "装机必备" 清单,是个无可否认的事实。在手机厂商越来越重视软件配套、手机自带相机应用愈发强大的当下,曾经叱咤风云的第三方拍照应用纷纷开始了转型。作为起步较早的第三方拍照应用,Camera360 也很早意识到了赛道的变化。品果科技 COO 顾锐表示,实际上,在如今的市场格局下,用户使用手机拍照已经被清晰地分成了两种场景:记录场景和创作场景。

手机厂商对摄像头以及算法的优化调教,是力求在记录场景中,给予用户更好的体验,让人们可以更加迅速、准确、真实地记录眼前的景象,讲究的是所见即所得。

而曾经的第三方拍照应用,虽然承担记录眼前景象的任务越来越少,但各家的核心都逐渐放到了创作场景中来,即让用户将喜爱的照片更加生动,这种需求下追求的差异化、风格化是和记录场景的初衷截然不同的。


Camera360 Reference_腾讯视频

这两种拍照场景体现在手机商,辨识前后摄像头的定位差异。很多用户打开手机前置摄像头自拍的时候,希望把自己拍得美一点。但这个美也会有一个限度,可能会去做一些细微的修饰,但过犹不及。这个尺度其实并不好掌握,“点到为止” 的美化方案,便是 Camera360 长期以来在行业里摸索出的规律。

在发展初期,Camera360 是记录、创作两手抓,所以早期的一些滤镜如 LOMO、复古等,其实都是想让用户更好地记录所见到的世界。那个时候在各种特效之外,品果的技术团队还在相机启动速度,占用系统资源方面花了很多精力去优化,这也是其得以在第三方相机大战中脱颖而出的一个关键。

“但后来我们发现手机厂商在这方面做的越来越好,毕竟是自家生产的设备,所以在软硬件结合方面有着天然的优势,这时第三方拍照应用的记录场景几乎已经被剥夺了。” 顾锐表示。

所以在这样的产业转折中,第三方拍照应用将未来发展重心放在了创作场景中,品果也在 Camera360 之后,推出了 MIX 这样聚焦于影像后期创作的应用。

而在变现方面,Camera360 也在尝试向内容社区和新功能订阅模式发展。

品果曾经用 Google 的 AdWords 平台购买广告,但作为一个工具型产品,Camera360 在全球推广的核心依然是产品本身的运用前沿技术开发新功能,所建立起的口碑。比如,当年 Camera360 推出了创新性的动态贴纸功能,便凭借这个新的特性成功登顶日本应用市场。在 Google 推出了 ARCore 后,品果也第一时间选择了跟进,以期让动态功能的表现力更加优秀。

△ 品果的工作人员在 GDD 上

顾锐举了这样一个例子:Camera360 曾在全球范围举办了一个封面女郎征集挑战赛,用户可以将自己的照片上传到指定专区,获胜者将成为某一天 Camera360 的开机封面。这个活动在泰国、越南等市场吸引了大量的当地女性用户参加,后来品果联合那些热门地区的知名企业,提供当地演唱会的直通区选拔入口,也获得了用户欢迎。现在 Camera360 已成为东南亚国民级别的应用。

△ Camera360 在泰国举办的落地活动收到了当地用户的热烈欢迎

新内容订阅也是 Camera360 正在发力的方向。在海外市场,很多用户是愿意为更新的功能、特效付费的,顾锐提到 Camera360 在日本应用商店登顶,还曾获得热门偶像团体 AKB48 成员在综艺节目中力荐,这些其实都是靠内容和功能取得的成绩。

Firebase、Google Cloud Platform 等开发者工具都已经成为了品果日常工作中的好帮手。 一边学习新技术,一边利用新工具,早早扬帆出海的品果在多年的实践中,已经有了丰富的研发/运营经验。

“和 Google 合作了这么多年,我们成了坚定的新技术、新工具追随者,也受益良多。” 顾锐表示。

△ 品果科技旗下 "Camera360" 和 "Camera360 lite" 两款产品获 Google Play "Best of 2016" 的奖牌

成立近 8 年的品果,在日新月异的移动互联网领域见证了太多的行业变迁,自身也经历了从 "产品输出" 到 "技术输出",从 "记录场景" 到 "创作场景" 的定位升级。但无论行业如何变幻,保持对新技术的热情追求,是这家公司永葆活力的秘诀。

合适的技术就像一片含蓄而又前卫的滤镜,能将看似平凡的事业刻画得更加美好,也能折射出不一样的光线,照亮前行的路。

注: 本文配图的肖像权归拍摄对象本人所有,品果科技征得员工同意后授权使用

点击这里在 "成功案例" 菜单中您可查看更多谷歌开发者的故事

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,457评论 25 707
  • 当有人对你说:你个没心没肺的东西 有时候我们应该感到庆幸 没心没肺有时候是件好事 为什么大多怀念童年 因为那个时候...
    徐晓滕阅读 463评论 0 0
  • 陋巷深深, 我步步寻觅, 蓦然仰首, 那块黑漆牌匾闪亮了我的眸子。 推门, 步入一室安然。 盈盈的是她亲切的笑脸。...
    花悠然阅读 116评论 0 0
  • “我是从那儿出来的吗,那我想再重新进去!” 这是韩国导演金基德的作品《圣殇》中崔江道对自己的“母亲”说的话,足以表...
    随性的玛利亚阅读 1,418评论 0 0
  • 几日前在甘肃出差,闲来无事就看了一部电视剧《舰在亚丁湾》,里面讲述了亚丁湾护航官兵及家属们的“家长里短”,里面有一...
    关中布衣阅读 127评论 2 2