app 开发的几条建议

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

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

    1081 引用 • 3459 回帖 • 235 关注
  • 实战
    3 引用

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 626 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    149 引用 • 3772 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • 友情链接

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

    24 引用 • 373 回帖 • 2 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 453 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 203 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • Dubbo

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

    60 引用 • 82 回帖 • 608 关注
  • Solidity

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

    3 引用 • 18 回帖 • 374 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 70 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 1 关注
  • Openfire

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

    6 引用 • 7 回帖 • 97 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 17 关注
  • 黑曜石

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

    A second brain, for you, forever.

    11 引用 • 90 回帖
  • 深度学习

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

    50 引用 • 40 回帖
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    6 引用 • 1 回帖
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 372 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    207 引用 • 358 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    7489 引用 • 34059 回帖 • 198 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 152 回帖
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 1 关注
  • GitHub

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

    209 引用 • 2031 回帖
  • V2Ray
    1 引用 • 15 回帖
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 157 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 417 关注