JSPatchConvertor--Mac 版

JSPatch

  JSPatch 是一个 iOS 动态更新框架,只需在项目中引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug。
  JSPatch 实现原理: 戳这里>>>JSPatch
  JSPatch 总结–By:Albert43:戳这里>>>JSPatch总结

JSPatchConvertor

  JSPatch Convertor 可以自动把 Objective-C 代码转为 JSPatch 脚本。
  JSPatch 是以方法为单位进行代码替换的,若 OC 上某个方法里有一行出了bug,就需要把这个方法用 JS 重写一遍才能进行替换,这就需要很多人工把 Objective-C 代码翻译成 JS 的过程,而这种代码转换的过程遵循着固定的模式,应该是可以做到自动完成的,于是想尝试实现这样的代码自动转换工具,从 Objective-C 自动转为 JSPatch 脚本。
  JSPatchConvertor 实现原理: 戳这里>>>JSPatch Convertor

JSPatchConvertor Mac版

  在此之前,Bang已经开发了JSPatchConvertor的Web版>>>戳这里,但是由于网速等问题,在用户体验上,并不是那么的方便。阅读了JSPatch和JSPatchConvertor的源码以后,我决定做一款Mac版的本地软件,用来进行Objective-C代码到JSPatch脚本JavaScript代码的转换。于是便产生了下面这款软件:
  
  JSPatchConvertor的原理在Bang文章>>>戳这里中已经说得非常明白了,这里不多介绍。简单分享一下我在完成这款软件过程中的一些小经历。

NW.js

  在经过简单的分析以后,我使用了难度最小的NW.js来完成开发。这里简单介绍一下NW.js。
  NW.js前身是NodeWebKit,是基于 Chromium 和 Node.js 运行的,即融合了 Node.js 和 Webkit HTML 渲染器来运行本地应用。新版的 NW.js 基于 io.js ,后者比起 Node.js 采用了更新版的 JavaScript 引擎 V8,对 ES6 支持得更好。既然 io.js 对最新的 Node.js 是百分百兼容的,因此所有是使用 Node.js 的类库和程序也可以使用在 io.js 中。
  要使用NW.js首先要安装Node.js>>>戳这里。然后安装NW.js戳这里>>>。不熟悉NW.js的朋友可以参考一下Github上的NW.js的Wiki戳这里>>>,环境配置完成以后,就可以将JSPatchConvertor的Web版的代码移植过来。在移植的过程中遇到了一个this关键字的问题,发现这里已有思考的成果:“Node.js 启动方式:一道关于全局变量的题目引发的思考>>>传送门”.代码完整的移植过来以后,还存在一些小Bug,于是就想一边调试一下Bug,顺便添加一些方便的功能进去,第一个想到的就是代码高亮的支持,首选SyntaxHighlighter,但是经过初步的试验以后,发现并不能很好的支持现在的代码,又刚好群友们呼唤软件快些发布,于是就匆忙的设计了下面这个图标,打包发布了文件。
  
icon
  软件发布以后,收到了一些好评,实在是愧不敢当.在这里要感谢Bang,感谢JSPatch群友们的支持,我只是代码的搬运工。经过一段时间的使用以后,想到了更懒的办法,与其每次写好Objective-C代码再打开Convertor转换,不如直接在Xcode中转换,于是就想开发为Convertor开发一款Xcode插件,在Xcode内一键生成JS文件,顺便解决对代码提示和代码高亮的支持。后续还会经历更多有趣的问题,我也非常期待能尽快的开发出这样的插件,让我们一起加油,我会再以后文章中和大家分享插件开发过程中遇到的问题。