博客地址css
每一个程序员都但愿用本身喜欢的语言,本身喜欢的平台、工具,写本身喜欢的程序。因而咱们会看到有人在Win下用Visual Studio愉快地coding,也会看到有人在OS X下用Xcode来开发,或者是用Sublime Text不受平台限制地玩。html
固然了,愿望每每是美好的,然而事与愿违的状况时有发生。若是你基本都是用OS X,却有人让你写一个带有简单界面的小程序,保证在他的Win系统上必定能够运行,那么你是否是有点抓狂。html5
固然,我能够在Visual Studio(已经有Mac OS X版)下用MFC或者其余框架来写,可是总感受有点重量级,而且不能移植到其余平台(万一哪天让我写个OS X下的界面呢,想一想都毛骨悚然啊!)node
因此我想找的就是一个能够跨平台的、轻量级的图形界面开发的库,因而想到了喜欢的Python,而后发现它下面的GUI开发框架还真很多:wxPython, tkInter, PyGtk, PyQt。python
wxPython: 首先官网至关简洁(丑陋),而后快速浏览了一下文档,发现有这块:Cross-Platform Development Tips,告诉你跨平台要注意哪些东东,看来不是我心中想的那样只须要写一份代码,在不一样平台编译一下就能够,因而放弃。git
TkInter: 也在其余地方看到有人推荐这个,可是感受文档特别乱,网上一些教程也至关简陋,里面界面丑的掉渣,也放弃了。程序员
后面两个我甚至都没耐心继续看下去了,由于我不经意看到了nw.js,他就像一座灯塔,冥冥之中照亮了前进的方向啊。github
Github上nw.js有两万多Star和接近3000的Fork,说明它已经至关成熟,不会是某我的随兴放的一个并不成熟的技术。而且在Github项目的最后面,显示Intel有赞助这个项目,看起来很牛的样子。并且关于nw.js的资料也特别齐全,首先来看看它的特色:web
支持用HTML5, CSS3, JS和WebGL来写应用程序,包括桌面端和移动端;数据库
彻底支持Node.js APIs和全部的第三方模块;
性能也不会不好,对于轻量级的应用足够了;
对应用进行打包和发布十分简单,也就是说写一份代码很容易移植到不一样的平台(包括主流的Linux, Mac OS X 和 Windows);
而后做者怕你认为它很难打交道,进而“知难而退”,就在项目主页里用许多slides来介绍它。
下面这张slide解决了“nw.js能作什么?”的问题,简单来讲nw.js就是使HTML, CSS, JavaScript写的本来在浏览器上运行的程序,也能够在桌面端运行。
下面这张slide解决了“怎么用nw.js完成任务?”的问题,
最后,开发者怕你怀疑nw.js的强大,又提供了几个Demo和许多成功的案例来打消咱们的顾虑。
决定用nw.js以后,就开始补充相应的知识啦。首先本身没有怎么去学过JavaScript, HTML, CSS这类web方面的语言,不过想来也不会比C++难。学习的成本也应该比学习MFC, wxPython低不少,而且这些语言太基础、使用场景太多了,因此迟早都得了解一下,干脆借这个机会一边学一边作具体的东西。因而买了《JavaScript DOM编程艺术(第2版)》这本书拿来入门。
讲了这么多,还没说我具体要作什么呢,其实要作的事情特别简单,就是统计一本书的页码中一共有多少个0,1,2,3,4,5,6,7,8,9。关于这个问题,详细看前面的那篇博客:讲得明白,但写的明白吗?。
我要实现的目标很简单,在输入正确的数字时,给出统计结果;输入错误的数字时,则给出错误提示,重置输入框和统计结果。以下:
实现过程至关简单,特别是对于那些作过web开发的,详细过程就不在这里给出了,只提供一个简单的程序逻辑图吧。
源码十分简单,能够在这里找到,结构以下:
tree . ├── index.html ├── main.js ├── package.json └── style.css 0 directories, 4 files
打包到各个平台也有详细的文档。以Win为例,只须要三步便可:
将全部工程文件,放在一个文件夹下,确保package.json
在根目录,而后压缩为.zip格式,并将压缩文件的后缀由.zip
改成.nw
;
在nw.js的环境目录下执行copy /b nw.exe+you_nw_name.nw you_app_name.exe
(这一步以后,就能够在生成的目录中直接运行you_app_name.exe
,它依赖同目录下的一些其余库);
用Enigma Virtual Box将you_app_name.exe
和依赖的库打包到单个exe文件中,这样咱们的应用在没有任何编程环境的win机器上均可以运行。
不得不提nw.js开发出的应用已经涵盖了许多领域:
Powder Player 种子下载,以及视频播放器;
Boson Editor 代码编辑器,甚至还有一款Markdown编辑器叫Story-writer;
Leanote Desktop App 相似Evernote的笔记类应用程序;
Mongo Management Studio 数据库管理应用。
来欣赏一下一些应用的截图吧,不得不说nw.js开发出的应用一点不比原生的丑陋啊。
看来nw.js赢得了不少青睐,那么还有什么能阻止咱们拥抱nw.js呢?。
ps:
若是有的连接打不开,先检查打开的姿式对不对。
更多文章见 个人主页