HTML5开发硬件控制APP
CanTK是一套基于HTML5 Canvas的GUI系统,它提供了完整的控件库、事件分发系统、窗口管理系统,并适配不同的平台。CanTK旨在解决HTML5 App开发中的两个基本难题。
开发真正Native体验的APP
HTML的本质是用于文档呈现,其优势在于内容展示,而非用户交互。因此,无论开发者如何努力,都很难开发出与原生应用相媲美的HTML5应用。以目前最优秀的HTML5 Mobile Framework(如Sencha touch和KendoUI)开发的App为例,与网页相比,它们确实具有APP的外观;但与真正的原生APP相比,它们又更像网页,这正是当前HTML5 APP面临的尴尬处境。
HTML难以胜任APP开发的主要原因如下:
- 性能问题:HTML的文档特性决定了文档内容的微小改变都会引发界面重排。而现代APP要求在用户操作过程中及时给出反馈,这些反馈会导致界面不断重排,消耗大量的CPU时间,因此HTML APP给人留下了性能不佳的印象。
- 窗口管理机制缺失:HTML本身没有窗口管理机制,通常通过加载不同的页面来模拟不同的窗口。由于页面加载需要时间,HTML5 APP在界面切换时通常要启用等待动画,这极大地影响了用户体验。
- 控件局限性:HTML仅提供了最基本的控件,虽然可以通过CSS模拟一些控件,但与原生GUI库相比,其效果相差甚远,使得模拟原生效果变得非常困难。
- 开发难度:很多外行认为HTML简单,但用它开发APP却并非易事,否则像Sencha touch这样的库也不会售价高昂。
上述部分问题可以通过工具或库来解决,但有些问题则无法解决。HTML5的出现为HTML APP带来了转机,因为HTML5 Canvas元素为开发者提供了巨大的灵活性。然而,大部分厂商都将精力放在CSS上,导致几年后HTML5 APP的发展仍然不温不火。
CanTK则完全放弃了CSS和HTML控件,在HTML5 Canvas元素上实现了一套完整的GUI系统。虽然CanTK不是第一个在Canvas上开发控件的,但它是目前唯一一套完整的GUI系统。
为HTML5游戏引擎提供UI支持
对于游戏玩家来说,游戏场景只是游戏的一部分,稍微复杂的游戏还会有其他界面,如设置、装备和商店等。仔细观察这些界面可以发现,除了皮肤不同外,它们与普通APP的界面并无太大差异。
HTML5游戏引擎基于HTML5 Canvas实现,其优势在于挖掘硬件图形渲染潜力(追求速度),但在GUI控件方面表现较弱。HTML控件的表现力不佳,且很难与HTML5 Canvas无缝集成,这使得HTML5游戏开发者不得不花费大量时间来开发游戏界面。
CanTK解放了HTML5游戏开发者在UI方面的工作,使他们能够专注于游戏本身的开发。CanTK已经适配了目前流行的HTML5游戏引擎,包括cocos2d - html5、egret、pixi.js、panda.js和phaser.js,未来还会增加对其他游戏引擎的支持。
CanTK的特色
- 开源免费:完全开放源码,公司和个人均可在LGPL 2.0协议下免费使用。
- 完整的GUI系统:满足APP开发的各种需求。
- Native - Like体验:能够开发出真正具有原生应用体验的应用程序。
- 性能与体验优越:相比传统HTML5 APP,具有更好的性能和用户体验。
- 无缝集成:可无缝集成到HTML5各种游戏引擎中。
- 超强扩展性:可以实现任何所需的控件。
- 可视化开发工具:提供可视化开发工具,支持在线开发HTML5 APP和游戏。
- 屏幕适配:根据Layout参数自动适配不同分辨率和密度的屏幕。
- 高效界面加载:用JSON取代HTML和CSS,将全部界面数据存储在一个压缩的JSON文件中,一次加载全部界面(数据量小,30个窗口小于40K),实现界面瞬间切换。
- 多平台支持:支持各种移动平台,已测试的平台包括iOS、Android、Windows Phone、Firefox、Blackberry和Tizen。