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

于静雨 于静雨     2022-11-23     777

关键词:

在智能手机行业发展之初,大多数手机自带相机应用的表现都不能尽如人意。那时,一些算法强大的第三方拍照应用成了 “装机必备” 清单里的成员。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

























mac装机必备10款系统增强应用软件推荐

这两天我想了很久,装机必备到底要给大家推荐什么应用。其实不是没有值得推荐的应用,恰恰相反是太多了。权衡了一下决定还是以十为界,只挑十个最值得介绍的应用给大家。题目取得太大容易压死人,所以觉得还是分篇来... 查看详情

windows装机必备

——Xshell——VScode——IDM——7zip——Git——googlechrome——MSOffice四件套 查看详情

装机必备

C:UsersAdministratorDocumentsTencentFiles1461701797FileRecv===电脑管家chromfirefoxtimwechatgitsourcetree2345好压爱奇艺万能播放器QQ音乐迅雷WPS百度网盘picpick钉钉hbulider===音速启动mysqlnavicatpowerdesigneraxurepostmanmyeclipseatomsqlyogwmwaresecurecrtdevcppjdkhttps://www.o... 查看详情

数据分析师的windows装机必备软件(代码片段)

...9.网易邮箱大师10.搜狗输入法11.阿里云盘对于数据分析师,装机是再经常不过的一件事情,但是每次装机都要想装什么好,找来找去,故列出来供大家参考.当然,系统是Windows机,最好是Windows101.Python此处推荐Python3.10,毕竟有类型提示符友... 查看详情

对比java学kotlin官方文档目录

文章目录概述用Kotlin开发后端应用用Kotlin开发安卓应用Kotlin/JS概述Kotlin/Native概述用Kotlin处理数据用协程完成异步编程用Kotlin做跨平台开发类和对象类和接口属性概述用Kotlin开发后端应用用Kotlin开发安卓应用Kotlin/JS概述Kotlin/Native... 查看详情

数据分析师的windows装机必备软件(代码片段)

...9.网易邮箱大师10.搜狗输入法11.阿里云盘对于数据分析师,装机是再经常不过的一件事情,但是每次装机都要想装什么好,找来找去,故列出来供大家参考.当然,系统是Windows机,最好是Windows101.Python此处推荐Python3 查看详情

用 Kotlin 编写的 Android 库,提供对 Java 应用程序的支持

】用Kotlin编写的Android库,提供对Java应用程序的支持【英文标题】:AndroidlibrarywritteninKotlin,providesupportforJavaapps【发布时间】:2017-07-0618:32:15【问题描述】:我正在用Kotlin编写一个Android库。但是在用Java编写的Android应用程序中使用... 查看详情

用 Kotlin 编写的 Android 库,提供对 Java 应用程序的支持

】用Kotlin编写的Android库,提供对Java应用程序的支持【英文标题】:AndroidlibrarywritteninKotlin,providesupportforJavaapps【发布时间】:2017-07-0618:32:15【问题描述】:我正在用Kotlin编写一个Android库。但是在用Java编写的Android应用程序中使用... 查看详情

centos7常用装机必备工具(代码片段)

1、lrzs用于ssh后上传下载工具yum-yinstalllrzszrz上传sz**下载指定文件2、fail2ban用于登陆防密码爆破yum-yinstallfail2ban修改配置文件保存cp/etc/fail2ban/jail.conf/etc/fail2ban/jail.conf.bak#备份源文件vi/etc/fail2ban/jail.conf#修改配置文件[DEFAULT]#以空格... 查看详情

必不可少的10类mac装机必备软件,个个万里挑一

1、虚拟机/类虚拟机软件:ParallelsDesktop/CrossOver刚上手Mac的小伙伴肯定很不习惯,而且并不是什么软件都有OS系统,一些小软件就可以在虚拟机或者类虚拟机中安装使用,所以这类软件是必备之一,随意切换,速度更是双系统来回... 查看详情

安利一款免费的gif录制软件,好用到飞起,装机必备。

👨‍🎓作者:bug菌🎉简介:在CSDN、掘金等社区优质创作者,全网合计6w粉+,对一切技术都感兴趣,重心偏java方向,目前运营公众号「猿圈奇妙屋」,欢迎小伙伴们的加入,一起秃... 查看详情

安利一款免费的gif录制软件,好用到飞起,装机必备。

👨‍🎓作者:bug菌🎉简介:在CSDN、掘金等社区优质创作者,全网合计6w粉+,对一切技术都感兴趣,重心偏java方向,目前运营公众号「猿圈奇妙屋」,欢迎小伙伴们的加入,一起秃... 查看详情

kotlin生态调查结果出炉:超过6成的开发者用过kotlin了

...主要的问题是,它在未来是否会成功地入主Android以外的应用?如今JetBrains正在大肆推动Kotlin的多平台应用,它是否会得到大家的认可也仍未可知。但是想要它成为Web、iOS以及后端开发者新的标准,想必也还需要数年的时间 查看详情

使用 kotlin 创建 Web 应用程序的最佳方法是啥?

】使用kotlin创建Web应用程序的最佳方法是啥?【英文标题】:Whatisthebestwayforcreatingawebappwithkotlin?使用kotlin创建Web应用程序的最佳方法是什么?【发布时间】:2021-07-2516:53:22【问题描述】:我已经用kotlin制作了一个android应用程序... 查看详情

我们可以用 kotlin 构建一个全栈 webapp 吗?

...以及它对java的替代品。我正在尝试使用Kotlin构建一个Web应用程序。到目前为止,我在YouTube上阅读了很多博客、课程和视频,但我没有成功地想出一个流程。我遇到了这个链接https:/ 查看详情

使用 Gradle (Kotlin) 应用程序部署 Spring Boot - 找不到 jar

】使用Gradle(Kotlin)应用程序部署SpringBoot-找不到jar【英文标题】:DeploySpringBootwithGradle(Kotlin)application-thejarisnotfound【发布时间】:2018-09-1204:32:40【问题描述】:我有一个用SpringBoot、Kotlin、Gradle制作的简单应用程序。我关注theofficial... 查看详情

如何模拟测试 Kotlin Spring Boot 2 应用程序

】如何模拟测试KotlinSpringBoot2应用程序【英文标题】:howtomocktestKotlinSpringboot2application【发布时间】:2019-09-2802:08:49【问题描述】:我正在尝试测试一个完全用kotlin编写的SpringBoot应用程序。我正在尝试测试模拟存储库对象的服务... 查看详情

关于markdown

...选择。这边我用的是typora.这个软件在mac和windows下都有。这款软件的特点就是即时渲染市面上有很多markdown编辑器。我也有用过。很多都是那种两边分开,一边是代码,一边是渲染效果的。感觉很怪。这typ 查看详情