作为公众号里MATLAB GUI写得最凶的汽车工程师,经常会有朋友留言问我:MATLAB App会不会取代GUI?
类似的留言还有很多,正好上周有朋友加我微信聊到这个问题,所以今天我打算写一篇关于这个主题的文章,聊一聊我对这个问题的理解。
先提前申明一下,我读的是机械,工作是造车的,从来没有学过计算机,如果有朋友对我一本正经的胡说八道不认同,欢迎指正。
01. 选App还是GUI,这不是一个问题
在对比App和GUI之前,我想先聊一下App和GUI的本质。
无论是App还是GUI,他们的本质都是一样的,都是UI(User Interface用户界面)的一种。
我们日常生活中还有很多UI的例子,像电脑桌面,手机,微信小程序等等,获取信息,调用资源,控制运作的一个可视化操作界面。
关于UI设计,很多人会把UI的职能分成3类,包括界面设计,交互设计,以及用户测试。
不过在MATLAB App/GUI的开发过程中,不会分这么细,只包括界面设计和交互设计,因为用户群体有限,基本上是只是自己使用或者项目组里使用。
之所以介绍这个,是希望能够淡化大家对GUI与App转化这件事的忧虑。
GUI和App的本质是一样的,在GUI转App这件事上,大部分的交互设计是保持不变的,也就是主要功能的callback函数都是沿用的,像数据的导入导出,数据的计算处理,数据的可视化等等。
唯一的不同是在界面设计上。虽然界面设计不同,但原理总是相通的,基本的控件也都是类似的,无非就是按钮,编辑框,文本框,列表等等。
所以,如果你打算把GUI迁移到App上,不要觉得这是件难度堪比登天的事,App Designer有提供GUI转App的工具,然后在转成之后的App略微调整,差不多就能用了。
02. MathWorks为什么要开发App Designer
既然GUI和App的本质是一样的,为什么MathWorks要开发一个全新的应用程序构建平台App Designer?
对于这个问题,我引用一下MATLAB图形和应用程序构建的开发经理Chris Portal的回答:
“GUIDE和App Designer之间的主要区别在于所使用的技术。GUIDE的基础是Java Swing,甲骨文已经不再对其投入开发。虽然这个平台可以获得一些短期的胜利,但是从长远来看,不会得到新的扩展