拯救一个已经死亡的 App 的方式就是写一个新的,工时一天半, OnePic 上线 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
qianji201712
V2EX    程序员

拯救一个已经死亡的 App 的方式就是写一个新的,工时一天半, OnePc 上线

  •  6
     
  •   qianji201712
    litang0908 2019-05-10 12:47:45 +08:00 14782 次点击
    这是一个创建于 2351 天前的主题,其中的信息可能已经有所发展或是发生改变。

    题记

    源于这个帖子 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 功能都很强大,也可以加各种文字,滤镜,所以有人好奇为什么还要重复造轮子,其实我就是闲的 = =
    142 条回复    2019-05-26 11:50:35 +08:00
    1  2  
    imningfeng
        1
    imningfeng  
       2019-05-10 12:50:40 +08:00
    牛逼牛逼,支持支持
    Garwih
        2
    Garwih  
       2019-05-10 13:03:02 +08:00 via iPhone
    字体版权问题怎么解决呢?
    jdhao
        3
    jdhao  
       2019-05-10 13:10:41 +08:00 via Android
    我也想问字体,不过个人随便用用应该没问题,很多字体个人用免费。另外,思维导图用什么软件做的啊,感觉不错
    qianji201712
        4
    qianji201712  
    OP
       2019-05-10 13:12:16 +08:00 via Android
    @Garwih 目前是 Demo 阶段,有几个商用字体,过两天拿掉,一律使用免费的字体就好了,后续还将支持用户自己导入字体,版权还是要尊重一下的
    qianji201712
        5
    qianji201712  
    OP
       2019-05-10 13:12:51 +08:00 via Android   1
    @jdhao 思维导图是 幕布 这个软件,强烈推荐,简洁强大,目前已经被头条收购了
    Paual
        6
    Paual  
       2019-05-10 13:14:15 +08:00
    厉害
    hereIsChen
        7
    hereIsChen  
       2019-05-10 13:16:03 +08:00
    是时候更新一波沙雕表情包了
    qianji201712
        8
    qianji201712  
    OP
       2019-05-10 13:18:22 +08:00 via Android
    @hereIsChen 不不不,要美观、优雅、漂亮、唯美、纯真....
    omph
        9
    omph  
       2019-05-10 13:19:55 +08:00
    文字比较多,该怎么处理比较好?
    qianji201712
        10
    qianji201712  
    OP
       2019-05-10 13:25:50 +08:00
    @omph 那可能没有好的方案了,毕竟一张图上面放太多文字也不好看啊
    TwoDays91
    &nsp;   11
    TwoDays91  
       2019-05-10 13:27:58 +08:00 via Android
    这效率厉害厉害
    rain423
        12
    rain423  
       2019-05-10 13:31:38 +08:00
    lz 执行力很强,佩服
    qianji201712
        13
    qianji201712  
    OP
       2019-05-10 13:33:03 +08:00   1
    @rain423 就是想到了就想尽快做出来体验体验 :)
    mzlzero
        14
    mzlzero  
       2019-05-10 13:34:26 +08:00
    体积小不是应该上小程序吗
    qianji201712
        15
    qianji201712  
    OP
       2019-05-10 13:35:36 +08:00 via Android
    @mzlzero 体验不好,做的图效果也一般啊,关键,不会写小程序
    zackwu
        16
    zackwu  
       2019-05-10 13:35:47 +08:00   1
    lz 的生产效率好高,赞一个。

    (顺便赞美一下楼主开发的钱迹 APP,每天记账都用,相当好用
    qianji201712
        17
    qianji201712  
    OP
       2019-05-10 13:41:02 +08:00
    @keith1126 感谢对钱迹的赞美哈哈
    haxc
        18
    haxc  
       2019-05-10 13:54:00 +08:00 via Android   1
    使用了下,因为我也有经常要添加文字到图片的需求,一般使用美图秀秀,楼主这个建议加上几个功能,和美图秀秀添加文字的差不多就可以了
    双指缩放文字大小,转换方向,文字可以移动到任意位置,字体可以加粗之类
    iblessyou
        19
    iblessyou  
       2019-05-10 13:55:21 +08:00
    不懂手机端东西,想问下应该还有什么注册申请、上架审核什么的,3 天就可以这么简单搞定么
    qianji201712
        20
    qianji201712  
    OP
       2019-05-10 13:56:12 +08:00
    @haxc 多谢,二期我来实现吧
    whitev2
        21
    whitev2  
       2019-05-10 13:56:33 +08:00
    不建议导入分享 SDK,使用系统内置的分享功能就可以了
    qianji201712
        22
    qianji201712  
    OP
       2019-05-10 13:57:19 +08:00
    @iblessyou 因为我已经注册过各大应用市场,所以只需要上传 App,等待审核就好了,国内最友好的市场是酷安,半天就审核过了,Google Play 更快,主要工作量还是在开发阶段
    qianji201712
        23
    qianji201712  
    OP
       2019-05-10 13:57:53 +08:00
    @whitev2 嗯,已经否掉分享 SDK 了,使用了 Android 自带的,简单又好用
    psj1105
        24
    psj1105  
       2019-05-10 13:59:53 +08:00
    资瓷一下
    cspolecat
        25
    cspolecat  
       2019-05-10 14:00:42 +08:00
    这效率可以的~
    SimonOne
        26
    SimonOne  
       2019-05-10 14:00:52 +08:00
    请问,脑图用的什么软件啊?
    zixianlei
        27
    zixianlei  
       2019-05-10 14:04:57 +08:00
    我以为你开源了。。我还想搞搞呢
    qianji201712
        28
    qianji201712  
    OP
       2019-05-10 14:06:31 +08:00
    qianji201712
        29
    qianji201712  
    OP
       2019-05-10 14:06:57 +08:00
    @zixianlei 直接用啊,有什么需求尽管提 :P
    haxc
        30
    haxc  
       2019-05-10 14:09:23 +08:00 via Android
    还有忘记说,可以使用整张图片修改,或者裁剪部分图片
    qianji201712
        31
    qianji201712  
    OP
       2019-05-10 14:11:23 +08:00
    @haxc 目前定位成了正方形的图片,先上线,看看大家的反馈,说不定就支持多种裁剪方式了,感谢!
    dabaibai
        32
    dabaibai  
       2019-05-10 14:13:33 +08:00
    只能说厉害
    JerryCha
        33
    JerryCha  
       2019-05-10 14:14:37 +08:00
    棒,学习了。
    GBS4tpm0slp4U0m7
        34
    GBS4tpm0slp4U0m7  
       2019-05-10 14:17:47 +08:00
    iOS 版本求一个
    huang2tui
        35
    huang2tui  
       2019-05-10 14:20:38 +08:00
    nice!这个行动力,满分
    qianji201712
        36
    qianji201712  
    OP
       2019-05-10 14:21:34 +08:00
    @haoo 怕写了你不用啊 hhh,等我钱迹搞完了,用 Flutte 写一个吧
    guoyuchuan
        37
    guoyuchuan  
       2019-05-10 14:23:34 +08:00
    你这头像不是钱迹的嘛
    oyifan
        38
    oyifan  
       2019-05-10 14:24:01 +08:00
    @qianji201712 #36 以为你会开源,然后会有一个跟你一样闲的 iOS 帮你开发了
    Genokiller
        39
    Genokiller  
       2019-05-10 14:24:36 +08:00
    @qianji201712 给力,楼主 flutter 怎么学习的
    wpzero
        40
    wpzero  
       2019-05-10 14:25:34 +08:00 via iPhone
    cool
    samondlee
        41
    samondlee  
       2019-05-10 14:25:43 +08:00
    字体如果可以设置透明度就好了 hhhh
    InternetExplorer
        42
    InternetExplorer  
       2019-05-10 14:27:55 +08:00
    方正警告证据已采集,正在生成律师含
    Homebrew
        43
    Homebrew  
       2019-05-10 14:33:51 +08:00
    所以,这个产权属于公司,还是属于你?
    qianji201712
        44
    qianji201712  
    OP
       2019-05-10 14:39:56 +08:00
    @InternetExplorer 不盈利,没有侵权 --,而且,过两天就删了,目前用户不多,准备一律换成免费字体
    qianji201712
        45
    qianji201712  
    OP
       2019-05-10 14:40:17 +08:00
    @guoyuchuan 钱迹就是我写的 hahhh
    qianji201712
        46
    qianji201712  
    OP
       2019-05-10 14:40:51 +08:00
    @Genokiller 自学啊,官网教程很全面的,耐着性子跟着学就好了
    lovedebug
        47
    lovedebug  
       2019-05-10 14:44:16 +08:00
    执行力点赞
    bydgg
        48
    bydgg  
       2019-05-10 14:56:08 +08:00
    表情包是个好思路哦
    sute
        49
    sute  
       2019-05-10 15:09:04 +08:00
    难怪看 LZ 的头像这么熟悉,原来就是钱迹的开发者,正在用你的 APP,很不错,希望能继续维护。
    Eytoyes
        50
    Eytoyes  
       2019-05-10 15:15:59 +08:00
    佩服
    Dfj0ae
        51
    Dfj0ae  
       2019-05-10 15:25:51 +08:00
    其实可以连服务器都省掉的,直接找个公开的博客,写入各种配置(这里要预留以后更新配置的地址),然后 base64 编译一下,app 取到之后再解密。*_*
    yannxia
        52
    yannxia  
       2019-05-10 15:29:17 +08:00   1
    已下载…太棒了,感觉重获新生。
    zackwu
        53
    zackwu  
       2019-05-10 15:32:05 +08:00
    @Dfj0ae #51

    这还是用了服务器啊,只不过是借用了博客的...还不如自己弄一个,比较靠谱
    RobertWu
        54
    RobertWu  
       2019-05-10 15:33:34 +08:00
    PHP 服务端是用的哪个框架,C 代码安全校验是怎么做的?能否分享下,想学习一下。
    qianji201712
        55
    qianji201712  
    OP
       2019-05-10 15:36:19 +08:00
    @Homebrew 产权属于我
    qianji201712
        56
    qianji201712  
    OP
       2019-05-10 15:36:46 +08:00
    /div>
    @sute 会的,准备月底辞职了,然后专职搞钱迹
    qianji201712
        57
    qianji201712  
    OP
       2019-05-10 15:38:05 +08:00
    @Dfj0ae 嗯,其实也可以的,或者找一个 github,存个 json 配置,每次去拉取就好了,用服务器是因为我之前做钱迹,有一整套完整的系统,有后台直接配置就好了,也挺方便的,也好以后再扩展
    qianji201712
        58
    qianji201712  
    OP
       2019-05-10 15:38:49 +08:00
    @yannxia 还是看了你的帖子才想起来这个 App 的哈哈
    yannxia
        59
    yannxia  
       2019-05-10 15:53:37 +08:00
    @qianji201712 老哥,二期感觉可以把原来简图有 那些纯色和纹理的功能加起来,对于我来说,我感觉那功能还是挺实用的,经常发一些单色图的文字。还要我感觉上面的同学们说的字体的问题也是,如果做成自行导入的形式,不知道可以不可以规避掉一些法律风险
    iugo
        60
    iugo  
       2019-05-10 15:56:06 +08:00
    PHP 后端就用半个小时?

    我写个文档都要不止半个小时.

    应该是脑中的结构很清楚了, 才这么高效.
    WhoMercy
        61
    WhoMercy  
       2019-05-10 15:56:08 +08:00
    lz 执行力确实强,干净简洁的安卓 app 好评

    btw.看开头几句话,还以为开会两小时出个小差,就把 app 设计好,并写完上架了,也太强了 8...
    (当然,看完就知道并不是这样
    qianji201712
        62
    qianji201712  
    OP
       2019-05-10 15:58:36 +08:00
    @RobertWu PHP 框架我用的 phalcon https://phalconphp.com 不过这种小 app 的 API,不用框架也完全可以。
    C 层代码安全校验,主要是和服务器约定好一个算法,然后在本地生成一些校验码,在请求 API 时,服务器会根据提交的参数,同样生成校验码,然后比对就好了
    qianji201712
        63
    qianji201712  
    OP
       2019-05-10 15:59:45 +08:00
    @yannxia 纹理这个我已经安排在二期里面了,可以的,还有字体也是二期计划做,支持用户手动导入,这样更加灵活一些
    qianji201712
        64
    qianji201712  
    OP
       2019-05-10 16:01:12 +08:00
    @iugo 嗯嗯,因为做钱迹,积累了很多经验,其实这个后端的接口,就是在 Controller 的一个方法里面,返回一个 JsonArray 的数据就好了,非常的简单,写完部署到服务器上面就可以了,很多东西提前就可以想清楚
    qianji201712
        65
    qianji201712  
    OP
       2019-05-10 16:05:20 +08:00
    @WhoMercy 提前整理好要做的东西后,感觉剩下的工作就跟搭积木一样,一点点补充就好了,设计完之后的工作,都是很机械的
    fvckDaybyte2
        66
    fvckDaybyte2  
       2019-05-10 16:06:03 +08:00 via iPhone
    啥,一天就开发完了?
    XnEnokq9vkvVq4
        67
    XnEnokq9vkvVq4  
       2019-05-10 16:20:25 +08:00   1
    楼主功在当代,利在千秋。
    746215017chen
        68
    746215017chen  
       2019-05-10 16:22:06 +08:00
    @qianji201712 软著怎么弄的?
    mink
        69
    mink  
       2019-05-10 16:23:22 +08:00
    厉害了,楼主有没有考虑钱迹也做成 ios 应用。
    jason19901128
        70
    jason19901128  
       2019-05-10 16:29:07 +08:00
    @qianji201712 开发大神好,有兴趣赚零花钱不。我手上有一批海外用户( 7 位数,来源不可描述),可以投放 App,可以变现。苦于自己不懂开发,只做过运营,现在想找几个输出强力的开发大牛,“趁热”把这批用户赶紧变现了。
    简单来说就是,你出 app,我出用户,一起分钱。
    qianji201712
        71
    qianji201712  
    OP
       2019-05-10 16:32:42 +08:00
    @fvckDaybyte2 一天半 = =
    qianji201712
        72
    qianji201712  
    OP
       2019-05-10 16:35:07 +08:00
    @jason19901128 可以啊,欢迎一起合作,加个微信吧 litang0908 这是我的
    qianji201712
        73
    qianji201712  
    OP
       2019-05-10 16:35:30 +08:00
    @mink 已经做了 60%了,用 Flutter 在写
    qianji201712
        74
    qianji201712  
    OP
       2019-05-10 16:36:07 +08:00
    @hanqian 不需要软著的,酷安和 GooglePlay,华为市场都不需要,其他国内的应用市场,都是辣鸡
    qianji201712
        75
    qianji201712  
    OP
       2019-05-10 16:36:58 +08:00
    @samondlee 在设置字体颜色的地方,可以设置透明度的
    jason19901128
        76
    jason19901128  
       2019-05-10 16:37:58 +08:00
    @qianji201712 好呢加你了
    sega97
        77
    sega97  
       2019-05-10 16:56:34 +08:00
    非常棒的软件设计和开发规划,收藏了
    Aliennnnnn
        78
    Aliennnnnn  
       2019-05-10 17:23:22 +08:00
    钱迹很好用 hhhh
    Aliennnnnn
        79
    Aliennnnnn  
       2019-05-10 17:28:41 +08:00   1
    给钱迹提个建议:能不能设置自动记录固定消费,每月一号自动记录房租、会员费等按月扣款的固定开支。
    qianji201712
        80
    qianji201712  
    OP
       2019-05-10 17:29:46 +08:00
    @Aliennnnnn 多谢,已经在今年的开发计划中了 ,另外,可以看看我们的路线图 http://docs.qianjiapp.com/roadmap/roadmap_vol1.html
    Aliennnnnn
        81
    Aliennnnnn  
       2019-05-10 17:39:22 +08:00
    @qianji201712 时间粒度可以分为天、周、月。钱迹非常轻量,没有开屏动画,没有干扰信息,APP 启动速度很快,是我能坚持记账的很重额要 d 因素,希望作者能坚持做下去,适当收费也是可以接受的
    razor1895
        82
    razor1895  
       2019-05-10 18:01:13 +08:00
    我曾经也有一样的想法... 就是没有做出来... 回家就是打游戏
    mink
        83
    mink  
       2019-05-10 18:02:26 +08:00   1
    @qianji201712 一直想要好用的记账管理类 app, 但是都不大好用。 楼主加油
    qianji201712
        84
    qianji201712  
    OP
       2019-05-10 19:19:05 +08:00 via Android
    @mink 等我马上把 ios 做完了
    qianji201712
        85
    qianji201712  
    OP
       2019-05-10 19:19:34 +08:00 via Android
    @razor1895 主要我对游戏没兴趣
    ATiGr
        86
    ATiGr  
       2019-05-10 19:30:13 +08:00 via iPhone
    我只想说……图床域名太逗了……
    xcodebuild
        87
    xcodebuild  
       2019-05-10 19:45:39 +08:00
    现在个人上架应用要著作权什么的么
    qianji201712
        88
    qianji201712  
    OP
       2019-05-10 19:55:56 +08:00
    @ATiGr 几年前注册的一个奇怪域名,现在在好多 App 中用 = =
    RockShake
        89
    RockShake  
       2019-05-10 20:17:08 +08:00 via Android
    这行动效率,赞一个
    Sanko
        90
    Sanko  
       2019-05-10 20:23:49 +08:00 via Android
    真全栈
    qwe7002
        91
    qwe7002  
       2019-05-10 20:25:12 +08:00 via iPhone
    我在想既然要解决这种可能服务器关掉导致应用死掉的问题,不如考虑一下使用公共资源(例如 github/cloudflare/Google fonts 这类的东西)?
    qianji201712
        92
    qianji201712  
    OP
       2019-05-10 20:41:33 +08:00
    @qwe7002 的确是,很多东西都没必要有服务器的,就是一个工具型的 App,那么字体这些资源,都可以放公共的服务上面
    ilotuo
        93
    ilotuo  
       2019-05-10 21:08:09 +08:00
    lz 我有一个工具应用。绿色无广告。你能帮我上架 google play 吗?我没有开发者账号。。
    qianji201712
        94
    qianji201712  
    OP
       2019-05-10 21:15:54 +08:00 via Android
    @ilotuo 好啊,私聊啊 wechat litang0908
    justfun
        95
    justfun  
       2019-05-10 21:26:58 +08:00
    太强了楼主
    tianzry
        96
    tianzry  
       2019-05-10 21:41:08 +08:00 via Android
    支持一下
    samaxu
        97
    samaxu  
       2019-05-10 21:43:03 +08:00
    这就是 ios 钱迹还没出的原因咯 狗头
    qianji201712
        98
    qianji201712  
    OP
       2019-05-10 21:49:41 +08:00 via Android
    @samaxu 钱迹可不是一天两天就能搞完的,正在提离职了,离职就有更多时间了
    sindri
        99
    sindri  
       2019-05-10 21:58:31 +08:00
    就喜欢这家种简单看得懂的创造。赞
    pkxutao
        100
    pkxutao  
    PRO
       2019-05-10 22:05:02 +08:00 via Android
    楼主你专职搞钱迹的话收入来源是什么?
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1038 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 18:34 PVG 02:34 LAX 11:34 JFK 14:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86