H5为主的Hybrid App技术方案的设想及设计-Android
2016-02-27 15:06
435 查看
设想:
主要思路APP以H5实现为主,而不是仅限于活动页面
不使用比较流行的SPA(single page application)方式
每个界面对应一个H5页面,等效Activity/ViewController+布局的职能
每个界面(包括原生的)都有一个唯一的URL,通过url跳转
模板在App渲染,前后端分离将在APP而不是服务端,APP更具动态性
预置资源,使加载过程更快
APP将会分为以下三个层次:
容器:以原生方式提供H5尚不支持或者支持得不好的功能(比如视频和音频播放),管理页面切换,与服务器的数据交互,页面渲染,预置资源,缓存策略等。容器应该模块化,构建时可插拔
H5框架:轻量的H5框架,再加一些支持APP通用功能(比如动画效果,手势交互,通用的ui组件等)
H5业务层:所有的业务逻辑分在不同的页面实现
其中前两个层次可以形成框架,造福人类。在同一领域下,第三层次也可以抽象出有共享的组件或库
优点:
相对于原生应用,APP更加动态化,可以减少APP升级,只有容器改动,才需要用户升级。页面变化,无需升级
跨平台,iOS和Android公用一套页面(未来可能还有PC,Widows Phone一类)
减少技术需求,前端可以很快上手
相对于SPA
各个页面之间相互更独立,避免所有js代码在一个上下文里执行,可以不要过重的UI框架,单个页面的问题不会干扰其他页面,也不需要过分复杂的dom结构
和原生APP的玩法不冲突,可以互为补充。比如APP可以部分页面是原生,部分是H5(当然尽量多用H5实现)。
问题
调试比纯原生应用困难一些。但如果单纯在模拟器上调试H5,用Safari和Chrome远程调试都比Native应用调试灵活。体验比原生APP还有差距,主要表现在操作响应时间,动画效果等方面。但大多数情况下和原生APP相比,已经感受不到差距了。
安全性方面还需要研究方案
过多页面并存的时候,内存消耗大
WebAPP和原生APP同为移动端,很少有研究这两项的交互区别,最近公司做了一次从原生APP到WebAPP(HTML5 )的移植,故总结一下期间遇到的问题及不同点总结。
(作者注:本文WAP经指正意为 webAPP ,many thx~)
从使用场景上,WAP用户面临比APP用户更严峻的问题:
1、页面跳转更加费力,不稳定感更强
思考点:如何减少跳转(扁平结构、页面布局技巧),增加数据及展示的流畅流程及稳定性(技术)
2、更小的页面空间(由于浏览器的导航本身占用一部分屏幕空间),更大的信息记忆负担
移动设备的屏幕要小得多。这种如同透过门缝进行的阅读增加了认知的负担。人脑的短期记忆是不稳定的,用户在滚动屏幕的过程中需要临时记忆的信息越多,他们的表现就会越差。
——《贴心设计:打造高可用性的移动产品》
思考点:排版更清晰、信息更简练 (可在APP基础上去掉一些丰富、复杂的视觉表现)
3、导航不明显,原有底部导航消失,有效的导航遇到挑战
思考点:如何有效的提供导航?有哪些形式?
4、交互动态效果收到限制,影响一些页面场景、逻辑的理解。
思考点:比如登录注册流程的弹出、完成及异常退出,做好文字提示。
针对以上困境,解决方法总结如下。
首先,从APP到WAP版,在产品上,最明显且核心的:
1、精简功能,只将核心的任务实现,非核心的枝节可考虑删减。
2、做好新的WAP导航.
3、补充从WAP站对 下载APP 的引导。
>> WAP导航怎样设计?
一、常见的几种WAP导航样式
1.1顶部底部导航的设计:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/17/e2187ca818651de4f474ccbe685bc0b6.png)
常见WAP导航设计
1.2导航快捷键设计:
美团:顶部栏固定位置
淘宝:悬浮圆圈–可展开的按钮
优酷:非首屏时页面右侧悬浮
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/17/3fada5b505b14da4547f0816ee13a9f2.png)
导航快捷方式
二、有效的导航设计
1、基本的快捷导航中包括 返回常用页面(如 首页 我的 等)的快捷方式
2、出现深层架构时 及时补充返回重要层级页面的快捷方式
3、情境式导航,方便用户快捷跳转到ta想去的页面,如购买结束时提供查看订单详情的按钮。
ps:WAP页更加需要画页面跳转的流程图,摸清各个页面的入口,尤其是页面返回的流程;有些简化的返回按钮,可以特殊注明返回到的页面
>>怎样引导用户下载APP?
一、在哪里出现引导?
一般 首页、核心任务的页面(如 电商WAP的商品详情页 、视频WAP的视频观看页)
二、引导下载APP有哪些形式?
1、页面顶部放置下载条 2、页面底部悬浮层引导 3、融合在页面首屏中
4、下载按钮形式 5、底部foot里含: 客户端下载入口
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/17/f3bfa2d6aec000c5a270aa35c13b3546.png)
下载APP引导
其次,在设计WAP版上,有以下小技巧可以参考:
1、从页面布局上减少跳转:使用交互技巧隐藏文字(eg 腾讯视频)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/17/8df59a380e73c1f6dc21cf69501a0a4b.png)
利用展开收起按钮 减少页面跳转
2、取消float浮层,增大展示空间(eg:大众点评)
取消float浮层,同时在详情尾部再次加上 “购买”按钮
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/17/e02faca7b075114d107d3b4cbbfa9159.png)
浮层的转换处理
3、页面中对图片进行缩小(因情况而异)的处理、精简一些标签导航的视觉展现
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/17/b5cf7362a58c42544d9fa32c4f972251.png)
视觉微调
技术上注意点:
1)各手机浏览器的兼容测试
2)底层服务的调取(能调取,但只有当其是核心功能时才保留 eg:新浪、美团等皆去掉了头像上传功能)
3)注意离线数据存储,减少数据请求频率。
4)考虑保存用户的哪些数据:设置、个人数据、阅读锚点、跳出页面等。
5)避免动效与浏览器的交互冲突
6)按顺序 异步加载 eg: 腾讯视频
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/17/0b99f0960cb2d5793062d4261083afb4.png)
腾讯视频 异步加载。
相关文章推荐
- Android Studio 9 patch 编译错误
- android、IOS和手机基础知识
- Android_为什么要继承onMeasure()
- android 性能优化-电量篇
- BUG记录之Android开发
- android的 root权限
- ubuntu下安装AndroidStudio
- Android即时通讯--仿QQ即时聊天:(四)好友列表的处理
- Android-读取本地文本,把Base64 datastring转换为图片
- android事件传递
- Android开发之PullToRefresh的Click点击事件的监听实现长按删除Item
- JNI开发的常见错误&&Android.mk文件说明&& jni开发的简便流程
- Android ContentProvider和Uri详解
- 安卓项目集成facebook-android-sdk 4.0版本
- Android Studio 各种快捷键
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- Android-----declare-styleable
- declare-styleable中format详解
- Android之ListView
- Android Studio快捷键【Android学习入门】