app 开发的几条建议

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

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思源笔记

    1063 引用 • 3453 回帖 • 203 关注
  • 实战
    3 引用

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 2 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • danl
    132 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • 自由行
    10 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 工具

    子曰:“工欲善其事,必先利其器。”

    286 引用 • 729 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 638 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2031 回帖
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 471 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 595 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    15 引用 • 122 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 17 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 8 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1705 回帖 • 1 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖 • 2 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    62 引用 • 289 回帖 • 1 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 4 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • abitmean

    有点意思就行了

    29 关注