这次发布新版的 ST2(下载:http://cdn.sencha.io/touch/sencha-touch-2-rc.zip),将为我们带来什么呢?以下就我阅读了 Sencha 官方博客文章后,做的一些笔记。
新提供例子的话不足为奇,若那些是完整的实例完全来呈现给用户的话,则最好不过。这次发布的 ST 真的做到这点,都是一些实际上应用到的例子。这不,咱们要快速开发的朋友则有福了,马上有现成的例子可供参考……些许改动即可。
话说无论 ExtJS 还是 Sencha Touch,都是定位于客户端框架。于是怎么和服务端相结合渐渐成为一个“议事日程”了。对此,Sencha 官方的态度是,除了框架本身提供的 Ext.data.* 接口之外,还根据 DWR(Java上著名的 AJAX 数据交互框架)的思路,推出了新一套的 Ext.Direct 远程调用接口。既然这个 idea 来自于 DWR,那么熟悉 DWR 方面的朋友就应该知道,这类框架的神奇地方在于,客户端调用的业务数据的时候,仿佛便是在服务端调用那样子地调用,服务端有什么业务方法暴露出来纷纷与客户端对接。至于好处,可以说既有 OO 的亲切,又有强调业务流程一致性的好处……下面是客户端调用的方法,
myRemoteClass.myRemoteMethod();如今,我们在 ST 上面,也可以用到 Ext.Direc t啦……
比如可支持 list 控件的 padding 和圆角,还有水平滚动等……
Ext.create('Ext.List', { ui: 'round' // It's that simple }); Ext.create('Ext.List', { inline: { wrap: false } // Smooth horizontal scrolling });
众所周知,Phonegap 的一大价值就是,把 Native 原生功能包装成为一套 JS API,达到跨平台的目的。现如今,不特 Phonegap 独美,ST 也爱整合 Navtive 的 API,当然与浏览器开放越来越多的 API 有关。通过与 Webkit 特定事件的绑定,可直接控件手机的某些功能。现阶段的 API 有如下几样:
将原生打包,当然不是想当然的事情。没有相应的工具辅助,什么概念都只是空谈!说来说去,要谈的主角不是神马 IDE,而是一个打包工具:Sencha SDK Tools(下载http://cdn.sencha.io/sdk-tools/SenchaSDKTools-2.0.0-Beta.exe)。这款工具在去年的时间已经发布了,不过只是 for Mac 平台的,for Win32的就在这次RC发布中一并发布。该工具是免费的工具,开源的话就不开源。事不宜迟,我们看看 SDK 工具箱怎么用(以 iOS 应用为例子),
// 命令行执行 sencha package ios.json其中 json 内容如下:
// Source of your ios.conf { "versionString":"1.0", "iconName":"icon.png", "applicationName":"MyGreatApp", "applicationId":"com.yourcompany.MyGreatApp", // web app源目录 "inputPath":"C:/projects/MyGreatApp/www/", // 原生应用目标 "outputPath":"C:/projects/MyGreatApp/ios/", // Destination App Store!!!! "configuration":"Release", "platform":"ios", "deviceType":"iPhone", // 开发者认证 "certificatePath": "c:/certs/Developer.p12", "certificateAlias":"iPhone Developer", "orientations": ["portrait", "landscapeLeft", "landscapeRight", "portraitUpsideDown" ] }
如果一切成功,其反馈如下示:
The application was successfully packaged
The application was successfully signed
更多内容参见官方的文档:http://docs.sencha.com/touch/2-0/#!/guide/native_packaging
这次发布ST个人认为是里程碑式的。不但原生打包功能是重头戏,而且促成打包的 SDK Tools 在 win32 发布了更是令人大喜的消息,让我们投入到 Sencha 移动开发的怀抱中吧!