写点什么

iOS Web 开发调试工具 MIHTool 作者访谈

  • 2013-03-24
  • 本文字数:2972 字

    阅读完需:约 10 分钟

MIHTool 是一款在国外非常出名的移动设备 Web 开发调试工具。大家可能想不到的是这款工具是不折不扣的国人作品。InfoQ 联系到它的作者,做了一次简单采访。不管你是否了解此应用,是否关心移动开发与调试,这后面的故事都值得一读。

以下是采访内容:

InfoQ:请先做个自我介绍吧。

听奏:我是 MIHTool 的作者,也是一个前端开发者,目前就职于网易,专注于移动前端。关于 MIHTool 大家可以 Twitter @unbug 或者微博 @听奏。这是我的个人主页 iunbug.com

InfoQ:能否讲讲决定做 MIHTool 这款产品的起因?

听奏:开发 MIHTool 最初是因为移动前端的项目一直受到性能不佳,CSS3 动画不流畅,闪动等的问题的困扰。但如果调试移动端页面的时候能像 PC 端的 Chrome 一样查看到页面合成渲染层边框元素的重绘渲染数,那么可以大大减少上述问题的出现。后来作者在 Zynga 工作室 CTO(也是 jQuery UI 的原作者)Paul Bakaus 指导下,MIHTool 不断迭代,通过 Twitter,邮件,MIHTool Google Group 作者收集到不少网友的建议 (或需求),MIHTool 才有今天这么多丰富实用的开发者功能。

InfoQ:MIHTool 解决了什么问题?

听奏:详细的内容可以在 MIHTool 的主页看到。当中比较突出的功能用 Paul Bakaus 专门为 MIHTool 写的介绍博文《 MIHTool, the iOS web debugger 》中总结的四点可以说明:

  1. Inline Web inspector 这个是 iPad 独占的功能。没错,通过 MIHTool 不仅可以远程调试页面,如果你有一台 iPad 你可以完全用 iPad 来完成调试,特别是你身边没有一台 PC 的时候。当 Paul Bakaus 看到这个功能时他在 Twitter 上是这么评价的"This will be game changing. Nothing like it existed before in iOS. I’m blogging about it."。
  2. 进阶性能分析功能显示页面合成渲染层边框和显示元素的重绘渲染数 Webkit 内核的浏览器提供这两个网页高级性能分析标记。在 chrome 中很容易开启,但在 mobile safari 不通过 XCode 的 instruments 是无法查看到的。而通过这两个标记,前端开发者能够更加有依据的也解决性能问题。MIHTool 直接提供了这两个功能,作者希望从事移动前端的开发者通过 MIHTool 都能找出自己作品中的性能瓶颈原因进而做出更加优异的作品。
  3. 完全远程控制 通过 MIHTool HTTP Server 你可以完全方便的通过简单的命令控制 MIHTool,这对开发者有什么好处呢?比如你有 10 台 iOS 设备罢在你面前,你想写一个脚本让他们自动打开你的测试页面 (自动化测试),那么通过 MIHTool 的远程打开 URL 命令你的脚本是可以实现的。
  4. 缓存的控制 MIHTool 不仅可以很方便的清除缓存 (包括 manifest),Cookies,localStorage,你还能 (或者远程) 禁用缓存或者全部删除上述所有数据。这大大的节约了开发者的时间。

InfoQ:市面上有什么同类产品吗?

听奏:目前同类产品比较知名的是 Adobe edge inspect(原名 Adobe shadow),已经发布有一年了专注于 web inspector 和多平台及云服务。

InfoQ:和 Adobe edge inspec 相比,MIHTool 有什么优势?

听奏:Adobe edge inspect 属 adobe edge 系列的成员,主要功能是 web inspect。MIHTool 专注于给开发者丰富的开发者调试工具,web inspect 只是其中的一个功能,两者都是用的 apache 开源的 weinre,MIHTool 对 weinre 做了一些修改,如适配触屏 (Inline web inspector),离线存储脚本,支持外连脚本 / 样式的查看等。MIHTool 的开发者工具非常的丰富,其他功能有: 多达 30 的 UA 可以切换,显示合成渲染层边框和元素重绘率,查看 HAR,HTML 编辑器查看和编辑源码,缓存控制,完全化的远程控制等都是 Adobe edge inspect 没有的。并且 MIHTool 只用安装到 iOS 设备上即可以使用,而 adobe edge inspect 要不仅要安装 iOS 客户端,同时还要安装 chrome 插件和 MAC(PC) 客户端,当然,adobe edge inspect 支持多平台也是 MIHTool 不及的。

InfoQ:这款工具的名字是怎么得来的?

听奏:MIH = Make It Happen。这是作者给自己的一个承诺,承诺无论如何都要将 MIHTool 开发出来坚持下去。作者知道无论做任何事情开头难坚持也难,如果不给自己一个承诺那么即使开始兴趣盎然最终也会不了了之。作者为了这个承诺在不到三个月时间就将 MIHTool 打造得如此实用,着实让作者本人也大吃一惊。

InfoQ:在创作这款产品的时候,有没有遇到什么困难,是如何解决的?(语言学习、视觉设计、产品规划、推广工作)

听奏:因为作者曾是 J2EE 开发者,学习其他编程语言心理上没有什么压力,学习 objective-c 时也没有过多拘泥,都是 MIHTool 要用什么特性才通过搜索引擎和 youtobe 视频学习的,显然很不专业,其实 MIHTool 本来是开源的,在 github 上还有早期的版本,但作者把 MIHTool 的 objective-c 代码写得实在不堪入目,不再好意思更新上去。

MIHTool 里唯一上眼的应用图标不是作者设计的,是 Mortensen 的图形与交互设计师 Rude 设计的,Rude 先是在 Twitter 上抱怨原来的图标,后来干脆动手帮作者做了一个,也就是现在 MIHTool 的图标,非常的细腻和精致。

因为 MIHTool 迭代非常的快,规划的功能基本上都即想即加的,直到 5.0 才算基本完善了。但很遗憾的是作者一直想给 MIHTool 加 FPS 查看器和网络环境模拟及类似 fiddler 的本地脚本替换线上脚本等功能因为作者 iOS 开发能力有限没能实现,如果读者知道如何实现欢迎不吝赐教。

MIHTool 在国外较多开发者知晓,Twitter 上几乎每天都有的关于 MIHTool 的新 twitter,但 MIHTool 的推广作者其实没有什么功劳,都是 Zynga 工作室 CTOPaul Bakaus 在 Twitter 上的推广的,他专门为 MIHTool 写了一篇 Blog。同时在 Twitter,G+,facebook 上推广 MIHTool 的还有 Google 的工程师 Paul Irish 和 Addy Osmani 及 Smashing Magazine 的编辑。作者的朋友同事也帮 MIHTool 在微博上推广过,但可能由于国内移动前端不太活跃的原因国内的安装量很少而且大多都是友情支持,目前安装量较多的几个国家是美国,英国,德国,和意大利。

InfoQ:那么国外的开发者对 MIHTool 都有着什么样的评价?

听奏:在 Twitter,一些业界比较有名望的人士对 MIHTool 做出过如下的评价:

  • Zynga 工作室 CTO @pbakaus : MIHTool is a brilliant tool that helps you debug websites on iOS.
  • Google 工程师 ‏@paul_irish : MIHTool: a smart & powerful debug tool for iOS WebView.
  • Google 工程师 @addyosmani : MIHTool will change your life: A complete inline Web Inspector on iOS with performance profiling
  • Smashing Magazine ‏ @smashingmag : MIHTool: a good tool for debugging websites on iPad and iPhone.

InfoQ:此款产品在 AppStore 上有一个收费版和一个免费版,能否对此讲讲你的想法?

听奏:收费版是 4。0 才开始上架的,作者对外发布一直没用过收费版的连接,因为收费版是作者给那些想捐助支持 MIHTool 的用户准备的,他们的捐助会帮助作者支付 MIHTool 的服务器开销,作者承诺只要是作者管理的,MIHTool 收费版和免费版就不会有任何区别。

作者收到一些 MIHTool 用户的感谢邮件,希望能通过 PayPal 或 Google Checkout 的方式捐款,作者在此深表感激。

InfoQ:对这款工具,有怎样后续的计划?

听奏:MIHTool 到 5.0 时基本已经完善,目前这段时间作者比较轻松,只修修 BUG 和添加网友新的需求,后续会将 MIHTool 的 HTML 编辑器 (iPad 版) 做成一个更加实用的源码编辑器。

(采访内容完)

2013-03-24 22:106858
用户头像

发布了 91 篇内容, 共 40.7 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | Junit5 架构、新特性及基本使用(常用注解与套件执行)

测吧(北京)科技有限公司

测试

十分钟速成DevOps实践

华为云开发者联盟

后端 开发

软件测试 | 测试开发 | Git实战(五)| 让工作更高效,搞定Git的分支管理

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | BAT 大厂最流行的性能压测、监控、剖析技术体系解析

测吧(北京)科技有限公司

测试

西安Java培训班哪家比较好

小谷哥

开放算力,云启未来!与龙蜥一起开启 2022 云栖大会之旅

OpenAnolis小助手

开源 科技 峰会 云栖大会 龙蜥社区

【开发者说】携住数智酒店,用原子化服务创造全新入住体验

HarmonyOS开发者

HarmonyOS

软件测试 | 测试开发 | Git实战(四)| Git分支管理实操,搞定在线合并和本地合并

测吧(北京)科技有限公司

测试

武汉web前端开发培训机构学费多少

小谷哥

大数据开发培训机构怎么选择

小谷哥

Hibernate 缓存与 MyBatis 缓存的理解以及比较

codeshero

Java hibernate 缓存 mybatis缓存 9月月更

DAPP系统开发Web3合约技术

薇電13242772558

dapp web3

链上自动化何以成就更好的 Web3 | 对话 OAK Network

One Block Community

区块链 自动化 专访 波卡生态

NFT 离商业化还有多远?

One Block Community

区块链 程序员 NFT 商业化

软件测试 | 测试开发 | Jenkins 踩坑 | job 创建、参数化、定时构建及时区偏差问题解决

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Dubbo-admin+Zookeeper 的环境搭建实操与 Could-not-extract-archive 报错踩坑

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 30 分钟轻松搞定正则表达式基础

测吧(北京)科技有限公司

测试

小间距LED显示屏未来十大发展方向

Dylan

LED显示屏 led显示屏厂家 户内led显示屏

软件测试 | 测试开发 | Git 实战(三) | Github 必会高频基础命令与 IDE 的 Git 集成

测吧(北京)科技有限公司

测试

关于事务注解中的常用参数详解

codeshero

Java 后端 事务 注解 9月月更

IoT数据倾斜如何解决——实践类

阿里云AIoT

算法 流计算 物联网 数据处理 并行计算

国庆福利:6大云原生落地指南、100余页实用转型干货 免费下载!

York

容器 DevOps 微服务 云原生 应用现代化

软件测试 | 测试开发 | Docker 镜像构建可以分享的快乐

测吧(北京)科技有限公司

测试

Java培训技术学习哪个前景不错

小谷哥

数字孪生实操——实践类

阿里云AIoT

物联网 数据采集 传感器 数字孪生

资源画像,看得见的容器资源优化助手

阿里巴巴云原生

阿里云 容器 云原生 ACK

Java | interface 和 implements关键字【接口,看这篇就够了】

Fire_Shield

Java 接口 9月月更

软件测试 | 测试开发 | BAT大厂都在用的Docker。学会这三招,面试、工作轻松hold住

测吧(北京)科技有限公司

测试

SBOM:缓解软件供应链风险的关键

SEAL安全

DevSecOps 软件供应链 SBOM 软件供应链安全

西安前端培训班学习哪家比较好

小谷哥

隐私计算大规模落地场景的解决之道:分布式计算架构

Jessica@数牍

隐私计算 分布式技术 分布式计算框架

iOS Web开发调试工具MIHTool作者访谈_JavaScript_彭超_InfoQ精选文章