为什么要设计启动流程
App的启动流程是每一个移动应用都需要精心设计的,一个优秀的启动流程可以最大程度降低用户的“等待感”,同时还能第一时间抓住用户G点,使其有兴趣继续使用。
一个典型的启动流程是如何设计的
移动应用发展到今天,启动流程其实已经是一个标准件了。不论什么类型的应用:电商、社交或是行业应用它们的启动流程都是类似的,正因为如此我们才可以整理一个典型的启动流程。我们通过下面三个步骤来逐步呈现。
第一步:启动过程中都有哪些实体元素?
我们随便下载几个App,打开它们,基本都可以知道这一过程中涉及到了哪些元素:
启动页:打开应用立即呈现在用户眼前的图片就是启动页,它一般是应用的 logo 和 slogan
引导页:如果我们是第一次打开应用,一般在启动页之后会有几张可以左右切换的图片,它们一般会告诉用户这个产品是什么、做什么用、和别人有什么区别等,我们叫它引导页
广告页:应用启动后,基于运营/业务的需求,可以在启动页之后增加一页用于宣传的页面,可以加入链接跳转到应用内部某个落地页面。
首页:应用完全启动后,呈现给用户的第一个页面,用户到了这个页面才可以正式体验应用的相关功能。
应用启动页面这就是典型App启动过程中用户可能看到的页面元素
第二步:启动过程中可能存在哪些变化因素?
在我们知道应用启动过程中可能看到的页面元素之后,现在应该需要考虑的就是:用户在这个过程中可能遇到什么情况,也就是我们常说的使用场景。
综合用户使用场景,可能存在如下两种情况:
网络因素:即无网络、2G、3G、4G或者WiFi
启动因素:首次启动或者不是首次启动
第三步:如何将实体和变化因素串起来?
首先,我们先抛开网络因素看启动因素,如果是应用首次启动,应该是如何呢?
首次打开应用流程 1我们可以看到,一个典型的App首次启动的流程是:先看到启动页,然后新手引导,最后进入应用的首页
接下来,我们把网络因素考虑进来,那么网络因素应该放在哪儿,即:你希望在什么节点判断用户当前所处的网络环境?有三个地方:
1. 一打开就判断
2. 启动页结束后
3. 引导页结束后
如果是第一种情况,那么如果用户没有网络一打开App就会被弹窗警告提示,应用的启动流程会因此中断,这时候你的App还要不要启动?用户会不会想,我一打开就蹦出这么个玩意(虽然知道是没有网络)? 那第二种情况和第一种情况也是一样的
所以,考虑到启动流程的流畅性,我们应该把网络的判断放到引导页之后,也就是进入首页时,如下图所示:
首次打开应用流程 2这就是一个APP典型的,用户首次打开时,系统的展示流程;那么好了,这时候我们再把另外一个因素考虑进来:如果用户不是第一次打开应用呢,这个流程该如何进行?我们通过以下三个问题来释疑:
第一个问题,是不是第一次有什么区别?
如果是第一次,App需要展示引导页;如果不是,则不需要展示,同时可能需要加入广告页。
第二个问题,为什么要特别针对不是第一次设计流程?
从第一个问题,我们可以看到,如果不是第一次,App有可能需要加入广告页;而广告页和引导页是有本质不同的,引导页如果用户不更新版本使用一次后即不会再使用,而广告页即使不更新版本,仍然需要展示。那既然引导页是和版本挂钩的,所以引导页一般是直接打包在版本更新的资源文件里面,而广告页与版本无关所以需要后台手动配置,然后应用下载之后进行展示,说了这么多,其实可以用就一句话形象说明:引导页是写死的,广告页是动态的。写死和动态这两个区别想必大家都心知肚明,那么为它专门设计一个流程也就顺理成章了。
那应该如何设计?
既然广告页是后台动态配置的,那么App应该需要从服务器获取并下载下来才行,那么问题来了,这广告页要什么时候下载呢?是用户打开App的时候去下载吗?
当然不是了,机智的互联网人早想好办法,既然不是第一次使用App,那么完全可以在用户使用的过程中默默的把广告页下载到本地,当用户下一次打开App的时候,直接读取缓存数据就行了
第三个问题,如果确实需要,那么放在什么时候判断是不是第一次?
非首次打开应用流程 1把引导页去掉之后,这时候其实只有两个地方,一个是在启动页之前,一个是在启动页之后,如果在启动页之前,画风是这样的
放在启动页之前 的流程 放在启动页之后 的流程对比这两种流程,我想,大家都应该知道哪种更好了吧?是的,当然是第二种啦~
解决这三个问题之后,我们就可以着手处理不是第一次使用APP的启动流程了,也就是处理上图中的“其他流程”。从第二个问题,我们知道了,广告页是用户在使用过程中自发下载的,那么系统判断完不是第一次打开后,就需要看本地是否缓存了广告图,如果有则展示,如果没有则不展示。
非首次启动加载本地缓存广告页到了这一步,我们需要思考,现在广告图有了,那是不是就一定展示呢?需要考虑网络环境吗?我这里列出当前用户可能处在的网络环境:无/2G/3G/4G/WiFi。我们一一分析,如果是没有网络,还要给用户看广告吗?如果2G环境,需要吗?以此类推...
当你捋清楚这些关系之后,就能够得到下面这张图,当然这是根据应用本身的业务需求而定,并不适用所有产品,这里仅考虑通用的情况:
典型的应用启动流程我们从图中可以看到,如果是2G的网络,考虑到可能页面加载时间较长(电商的广告落地页一般是专题H5活动页面,数据量很大),会导致应用启动中断,所以直接跳过了广告页进入首页,只有当用户是处于:3G/4G/WiFi 网络环境下,才展示给用户广告,这样可以确保用户能够较快访问广告落地页面,产生的广告效果也会更好。
应用正式启动后,还有一些非常重要的工作:例如,校验版本、授权、加载广告页,我们把这些完善后,就是一个完整的应用启动流程了:
典型的应用启动流程总的来说
对照上图,我们再把这整个流程完整的描述出来:
对于第一次启动的情况
1. 首先打开启动页,判断是否第一次启动,然后打开引导页这时候才看当前用户所处的网络环境,如果没有网络,则进入首页,但是此时的首页仅有框架没有数据且需要一个没有网络的提示;如果有网络,则展示最新的首页。
对于不是第一次启动的情况:
1. 也是打开启动页,判断是否第一次启动,然后需要判断当前客户端有没有缓存的广告页,如果没有,则直接跳过进入首页,也需要判断网络情况,这时候与第一次打开没有网络不同的是,不是第一次打开但是没有网络,可以加载缓存数据,也就是说,首页看到的不只是框架还有数据,只不过是之前的缓存数据,但是也需要提示没有网络;
2. 如果有广告页,需要根据当前用户所处的网络状况决定是否展示,如果是没有网络/2G网络,则不展示广告图,直接进入缓存首页;
3. 如果是3G/4G/WiFi 网络环境,那么展示此广告图,默认展示3s,用户可以跳过;
4. 进入首页后,需要校验服务端是否有新版本,如果有需要提示用户进行版本更新;同时还需要不定期查看服务端是否有新的广告页,如果有,则后台自动下载到客户端本地,以供下次使用;如果是 iOS 版第一次启动,还需要进行必要的授权,例如位置、网络、推送等,关于授权的内容,将在下一篇文章中进行更新,敬请期待。
网友评论