javascript2019开发最快的Webapp框架BUI交互框架BUIWebApp开发框架

通过这个看似简单的例子,使用BUI快速开发出来的应用是可以上得了台面的.在没有设计稿的情况下,我们可以仿照任何一款APP开发,并且按照APP的相同比例完美还原.另外一个是在各种复杂的手势操作交互里面,BUI游刃有余.

请使用手机扫码操作看看.

建议扫码在手机预览,PC预览不支持手势操作.

如果你也跟我一样在寻找一款快速开发的Webapp框架,相信我,你来对地方了.欢迎加入BUI移动开发交流群:691560280满BUI移动开发交流群2:4170980新

我自己从2011年开始接触移动混合app开发至今,开发的应用也有几十个了,这些经验可能对别人也会有所帮助.于是我把它整理出来,围绕着快速开发,BUI做了很多事情,看完你就会明白,BUI的快是有意义的.

我找过很多框架,对框架有一些要求:

...

这样的要求不过分吧但发现每个UI框架都有自己的定位,跟我要的还不太一样,于是我们只能自己造轮子.既然自己造轮子,那就要先做最适合自己的,然后才是适合别人.这里有必要交待一下背景.

早在2011年,品高公司就开始接触移动互联网,并有了第一个基于Cordova的混合app开发框架及打包平台--Bingotouch(那个时候除了Appcan,没有像Dcloud,APICloud等比较成熟的平台),为了配合Bingotouch开发框架,我们需要有一个UI,于是我们有了一个简单的UI,那时只有一些简单的基础控件,简单的适配(可以在打包自适应,但无法在浏览器预览),页面切换传参使用原生的切换,其它复杂点的就用第三方的插件,下拉刷新就用iscroll,投入到项目开发中就没去管UI了,一晃就4年过去了,简直就是奇迹.

但随着混合应用的技术推广及系统的升级,手机屏幕越来越大,我们的UI存在的一些不足,我们意识到,我们的UI必须升级了.经过4年的移动开发项目经验沉淀,于是2015年底我们就开始着手UI的改造.

这里顺便交待一下我们的旧UI存在的问题吧.

旧UI采用viewport固定宽度的方式适应,把设计稿更改成320大小,然后我们按这个大小量取间隙,还原设计稿,这样会导致在浏览器整个页面变大,之前不考虑浏览器,所以问题还不大,但随着viewport在不同手机设备的表现,这种方式瓶颈越来越大,ifelse越来越多.

早期的时候,基于zepto的控件还要适应移动端,是少之又少,所以我们经常需要上网找或者自己写控件,这样就造成每个控件的使用方式不一,兼容不一,较难上手.

正是因为有了这些问题,才让我们的新BUI适应性越来越强.

场景1:客户指定要使用第三方平台打包;

我们的Bingotouch就派不上用场,即使我们很优秀,但是客户不放心,用第三方平台后面可以不依赖于某一家公司,可以很容易找到其他开发者,客户的担心也不无道理.

第三方平台的出现方便了开发者,但也带来了新的难题,一个第三方平台,会有自己的开发生态,工具,API,UI,开发者要学习的东西太多.

这样,客户不管指定哪个平台,都可以使用我们的UI来做开发交互,开发人员都不用再学习新的UI,能减少一点是一点啊.

围绕这个想法去设计,再分析了互联网上的一些UI的特点,我们的框架应该是这样子的:介于webapp跟混合app开发之间,大部分应用有80%以上的功能都是由UI实现的,这样通过学习一次BUI,你就可以游刃于不同平台之间.

在软件公司里面,开发者占多数以及人员的流动等因素,如果开发者愿意去学习使用,可以解决招不到合适的前端问题.所以学习要快,简单.

我们在技术上没有依赖于vue,react等先进理念,我们就是要简单,Dom是最基础也是最容易理解的,所以我们基于zepto或者jquery.

开发者习惯用什么工具,就用什么工具.习惯用什么webpack,gulp,sass,less完全由自己做主.但是如果使用我们推荐的sublimetext工具,我们有针对这个工具的一个插件,可以快速书写,事半功倍.

如图,其它UI的适配的高度是固定的,随着屏幕增高,底部的空白会越来越多,而BUI是整体等比缩放,像一张大图缩放到合适的屏幕一样.真正是一次开发,多平台适配.

前面我们也说过,旧UI我们需要经常找插件,找来的插件也不一定能用,调用系统原生的交互,在安卓跟ios会有不同的表现,为了避免这种情况,我们把互联网上常见的插件都统一开发出来,一致的交互,一致的使用方式,一致的API.

bui.slide是一个焦点图组件,它除了自身支持,横向,纵向,全屏,自动播放等功能以外,我们稍微改变了参数,它就变成了tab组件.

**(这里不能直接上传gif交互图,我把重要的交互展示一下,想看更多交互请直接点击预览交互效果)**

js:varuiSlide=bui.slide({id:"#uiSlide",height:200})html:

  • 图片标题
  • 1
TAB选项卡TAB初始化

js:varuiSlideTab=bui.slide({id:"#uiSlideTab",menu:".bui-nav",children:".bui-tab-mainul",scroll:true})html:Tab1

仔细观察下这两个的结构及交互,变的只是父层的样式,其它结构及操作都是一样的.我们把TAB的结构再拆分一下,就变成了TAB在顶部以及在底部的效果.

TAB在顶部

TAB在底部

TAB在侧边

这样是方便了,但是要记住的参数很多,怎么破这就要谈到我们的BUIFast插件了,一个快速书写的Sublimetext插件,这个后面篇幅再介绍.我们把比较重要的组件给大家介绍一下.

bui.list是基于bui.scroll扩展的一个加载分页及刷新的一个控件,默认把分页都处理好了,你只需要配置一个数据请求的地址,能返回一个数组就行了,如果返回的字段不一样,也是提供了字段映射的配置,开发一个加载及下拉刷新功能的列表,只要5分钟.如果这个满足不了你的需求,你可以再看bui.scroll及bui.pullrefresh这两个控件.

bui.dialog弹出层插件同样是一个扩展性特别强的插件,支持从不同方向进入,支持关闭打开,支持全屏等,支持动态创建以及静态渲染,这两者的区别例如,

选择控件,支持单选,多选,支持弹窗或者不弹窗,支持静态或者动态渲染.

bui.swipe也是很强大的一个控件,解决同一个页面的各种手势操作冲突.像bui.sidebar,bui.listview都是基于bui.swipe扩展的插件.

支持左边跟右边,支持同时,但还是建议同一个页面不要出现太多这类交互.

侧滑列表控件,支持菜单在左边或者右边

消息提醒自动消失,支持上中下等方向,并且支持自动关闭或者手动关闭,可以指定在某个容器内.

折叠菜单,显示隐藏,支持全部显示,或者一次只能显示一个.

下拉菜单,常用于搜索旁边的选择,选项不宜过多.

重头戏来了,前面这些都只是铺垫,只有简单的文档,丰富的组件,这些每个框架都有,不能算快.我们围绕着开发人员快速开发,做了很多事情,让你如虎添翼.

BUIFast是Sublimetext的一个插件,前面我们也说了,我们并不要求用户使用某个工具,但如果用户使用我们推荐的工具,那就是如虎添翼.Sublimetext是一个优秀的编辑器.安装好BUIFast插件以后,你可以使用BUI的快速书写.

规则如下:ui-生成结构,bui-生成脚本

ui-html生成BUI的标准引用ui-page生成BUI标准结构页面

ui-控件名生成控件的结构;bui-控件名生成控件的初始化;两个前呼后应.

后面我们新增了bu-控件名-demo直接生成示例代码.所以前面说的,你根本不需要去记住结构,你只需要记住有什么控件名.比方bui-slide-tab

全局安装buijs以后,每次创建如果有新版本都会从github获取,可以在任意地方创建,并且可以指定模板及打包平台.

安装

sudonpminstall-gbuijs简单创建工程包(默认webapp平台)

buijscreatedemo-tmain-tab指定dcloud平台指定平台以后,创建的工程可以直接覆盖到平台新创建的应用目录,默认bui绑定了物理后退按键的处理.

buijscreatedemo-pdcloud

bui的官方组件只是一些基本的组件,后续还会扩展.

从BUI出来诞生到现在,在品高内部已经两年了,服务了近百个项目,其中也暴露出来了一些问题.

1.第三方打包平台如雨后春笋般增长,我们的兼容何时才休

2.由于我们基于DOM开发,入门门槛低,带来的问题是开发过程中的代码质量无法保证;3.每个人喜欢用的模块化不一样,有人喜欢用requirejs,有人喜欢用seajs,同样的模块不能在项目之间共享;

在用第三方平台的原生跳转里面,也有一定的局限性,比方,后退刷新,后退多层到指定页面等,这些每个平台的处理都不一样,而且有的都不允许这么处理.我们需要更灵活的路由,支持效果自定义,支持后退刷新,支持后退到指定页面,支持物理后退等,这一切创建对应工程包的时候,你就已经拥有.

我们使用我们自己的模块化,跟路由一起配合使用,开发的模块在项目之间的共享成为了可能,我们还按照requirejs,seajs的接口设置,可以兼容之前的模块.

当你打开index.html的时候,就会自动加载main模块,模块的命名,除了main,其它匿名模块默认都是.html前面的路径名,比方:main模块有个按钮,按钮有个链接(注意不能使用a标签)

main模块,路径:pages/main/main.html

sidebar.js路径:pages/sidebar/sidebar.js

loader.define(function(require,exports,module){module.exports={};})这样,如果其它页面要调用sidebar的模块

loader.require("pages/sidebar/sidebar",function(sidebar){//})这是路由最简单的用法,当然他还有很多其它定义,具体需要自己查看API了.

与其说bui是一个交互框架,我觉得我们更像是一个移动快速开发解决方案,围绕开发过程中的效率,一点一点的进步优化,我们也针对了常用的平台的快速创建工程包,创建完覆盖到对应的平台应用包里面就能使用了,是不是开发最快的webapp框架我希望是,但我更希望整理的这些内容对别人有所帮助.

BUI的目的不是要成为一个很优秀的框架,而是可以帮助大家解决80%问题的框架.

THE END
1.程序员的KPI考核能有多奇葩?代码bug率作为绩效Java入门基础视频教程(含Java项目和Java真题) 第二阶段: Java Web 学前导读:本阶段深入讲解JavaWeb核心技术,学完本阶段课程可以制作中小型网站和企业管理系统等。 1.JavaWeb 最全的JavaWeb阶段核心知识,包括MySQL数据库、JDBC、JavaWeb核心、前端技术、Tomcat、Linux、Ngnix。在系统学习核心技术点后,还能制作出旅游项目https://blog.csdn.net/weixin_51689029/article/details/128472822
2.滚动播报众志成城防控疫情2月16日,温州建峰矿山工程有限公司成为我县第一个通过复工复产审核备案的企业,将于2月18日正式复工。(详情点击) 安心!龙港新冠肺炎确诊者黄某 在苍南县内密切接触者已管控到位 根据2月17日温州市新冠肺炎疫情通报,2月16日龙港市新增新冠肺炎确诊病例1例。经查,患者黄某近期曾在苍南县境内有过活动,为保障县域内https://www.cnxw.com.cn/system/2020/01/27/013682889.shtml
3.推荐2018年创业者必备的105种工具UpCounsel 能为你按需提供相关领域的律师。你只需要将你的疑惑贴在平台上,该领域的专业律师就会提交业务报价及其资历情况。你可以自己选择想要合作的律师,打电话聊聊你的问题,然后通过该平台支付协商好的价格。这是至今为止最方便的一种立刻获得法律建议的方式。https://www.51cto.com/article/567660.html
4.午夜视频腾讯网从2003年创立至今,已经成为集新闻信息,区域垂直生活服务、社会化媒体资讯和产品为一体的互联网媒体平台。腾讯网下设新闻、科技、财经、娱乐、体育、汽车、时尚等多个频道,充分满足用户对不同类型资讯的需求。同时专注不同领域内容,打造精品栏目,并顺应技术发展趋https://qq.com/
5.信息化建设工作总结(通用22篇)二是继续完善集团公司信息化制度体系建设,使集团公司信息化管理进一步规范化、标准化。三是继续加大力度推广视频会议系统,争取使所有子分公司和较大的项目部全部安装视频会议系统。四是开展集团公司门户网站、综合管理信息平台等系统的信息安全等级保护工作。 信息化建设工作总结2https://www.ruiwen.com/word/xinxihuajianshegongzuozongjie.html
6.AppStore上的“甜意【平台认证保障】平台认证审核,保证真人在线聊天 【社交破冰0距离】用户公开社交账号直接获取,弱社交秒变强社交 新内容 2024年10月15日 版本1.1.7 修复了一些已知问题 App 隐私 开发者“冬松 吴”已表明该 App 的隐私规范可能包括了下述的数据处理方式。有关更多信息,请参阅开发者隐私政策。 https://itunes.apple.com/cn/app/id1573344845
7.?《小楼听雨》诗词平台2024甲辰海内外诗友大拜年视频送祝福三字令·龙胡晓军(上海)狮的首,蟒之身,寿龟纹。鹰爪利,鲤鱼鳞。古人云,天与海,任君临。文的脉,族之魂,铸基因。春已至,梦成真。赏初花,擎好酒,正良辰。——甲辰龙年,恭祝大家新春快乐,吉祥如意!四 言诗国颂施议对(澳门)中华诗国,礼仪之邦。永歌言志,日富月昌。八音克谐,四海乃同。正变升降http://www.360doc.com/content/24/0209/00/41872009_1113664031.shtml
8.著名秦腔花脸演员“西北花脸王”张兰秦艺术生涯(统筹资料)秦腔里最好的花脸唱的最好一段且发挥最好的一次,应该就是张兰秦在西北五省秦腔名家晚会上的返场。高音金石铁韵,低音黄河滚滚,时断时连,时紧时松。甚至能听到那个正直慈悲又桀骜不驯的杨五郎,时而出世时而入世的内心。 牧笛悠扬 哈哈!上班路上插着耳机听着张老师的五台会兄,感觉大气磅礴,顿觉走路也有劲儿了,边https://www.meipian.cn/2l52pzbo
9.自媒体运营:学会原创优质视频的8大要素,轻松提升内容质量分很多作者对于如何制作优质的原创视频很是困扰,想做好又不知道如何做,怎么做也过不去原创审核,申请之后又被平台打回来。 这样的问题就是视频质量不够优质造成的,所以今天强哥就来分析一下高质量视频应具备的八大要素,帮你轻松提升视频的内容质量分,看看你是否中招了。 https://cloud.tencent.com/developer/news/508612
10.互联网行业进入“监管趋严”时代,在监管新常态下寻找新增长视频行业面临的监管压力不是暂时的,而是持续的。快手、火山、抖音等短视频应用,今年以来都被广电总局约谈过不止一次;长视频平台的内容审核越来越严,与电视内容的审核尺度几乎已无差别。监管风险爆发的形式包括:通报批评;罚款;暂停部分功能;下架部分内容;强化内容审核;暂时下架整个应用,等等。 https://www.zhitongcaijing.com/content/detail/150535.html
11.世界上最舒服的视频,看完后浑身放松神清气爽凤凰网视频世界上最舒服的视频,看完后浑身放松神清气爽 2019-03-28 15:45:1305:040来自河南省 世界上最舒服的视频,看完后浑身放松神清气爽 科技奇材 专业搞机,拒绝从良!http://sports.ifeng.com/c/7lPeXm9kMWD
12.网页实时视频直播的低延时需求如何实现?TSINGSEE青犀视频产品EasyNVR/最近碰到一个用户的需求,也是一个智慧类项目,具体需求是要将现场视频上云,原本该项目采用的是RTSP流转推到华为云,输出HLS流,做全网、全平台的直播,但HLS的延时相对较高,在某些特殊的场景中,又对延时是较为敏感的,那么,有什么办法既可以解决全平台直播、又能够较低延时? https://www.cnblogs.com/TSINGSEE/p/13841131.html
13.丛松丛松2007年大学毕业后供职于新浪至今,期间先后主导视频、微博拓展、移动产品运营业务,职能涉及运营、产品、市场、商业等,针对移动端运营有丰富的实战经验,亲历新浪移动的高速成长。负责新浪网整体内容运营,以及新浪新闻客户端、手机新浪网组成的移动资讯平台业务。负责新浪移动端内容、产品运营、对外合作、商业化及覆盖https://baike.baidu.com/item/%E4%B8%9B%E6%9D%BE/2794885