关于UI设计的一点看法
阅读前说明
本人不是专门做设计的,因此以下内容只为个人的观点,仅作参考
在做了一段时间桌面应用开发后,越来越感觉做一个GUI软件不难,但是做好一个GUI软件不容易,你需要考虑的细节有很多,可能在某些情况下会比开发一个Cli软件的细节更多,最起码需要考虑到这些细节:
- UI界面设计
- UI交互设计
- UI与实际功能交互设计
- ……
UI界面设计¶
对于UI界面设计,你不仅需要考虑一个GUI软件的界面要相对好看一些,更主要的是它的UI得耐看,而不是让用户一拿到这个软件的时候会感觉新鲜,但随着时间的推移,让用户越看越觉着别扭、难受。我用过一些软件,这些软件虽然咋看起来设计的比较新颖,但是用的次数多了,可能反而因为它的UI设计导致用着难受,甚至都不想使用这样的软件。所以,个人认为在UI设计上,不仅要做的相对好看(尤其在现在这个阶段,一个UI好看的软件更容易获得用户的青睐),更要做的耐看,让用户看着不反感。
把一个UI设计的好看,得需要开发者有比较好的美感,像我等业余爱好写代码的人自然是达不到这个程度的,做GUI可能只是为了方便使用,只是作为一种工具而已。在知乎中有这个讨论“有哪些设计较好的开源 PyQt/Qt/Qml 应用?”,其中就有人提到要做好的UI设计,得需要一个专业的设计师来做,个人想要自己实现这样的UI,相对还是有一些难度的。
目前我个人比较推荐个人开发者参考的UI设计有两个,一个是微软的Fluent设计,一个是谷歌的Material设计,用这两种UI设计做出来的应用可以满足我所提到的好看、耐看的特点。如果使用的第三方UI库有实现这些效果,那么设计出一个相对好看、耐看的软件还是比较容易一些的。当然,使用这些现成的方案也有一个缺点,就是可能设计不出一个具有个人风格的UI,也就是不具有特色。至于选择自己设计UI还是使用现成的方案,可以根据个人的喜好去选择。
UI交互设计¶
对于UI交互设计,主要涉及到功能性和易用性的取舍,有很多时候这两个特性没有办法做到很好的平衡。如果要有足够多的功能,那么很容易导致软件界面臃肿繁杂,对于一个想使用的新手来说,学习门槛可能会比较高,也很难快速的理解各个功能的作用是什么,该如何使用等;但如果更偏向易用性,以简洁好用为主导,这又会限制UI设计的不能太复杂,功能不适合增加太多。
比如拿剪辑软件premiere和camtasia来说,前者更偏向功能性,在有限的空间内堆更多的功能,这就导致一个没有接触过剪辑软件、但想要用剪辑软件做一点东西的人来说,就有些摸不清头绪,要么硬着头皮看不少入门教程去学习,要么就可能直接放弃了;后者更偏向易用性,简洁、易用,这样就看着容易上手,简单学一学、摸索摸索可能就可以剪辑出一个效果还行的视频,但如果想要深入研究,想要做一些相对复杂的效果,比如做一个相对复杂的动画、特效等,那么你就很容易摸到这个软件的上限,要么能做但很麻烦,要么就直接不能做。他们这样选择,其实也是和他们的适用人群有关,前者是靠剪辑软件生活吃饭,后者只是想要拿剪辑软件做一个简单的工具用用,因着目标人群的不同才导致侧重点不一样。
当然,做好UI交互设计也需要有一个良好的UI库作为支撑,个人认为,如果一个UI库能提供足够多的控件,那么实现同样的效果可以用更多的选择,更容易做出一个具有良好交互的UI。比如,你是喜欢一个界面中罗列出密密麻麻的输入框和按钮以列出所有的设置,还是通过一行行的折叠控件,将同类功能的控件放在一组中呢?
总结¶
我还是这个观点:做GUI工具容易,做好GUI工具不容易,相对于cli工具,需要额外考虑的东西有很多,而且有些细节是矛盾的,该如何去平衡、做取舍,这是做一款GUI工具要花时间与精力要考虑的问题。在满足已有功能的基础上1,做好这些细节,才能更容易获得用户的青睐。
-
这一点很重要,如果连基础的功能都做不好,光界面好看也没啥用,用户并不买账,毕竟谁也不想用一个光界面好看,但bug满天飞、功能残废的软件 ↩

