标签:挑战 src 同事 camera360 inter 日常 建立 智能 记录
在智能手机行业发展之初,大多数手机自带相机应用的表现都不能尽如人意。那时,一些算法强大的第三方拍照应用成了 “装机必备” 清单里的成员。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 长期以来在行业里摸索出的规律。
在发展初期,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 年的品果,在日新月异的移动互联网领域见证了太多的行业变迁,自身也经历了从 "产品输出" 到
"技术输出",从 "记录场景" 到 "创作场景"
的定位升级。但无论行业如何变幻,保持对新技术的热情追求,是这家公司永葆活力的秘诀。
合适的技术就像一片含蓄而又前卫的滤镜,能将看似平凡的事业刻画得更加美好,哈佛大学申请也能折射出不一样的光线,照亮前行的路。
*注: 本文配图的肖像权归拍摄对象本人所有,品果科技征得员工同意后授权使用
?点击屏末?|?阅读原文?| 在 "成功案例" 菜单中您可查看更多谷歌开发者的故事
推荐阅读:
·?这些关键点帮助 app 有效地传递付费订阅的价值
·?用户获取要不要花钱?花多少钱划算?一个简单的工具帮您轻松做决策
·?上期课程全套内容视频回放 | Google Play 线上培训营?
文章来源:https://blog.csdn.net/jILRvRTrc/article/details/80730043
这款老牌 “装机必备” 应用,一边用 Kotlin 换血,一边深耕精细市场
标签:挑战 src 同事 camera360 inter 日常 建立 智能 记录
原文地址:https://www.cnblogs.com/yujingyua/p/9645404.html