热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOSWeb开发调试工具MIHTool作者访谈

MIHTool是一款在国外非常出名的移动设备Web开发调试工具。大家可能想不到的是这款工具是不折不扣的国人作品。InfoQ联系到它的作者,做了一次简单采访。不管你是否

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

\u0026#xD;\n

以下是采访内容:

\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

InfoQ:MIHTool解决了什么问题?

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
  1. \u0026#xD;\n

    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.\"。

    \u0026#xD;\n \u0026#xD;\n
  2. \u0026#xD;\n

    进阶性能分析功能显示页面合成渲染层边框和显示元素的重绘渲染数 Webkit内核的浏览器提供这两个网页高级性能分析标记。在chrome中很容易开启,但在mobile safari不通过XCode的instruments是无法查看到的。而通过这两个标记,前端开发者能够更加有依据的也解决性能问题。MIHTool直接提供了这两个功能,作者希望从事移动前端的开发者通过MIHTool都能找出自己作品中的性能瓶颈原因进而做出更加优异的作品。

    \u0026#xD;\n \u0026#xD;\n
  3. \u0026#xD;\n

    完全远程控制 通过MIHTool HTTP Server你可以完全方便的通过简单的命令控制MIHTool,这对开发者有什么好处呢?比如你有10台iOS设备罢在你面前,你想写一个脚本让他们自动打开你的测试页面(自动化测试),那么通过MIHTool的远程打开URL命令你的脚本是可以实现的。

    \u0026#xD;\n \u0026#xD;\n
  4. \u0026#xD;\n

    缓存的控制 MIHTool不仅可以很方便的清除缓存(包括manifest),COOKIEs,localStorage,你还能(或者远程)禁用缓存或者全部删除上述所有数据。这大大的节约了开发者的时间。

    \u0026#xD;\n \u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

听奏: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不及的。

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n

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

\u0026#xD;\n

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

\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

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

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

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

\u0026#xD;\n
\u0026#xD;\n

(采访内容完)


推荐阅读
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • pyecharts 介绍
    一、pyecharts介绍ECharts,一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 吐槽:团队遣散,我们该何去何从?
    写在最前:纯属吐槽,漫笔,勿喷!就在前些天,放工回家的路上,看到群信息,说:据说京东裁人了~,也是在上上月,也一度被传的沸沸扬扬的:阿里、京东、华为接踵被曝住手社招,音讯也是满天飘 ... [详细]
  • 前端提高篇(七十):SVG基本使用、基本样式、路径path
    SVG是使用XML来描述二维图形和绘图程序的语言。SVG遵循的是xml的规范,与html5的使用有所区别SVG绘制出来的是矢量图,放大之后不会失真官方文 ... [详细]
author-avatar
拍友2502914513
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有