题记
源于这个帖子 https://www.v2ex.com/t/560252#reply22 ,一个我曾经也用过的 App,发觉已经死了(官方停止维护,服务器也挂了)
这个 App 的功能很简单,就是给你的图片增加文字,内置多种字体,选择合适的字体,生成一张精美的图片。
顺便下载这个 App 看了一下,交互也还行,只是由于服务器挂了,导致无法下载字体,整个 App 基本上就废了,但是我个人比较喜欢这种功能单一,体积轻小的 App,所以有点想再造一个出来。
前天下午开了 2 两个小时无聊的会,实在坐不住,就想起了这个 App,遂开始动手设计。
App 暂时取名 OnePic ,已经上架酷安市场,链接直达 https://coolapk.com/apk/com.mutangtech.onepic
整个 App 体积 3.5M ,本来想控制在 3M 以内的,奈何已经到极限了
无图无真相





思维导图
大概设计了整个 App 需要的功能和一些技术模块

开发过程
从前天下午到昨晚做完第一版,基本上按照上面的思维导图来写的,用了一些我之前写钱迹时自己封装的框架。
技术栈主要有一下几个方面:
后端
因为考虑到日后维护字体的方便性,就搭建了一个简易的 PHP 服务端,只提供两个接口:一个 App 初始化的配置接口,一个字体列表的接口,代码简单,返回普通的 JsonArray ,耗时约半个小时。
服务器配置
配置了单独的域名,因此需要额外配置 DNS 解析和服务器域名定向操作,耗时 10 分钟。
Android
主要的工作还是在 Android 端,四个界面:
- 主界面,直接操作,编辑文字
- 图片选择界面,从相册选择并裁剪图片,这个界面比较复杂,就单独写了图片扫描列表,最后裁剪时引入开源的
uCrop,不过这个库比较死板,再它的基础上进行了二次开发,同时,考虑到手机屏幕比较小,做了一些手势滚动的处理,方便展示更多的内容 - 历史图集,存放用户所有生成的图片,可以直接分享或者删除
- 关于界面,每个 App 都有的没人看的页面
整个 App 的设计,参考了简图原有的交互,也加入很多个人的想法进去,不过呢,本人设计能力有限,可能会比较丑。
字体是从网上找的,配置到了 CDN 上面,通过 API 接口来下发,方便后期加入新的字体进去。
Android 一律使用 Kotlin 来写,加入了部分 C 代码做接口安全校验工作。
主要的技术问题,在思维导图中有详细的列出来。
存在的问题
- 图片裁剪比较慢,考虑到图片的高清程度,图片裁剪上限配置成了 2400,所以裁剪略慢,加入降低到 1080 的分辨率,做出来的图,再发到微博时,经过二次压缩,质量会损失很多
- 未实现高斯模糊效果,放二期
- 在华为和小米手机测试通过,不过其他机型不保证百分百正常,如果有问题,我持续改进它
后续
- 根据大家的反馈来进行改进
- 解决存在的问题
- 实现高斯模糊效果 虽然现在各种美图 App 功能都很强大,也可以加各种文字,滤镜,所以有人好奇为什么还要重复造轮子,其实我就是闲的 = =