![](https://img.haomeiwen.com/i12557346/159c313cd98343b1.jpg)
认证层(Authentication Layer)
这应该是你开发链中的第一步。为了应对各种各样的认证请求与inflight request,这一层应该有足够可扩展性。需要留意认证令牌的刷新,令牌刷新失败或类似情况时的错误处理。
自动编译
要确保你为安卓和iOS建立了一个能自动编译的安装程序,并且有把他们分配给测试者的渠道。
舒适的移动体验
如果因为一些原因,即使是没有网络或者api停止工作了,也需要保证用户能够返回并从app退出。用户应该总能够点击到导航栏,这样还能够进入缓存中的页面,注销,当网好的时候重新加载,或退出app等。一定避免用户不得不强行终止app进程的情况。这是需要提前考虑的另一个设计特点。
数据封装
当设计数据封装时候一定要考虑API的存留时间(ttl),用默认的ttl,缓存层,采用多数据源传送以标准表或者键值存储的数据。
崩溃分析
把崩溃分析与app联系起来非常重要,这样如果用户的app崩溃了,我们就能知道原因并可以更快的在下个版本修复。许多工具都可以做到这些。
数据存储
从app设计出发,这是需要考虑的最重要方面。有很多种在手机中存储数据的方法。比如WebStorage(LocalStorage, SessionStorage) , InMemory, SQLite. Localstorage的大小是10MB,如果你的要存的数据比这个小,它是个好选择。它的缺点之一是,当你的内存满了以后,操作系统会清空Localstorage数据。SQLite是基于文件的数据库,而且对于更大的文件更加稳定。它是嵌入式关系型数据库,如果你想把大量数据存储/缓存在客户端,它会是你的好朋友。
导航堆栈
当需要在不同页面间导航,并且有不止一种入口可以到达需要的页面时,它就是app最重要特性之一。它同样可以被分为不同的导航堆栈,比如:App导航,Tab导航,菜单导航等。要时刻考虑到各种情况,这样用户就不会陷入循环依赖 (死胡同)而需要强制停止app。
网络连接
开发者经常假定人们总是有良好的互联网,按照这个逻辑设计app并把它推出。这也是当app不工作或不能持续下载数据时,大部分新手开发者受到打击的一点,最终导致了app在apple/google商店的低评价。一旦app已经推出,修复这类问题就很不容易,需要大量的退化。所以设计app时,这是需要考虑的重要一点。
网友评论