筋斗云
天笑2001
互联网公司技术总监,分布式对象访问与控制架构的总设计师,开源移动应用开发框架“筋斗云”的主要作者。
展开
-
筋斗云移动应用框架
筋斗云框架是用于移动产品开发的一揽子解决方案。筋斗云的设计思想是做优雅的全平台应用,可以制作各类移动端(如安卓、苹果平台)应用,强调优雅的开发,优雅的发布和优雅的用户体验。原创 2016-04-05 13:03:00 · 5703 阅读 · 0 评论 -
变脸式应用 / 分页列表框架(二)
使用DOM模板创建组件[任务]上节练习中,函数onAddItem里,直接使用了拼接html的方式动态创建列表项,当组件复杂时可读性和可维护性很差。 我们将使用示例应用自带的weui样式库美化列表项,并用DOM模板的方法重写创建组件过程,让代码更清晰。一般情况下,不建议直接拼接html,而是通过模板及mvvm等技术来创建,这里给大家推荐开源的超轻量的jquery-dataview库,可在github原创 2017-02-16 16:19:10 · 1241 阅读 · 0 评论 -
变脸式应用 / 分页列表框架(三)
显示多个列表本节学习导航栏加多个列表这一常见模式。[任务]在示例应用时,订单列表页便按照订单状态,分成“待服务”和“已完成”两栏,分别对应一个列表。 我们将练习页面orders2也改造成支持分栏的样式。首先,我们熟悉下后端列表查询的接口。 筋斗云后端接口支持业务查询协议,可以使用cond参数才指定查询条件:取待服务订单:callSvr(“Ordr.query”, {cond: “status=原创 2017-02-16 16:19:58 · 337 阅读 · 0 评论 -
变脸式应用 / 分页列表框架(四)
分页列表的接口适配上面学习了易用强大的分页列表,支持分页的后端接口使用的是筋斗云的规范,返回列表像这样:{ list: [ {field1: "val1", field2: "val2"}, {field1: "val3", field2: "val4"}, ], nextkey: 2}上面用list字段返回列表。另外还支持一种等价的压缩表原创 2017-02-16 16:23:57 · 384 阅读 · 0 评论 -
变脸式应用 / 创建多个H5应用
创建多个H5应用[任务]在示例项目中,只有一个应用即index.html。 实际在一个H5项目中,常常需要多个应用,例如给用户使用的手机客户端应用、给员工使用的员工端应用等。 我们将在同一项目下再创建一个新的“员工端”应用。筋斗云要求每个H5应用有个内部名称(appName), 在示例应用中,appName定义为user,表示用户端,假如定义员工端应用的内部名称为emp,我们创建这些文件:新原创 2017-02-20 08:55:00 · 4442 阅读 · 0 评论 -
变脸式应用 / H5应用发布上线
H5应用发布上线上一章介绍了H5应用的编译优化,生成了发布目录,配置好WEB服务器后,将发布目录上传到服务器即可完成发布。为了H5应用程序升级后客户能及时更新,建议将H5应用的主html文件及逻辑页面文件夹下html/js文件的缓存策略设置为”no-cache”。 (在开发环境下,一般建议所有文件都设置为不缓存。)建议使用Apache或nginx作为筋斗云H5应用线上生产环境的WEB服务器。 项原创 2017-02-20 08:57:03 · 1459 阅读 · 0 评论 -
筋斗云接口编程 / 函数型接口
如果不是典型的对象增删改查操作,可以设计函数型接口,比如登录、修改密码、上传文件这些。函数型接口一般实现在文件 php/api_functions.php 中,它被主文件api.php包含。 假设有以下接口定义:获取登录信息(who am i?)whoami() -> {id}应用逻辑- 权限:AUTH_USER (必须用户登录后才可用)我们使用模拟数据实现接口,函数名规范为api_{接口名}原创 2017-03-02 08:35:34 · 348 阅读 · 0 评论 -
筋斗云接口编程 / 常用操作(三)
数据库操作数据库连接一开始是通过tool/init.php在线配置的,或直接手改文件 php/conf.user.php 文件的相关配置如:putenv("P_DB=localhost/jdcloud");putenv("P_DBCRED=test:test123");如果想稍稍隐蔽一下登录账号,也可以用base64编码,如:putenv("P_DBCRED=ZGVtbzpkZW1vMTIz")原创 2017-03-02 08:38:26 · 550 阅读 · 0 评论 -
变脸式应用 - 进入与退出应用
进入与退出应用进入应用后,框架会自动设置一些全局变量,如g_args, g_data等。问:如何在H5应用中获取URL参数?全局变量g_args保存了H5应用的URL参数。 问:全局数据存放到哪里有规范吗?全局数据建议都放在变量g_data中,而不是到处创建全局变量,这样查看这个变量就可以了解H5应用状态。原创 2017-02-14 14:15:19 · 620 阅读 · 0 评论 -
变脸式应用 - 常用组件
常用组件筋斗云框架有一些使用mui前缀的CSS类,包括:mui-container H5应用容器,一般在HTML的body对象上设置。mui-page 逻辑页,由框架自动设置mui-btn 按钮,如果再叠加primary类,则表示显示为缺省按钮。mui-dialog 对话框mui-menu 菜单mui-navbar 导航栏注意:筋斗云框架不是UI组件库,它只提供极为有限的一些组件,更丰原创 2017-02-14 16:32:39 · 444 阅读 · 0 评论 -
变脸式应用 - 常用组件(二)
简单对话框框架提供的app_alert用于显示简单的提示框,类似alert/confirm/prompt这些函数, 只不过app_alert是异步的(调用后立即返回,需要通过回调函数来执行之后的操作),且可以定制显示样式。在浏览器控制台里输入以下示例试试:// 信息框,3秒后自动关闭app_alert("操作成功", function () { MUI.showPage("#orderI原创 2017-02-14 16:36:33 · 324 阅读 · 0 评论 -
变脸式应用 / 制作原生APP(二)
壳版本管理请牢牢记住,由于原生壳与H5应用的分离,用户安装的用户壳可能是旧版本的,而线上的H5应用永远是最新版本。假如在原生壳中新增加了插件,应增加壳版本号。 操作上也可将壳版本等同于原生应用的版本代码(安卓叫App Version Code,苹果叫CF Bundle Version),那么要注意插件变动时,一定也要变动原生应用版本。需求:新版本壳中增加了某插件,希望安装旧版本壳的用户在用到此插件原创 2017-02-23 16:34:49 · 436 阅读 · 0 评论 -
筋斗云接口编程
随着移动互联网的快速发展,各行业对手机应用开发需求旺盛。 应用开发一般分为前端和后端,后端关注数据和业务,需要对前端各类应用(如安卓应用、苹果应用、H5应用等)提供基于HTTP协议的交互接口。筋斗云是一个Web接口开发框架,它不讲MVC,不做对象-数据表映射(OR Mapping),而是以数据表为核心来开发Web Service(也称为Web API),提出极简化开发的“数据模型即接口”思想。原创 2017-02-23 16:49:09 · 2364 阅读 · 6 评论 -
筋斗云接口编程 / 对象型接口
对象型接口为了更好的理解之后章节的示例,我们先了解一下示例中用到的数据模型。[数据模型描述方式]下面是几个数据表,每个表都应有个作为主键的id字段,是可自动增长的整数类型,即使是关联表也应定义id字段作为主键。用户:@User: id, uname, phone(s), pwd, name(s), createTm订单:(用Ordr而不是Order词是避免与SQL关键字冲突。)@Ordr: id原创 2017-03-03 10:57:12 · 319 阅读 · 0 评论 -
筋斗云接口编程 / 对象型接口(二)
定制操作类型和字段对象接口通过继承AccessControl类来实现,默认允许5个标准对象操作,可以改写属性$allowedAc来限定允许的操作:class AC_ApiLog extends AccessControl{ protected $allowedAc = ["get", "query"]; // 默认值为 ["add", "get", "set", "del", "q原创 2017-03-03 10:57:49 · 320 阅读 · 0 评论 -
筋斗云接口编程 / 创建Web接口项目
[任务]用筋斗云框架创建一个Web接口项目叫mysvc,创建数据库,提供对ApiLog对象的操作接口。先从github上下载开源的筋斗云后端框架及示例应用:https://github.com/skyshore2001/jdcloud-php建议安装git工具直接下载,便于以后更新,例如直接创建Web接口项目叫mysvc:git clone https://github.com/skyshore20原创 2017-02-24 08:38:11 · 1151 阅读 · 0 评论 -
变脸式应用 / 分页列表框架
分页列表框架本章介绍很常用的分页列表,详情可查阅官方参考文档中的”initPageList”函数介绍。显示单个列表当列表预期可能很长时,一般应支持分页。分页列表在手机上的典型展现方式是支持上拉加载和下拉刷新。[任务]创建页面orders2,仿照示例应用中订单列表页(orders)。本节先不按订单状态分栏,只显示一个列表,支持上拉加载和下拉刷新。点击订单列表中的一项,可以进入订单详情页。我们先熟原创 2017-02-16 16:16:20 · 375 阅读 · 0 评论 -
变脸式应用 - 调用后端接口
调用后端接口是筋斗云框架提供的两大核心功能之一。[任务]继续hello页面的例子,要求每次进入页面时,不是固定的显示”hello, world”,而是需要根据服务端的返回内容来显示hello的内容,比如”hello, skys”或是”hello, jdcloud”。我们先定义一个叫做”hello”的交互接口,由前端发起一个HTTP GET请求,比如:http://myserver/myproject原创 2017-02-06 13:33:23 · 1477 阅读 · 0 评论 -
变脸式应用 - 逻辑页
上一节我们创建了新的H5应用项目,本节我们制作一个仅显示"hello world"的逻辑页面。原创 2017-02-06 13:31:01 · 664 阅读 · 0 评论 -
筋斗云应用开发平台
筋斗云应用开发平台,是专为互联网应用开发打造的集设计思想、应用组件、开发流程、部署运营于一体的开发平台,是开发和运营互联网产品中各种最佳实践的归纳。它基于云计算,以平台即服务(PaaS, Platform as a Service)为设计理念提供云服务,在它之上,开发者可以轻松创建和运维所需的业务模块,彰显软件即服务(SaaS, Software as a Service)的设计理念。原创 2016-04-05 13:58:44 · 1786 阅读 · 0 评论 -
筋斗云框架前端:做优雅的全平台移动应用
做移动应用开发时,会遇到多平台开发维护代价高、版本更新快、产品发布决定于各应用市场而不可控等痛点。筋斗云倡导做优雅的全平台移动应用,使用混合应用技术,强调以优雅的开发、发布与用户体验解决目前的痛点。原创 2016-04-05 17:19:23 · 1733 阅读 · 0 评论 -
筋斗云框架前端:“变脸式应用”的页面路由设计
要制作优雅、流畅、省流量、适合协同开发的多页面移动Web应用,是一个不小的挑战。筋斗云前端倡导创建“变脸式应用”来解决这些难题,它以“缺页中断”思想为指导做页面路由算法,采用页面对象模型(POM)实现每个逻辑页面相对独立的开发模式,支持“主网页+子网页”的部署模式,解决了jQuery Mobile等移动框架没有完美解决方案的独立页面开发模式和“入口页面限制”等问题。原创 2016-04-06 11:55:52 · 1723 阅读 · 0 评论 -
RESTful和REST-RPC接口风格的差异与实现
REST风格的接口设计是以资源为核心,这种设计风格非常简约,也利于理解,比如获取一个id为259的商户,其HTTP请求应该像这样:GET /Store/259REST-RPC风格则是以操作为核心,一般只使用HTTP谓词GET或POST,比如同样的操作,其HTTP请求像这样:GET /Store.get?id=259原创 2016-04-12 08:49:18 · 7429 阅读 · 0 评论 -
筋斗云框架:REST-RPC风格服务接口实例分析
无论设计原生手机App,或是前面文章曾提及过的“变脸式应用”(一种无网页刷新的多页面Web应用),都需要后端应用服务器提供业务支持。于是,如何设计后端服务接口是开发前必须考虑清楚的一件事。谈及接口设计,我们需要从两个维度来考虑:协议(Protocol)及原型(Prototype),简称2P维度。 原型定义了一个调用的抽象形式。假定要做上门送餐业务,每个“商户”是个对象,取名为”Store”,那么一原创 2016-04-08 09:05:21 · 5300 阅读 · 0 评论 -
筋斗云教程(一): 运行筋斗云应用
本系列教程基于筋斗云开发框架,以一个假想的移动互联网+传统餐饮商户概念的项目“筋斗城”为开发目标,教你从头开始创建一个互联网项目。运行筋斗云应用搭建筋斗云运行环境筋斗云开发框架主要使用了 html+javascript (前端) 以及 php+mysql (后端) 这些工具。 其运行环境建议为 Linux (如CentOS) + Apache + mysql + php的组合。在Windows平台原创 2016-06-01 17:50:43 · 4734 阅读 · 0 评论 -
筋斗云框架:Cordova高级玩法之容器内容分离技术
筋斗云框架可以用来做安卓或IOS的原生应用,以便用户能更快捷的打开应用以及使用手机提供的诸如摄像头、麦克风等各种原生设备功能,提供更友好的用户体验。 使用筋斗云框架制作的应用与原生应用有所区别,一般称为混合应用,它通过Cordova工具包生成Web应用容器,加载前端Web应用作为“内容”,Web应用通过调用容器接口(一般也称插件)来操作原生窗口。通常的混合应用要将网页内容内嵌入容器打包发布,Web原创 2016-05-20 19:40:13 · 944 阅读 · 0 评论 -
筋斗云开发技术栈
全平台应用开发技术。使用以Cordova开发框架为代表的移动Web应用为核心+原生插件技术(又称混合应用技术),避免同时开发维护Web,安卓和苹果三套应用。应用容器与应用内容分离技术。混合应用要将网页内嵌入容器打包发布,而筋斗云应用倡导容器与内容分离技术,可以极大的减少原生版本发布次数,避免上传应用市场及审核带来的不便。从单网页应用(SPA)到变脸式应用。整个移动Web应用使用同一个网页地址,通原创 2016-05-20 20:23:36 · 706 阅读 · 0 评论 -
筋斗云教程(二): 系统分析与设计
设计先于编码,筋斗云框架使用DESIGN.wiki文件作为主设计文档,从以下几个角度来完成应用系统的设计:描述需求,确定系统数据模型,数据库设计,前端应用接口设计和交互接口设计。原创 2016-09-19 16:40:21 · 3249 阅读 · 0 评论 -
H5移动应用的发布优化(一)缓存优化
H5移动应用主要的优化思路是:减少交互次数,即减少对服务器的访问,主要手段有缓存优化、文件合并等。减少交互数据,主要手段有文件最小化(minify)、WEB服务器配置gzip压缩等。原创 2016-12-13 16:26:07 · 717 阅读 · 0 评论 -
H5移动应用的发布优化(四)图片优化
小图片合并。减小对服务器的访问次数,加快图片显示,尤其是各种小图标。本文主要介绍小图片合并的方法,也就是常说的精灵图(sprite)的制作。原创 2016-12-13 16:34:16 · 1741 阅读 · 0 评论 -
H5移动应用的发布优化(二)JS/CSS优化
JS/CSS优化。在实际开发中,会引入很多的库,通过对JS/CSS文件进行最小化及合并,实现减少交互次数的目标原创 2016-12-13 16:28:50 · 822 阅读 · 0 评论 -
H5移动应用的发布优化(三)逻辑页优化
逻辑页是H5移动应用中的重要概念。用户看到的每个页面并不是一个个独立的H5应用,而是一个H5应用中的一个逻辑页而已,这样实现出来的应用才能运行更平滑且省流量。原创 2016-12-13 16:32:33 · 590 阅读 · 0 评论 -
jdcloud-m(筋斗云) 变脸式单网页应用框架
变脸式应用就是支持逻辑页面的单网页应用。像川剧中的变脸艺术一样,展现多个角色(页面)并不需要多个演员(网页)来扮演,直接切换面具(逻辑页面)就可以了。jdcloud-m是一个变脸式单网页应用的开发框架,也称为筋斗云前端框架,它是筋斗云框架(jdcloud)的前端部分,可以独立创建H5应用程序.原创 2017-01-04 19:07:31 · 2207 阅读 · 0 评论 -
变脸式应用
[序]本书将以实战练习和示例分析为主,给读者展现用H5技术制作手机应用的开发体验。筋斗云前端框架(jdcloud-m)是一个变脸式单网页应用的开源开发框架,它以页面路由和接口调用为核心,提供多逻辑页支持和远程接口调用封装,同时对制作安卓、苹果原生应用也提供良好的支持,因而也是一个全平台H5应用框架。本书就以该开发框架为基础,讲解手机应用开发中常见需求的解决方案。原创 2017-02-06 13:23:26 · 1938 阅读 · 3 评论 -
使用jdcloud-wui筋斗云前端框架如何快速定位到源码
jdcloud-wui是筋斗云前端框架,使用模型驱动开发的思想,主要用于桌面管理端的快速开发。它主要由逻辑页和对话框作为模块化的开发单元构成,下面就是一个典型的逻辑页和一个对话框(右边部分是在chome中打开了F12调试窗口):当前显示的是个会员卡管理页面,并且显示了一个对话框。 要找到这个页面或对话框的源代码或源文件,有一个小技巧,可以在控制台中输入:WUI.getActivePage()就会原创 2017-05-26 10:18:51 · 1557 阅读 · 0 评论