Windows 应用程序开发人员必须考虑的功能,来看看你想到了吗
本文最后更新于:3 个月前
前言
本篇内容为个人观点,仅供参考,实际开发过程中可能需要加上更多的细节以保证用户的体验。以下内容由本人在实际开发和日常使用软件中得出,仅列出了大致方向,具体代码请自行实现并做适当修改。
程序启动行为
- 多个实例:是否允许程序多开,如果否的话,当用户重复运行程序时是否打开第一个实例的主窗口;
- 组件检查:运行时检查需要的组件是否完整,若有缺失或损坏则向用户发出提示。
程序其他功能
- 可定制性:无论什么程序,都应具有 “设置” 页面,并且可设置尽可能多的内容,除了可设置基本的功能以外,也要可设置 “高级” 功能,以适应不同需求的用户,实现高度自定义;
- 检查更新:有更新时弹出提示,而不是在用户运行程序时直接进行静默下载并安装 (比如某度网盘,经常在启动的时候安装更新并且无任何提示,导致无法及时显示界面让用户误以为程序无法启动,离谱的是在更新过程中多次运行主程序貌似会导致更新失败造成程序永久性的无法启动,需要到官网重新下载安装),用户同意后最好是由程序主动下载并自动安装更新,而不是跳转到网页让用户手动下载,下载的时候最好也显示下载进度;
- 内存优化:自动在后台优化程序的内存占用,防止造成卡顿甚至是性能瓶颈;
- 开机自启:允许用户快捷设置开机自动启动,而不是让用户自己通过启动文件夹、注册表等方式手动设置开机启动,但不允许程序擅自未经用户同意就设置开机启动;
- 异常处理:不是所有异常都可以忽略,尤其是未经处理的异常,可选是否弹出消息框,或者是写入日志文件。
UI 界面
- 高 DPI 支持:防止程序界面在高分辨率、高缩放的屏幕上出现排版错乱或者是文字模糊而影响整体观感和用户体验;
- 多显示器:考虑多显示器场景的用户,避免某些功能在多显示器环境下出现兼容性问题;
- 布局排版:程序功能允许出现 Bug,但 UI 排版、交互逻辑等方面千万不能有 Bug (比如某信的托盘右键菜单,当其图标隐藏在托盘同时又有未读消息的时候,此时想通过右键图标退出程序变得不可用,因为鼠标悬停在其图标上就会弹出消息列表,而阻止用户无法右键点击图标来退出,当然此时可以在设置里面退出,显得十分麻烦),另外务必统一 UI 字体为无衬线体 (Sans-serif,但是不要使用过于花里胡哨的字体) 以增强内容可读性;
- 窗口边框:条件允许的话,尽量使用 Windows 原生 UI 框架或者是 WinUI 之类的,最好不要自定义边框,就算自定义都要和 Windows 的窗口边框相似进而与 Windows 界面达成统一,提升用户体验;
- 浅色/深色主题:尤其是具备深色主题,这也是大多数开发者未曾考虑的。深色主题可缓解用户在黑暗环境下使用电脑的眼睛疲劳,可允许用户手动切换主题或者是自动跟随系统主题。
- 减少闪烁:减少切换窗口、页面出现的白屏和界面卡顿 (比如某钉、某度网盘);
- 过渡动画:减少 UI 的生硬和难用,但不是说一定要做一个精美的动画效果,至少得当用户点击某按钮或者是其他控件时要快速做出响应 (比如某道翻译,刚打开 UI 的时候会出现假死,点击输入框不能及时响应),若实在不能及时响应也要告知用户 “正在加载中,请稍候…”。
开发习惯
- 编译出的二进制文件的文件名使用纯英文字符;
- 使用可变图标 (图标组) 作为程序图标,至少包含这些大小 256x256、48x48、32x32、16x16;
Windows 应用程序开发人员必须考虑的功能,来看看你想到了吗
https://wanghaonie.github.io/posts/400953fc4490/