2011年时写了一个切换hosts的小工具SwitchHosts!,2012年时发布了第二版,一转眼3年过去了,在2015年即将结束之时,终于抽空编写了它的第三个版本

 

Logo with title

Capture 1

我在日常开发过程中经常会用到SwitchHosts!,第二版虽然能满足大部分需求,但还是有一些不方便的地方,第三版在功能上主要有如下变化:

允许方案多选

我们日常开发过程中,有时会有很多公用的hosts希望总是生效,第二版的处理方法是提出一个单独的公共方案,但在一些复杂组合的情况下,单独的公共方案常会显得力不从心,于是,这一次索性将方案改为允许多选。自然,这样也就不再需要一个单独的公共方案了。

点击行号快速切换某一行的注释

有时我们只时临时想关闭/开启某一条hosts规则,如果单独将它作为一个方案就有点太重了,手动在行首加“#”进行注释又太麻烦,因此有了这个功能,帮助用户快速切换某一行的注释状态,从而达到关闭/开启某一行的效果。如下图:

click to comment

 

除此之外,第三版的一个很大的变化是技术上放弃了Python + wxPython的架构,采用了MacGap来构建。

之所以放弃wxPython,主要是因为这个UI框架更新比较慢,社区也相对不活跃,我遇到不少问题都无从下手,比如第二版在Retina屏下有一些问题,同时Mac版的编辑区无法使用中文输入法等。最终,我决定在新版本中采用Web技术来开发界面。

一开始,我尝试了Electron,并且做出了一个版本。但Electron生成的程序实在是太大了,无论Mac上还是Windows上都超过了100M。SwitchHosts!只是一个轻巧的小工具,虽然现在用户电脑的硬盘越来越大,但这么一个小工具要占用100M+的空间还是让我觉得不太合适,于是我转而尝试了MacGap。好处是现在的程序只有1M多点,坏处是第三版目前只适用于Mac了,Windows用户暂时只能继续使用第二版。

目前这个版本仍有不少可提升的地方,不过既然它已经是一个可用的版本,那就让我遵循MVP(minimum viable product)原则,先发布,再根据反馈进行迭代完善吧。

最后,贴一下项目主页:https://oldj.github.io/SwitchHosts/。欢迎下载试用反馈建议