app 开发的几条建议

本贴最后更新于 1959 天前,其中的信息可能已经天翻地覆

1

随着智能手机的普及,app 已经是公司不可或缺的产品啦。那么在开发 app 的时候,我们应该注意什么呢?

1、一定要加入版本升级功能,其他的功能可以有 bug,但是版本升级的功能一定不能有 bug。版本升级功能有问题,用户升级不了,那么这个用户将不能升级你的 app。

2、尽可能多的想一下以后会出现哪些功能,那么可以提前设置一些 app 的跳转地址,可以通过 h5 或者推送来打开 app 并打开指定页面,如果你确定想不到有哪些功能,那么可以打开一个默认页,至少要保证 app 不会崩溃。

3、尽量逻辑都在后台做,要做到重后台轻客户端。像一些 label 的显示,可以后台拼接好返回给 app,像一些按钮需判断是否显示,也可以后台给一个 boolean 值,判断是否显示按钮。重后台的好处是服务端想什么时候升级都可以,但是 app 的话升级就比较麻烦了,尤其是苹果,审核是各种的严格。

4、app 可以用 h5 的地方尽量用 h5,虽然 h5 的体验会差一点,但是升级会比较方便,不受限于第三方。

5、app 那边需要写死的地方,都应该通过接口获取,后台可以提供一个通用配置接口,里面提供各种需要的值,这样想改一下 app 里面的描述,只要后台改一下就好了,像一些底部的 tab 图标,都可以从后台获取,比如你有个活动,可以修改底部 tab 图片,这样就可以很好的宣传你的活动。或者过年的时候,你可以把图标换的喜庆一点。

6、app 的输入框验证最好也是通过接口来获取,接口返回正则表达式,尽量不要在 app 那边写死。因为你很难保证说这个业务的验证规则一定是不会变的。比如手机号,你的手机号正则没有把 19、17 等包括进去,那么当出现了 19、17 开头的手机号,那么这些手机号就用不了了。

7、app 中使用 h5,那么必然会需要进行交互,所以 app 这边可以尽量多的提供一些 h5 需要的基础接口,如获取版本号,厂商,设备唯一序列号,唤起登录页面,获取用户登录 token 和信息等。这些接口提前提供好,h5 开发的时候,之前已经上线的 app 也能很好的支持。

8、app 这边一定要接友盟,这样你的 app 出现问题,可以在友盟里面看异常,不然你都不知道用户使用 app 过程中有没有问题,测试的时候不可能所有市场上的版本都测一遍,这个是不现实的。友盟统计还可以看到你的 app 的一些数据,可以用于运营和查看 app 的使用情况。

9、数据库的字符集可以设置为 utf8mb4,因为你的 app 说不定哪天需要支持表情,因为很多输入法都有自带的 emoji 表情,提前准备好,防止需要支持表情的时候你还要去切换字符集。因为在切换的时候可能会出现问题。

10、app 中推送的一定要接的,不管你的项目时间来不来得及。这样你前期的上线的 app 也可以接收到消息。

11、接口头里面都需要传一些公共参数,如 app 版本号,属于哪个平台,操作系统的版本,设备唯一序列号,厂商,设备型号等。方便定位问题:可以根据日志查出什么机型下的哪个操作系统会出现这个问题,那么我们这边可以有针对性的去复现这个问题并把它解决掉。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 284 关注
  • 实战
    3 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
chaigx
欢迎关注我的公众号:程序之声。有些文章没办法同步过来,访问个人博客:http://www.chaiguanxin.com 杭州

推荐标签 标签

  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖 • 3 关注
  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1398 回帖
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    15 引用 • 7 回帖 • 1 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 508 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    108 引用 • 54 回帖 • 1 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 292 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    53 引用 • 85 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 688 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 455 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 19 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 353 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 87 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    164 引用 • 1456 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1347 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 121 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 125 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 179 关注
  • gRpc
    10 引用 • 8 回帖 • 54 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    333 引用 • 323 回帖 • 62 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 491 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 522 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 29 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    3 引用 • 83 回帖 • 2 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 110 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    71 引用 • 155 回帖