在开发老人护理类手机应用时,如何让界面清晰、操作简单,是开发者最关心的问题之一。很多现代护理App都采用MVVM模式,其中的ViewModel扮演着关键角色。
ViewModel不是界面,也不是数据源
很多人以为ViewModel就是把数据显示到页面上,其实它更像是一个“中间人”。比如,老人每天需要服药三次,App要显示“距离下次服药还有45分钟”。原始数据可能是“上午9点、下午2点、晚上7点”,但用户看到的应该是转换后的倒计时。这个计算工作就由ViewModel完成。
这样一来,界面只需要关心怎么展示“45分钟”,而不用管时间是怎么算出来的。即使以后调整服药时间规则,只要ViewModel改一下逻辑,页面几乎不用动。
和老人互动更流畅
当老人点击“已完成服药”按钮时,ViewModel会记录状态、更新提醒、同步到云端,同时通知界面刷新。整个过程不卡顿,也不依赖具体的按钮或弹窗样式。也就是说,哪怕换一套UI设计,只要功能不变,ViewModel这部分代码还能继续用。
比如有的老人视力不好,字体放大后按钮位置变了,但背后的逻辑仍然是同一个ViewModel在支撑,不会出错。
实际代码长什么样?
public class MedicationViewModel : INotifyPropertyChanged
{
private TimeSpan _timeRemaining;
public TimeSpan TimeRemaining
{
get => _timeRemaining;
set
{
_timeRemaining = value;
OnPropertyChanged(nameof(TimeRemaining));
OnPropertyChanged(nameof(DisplayText));
}
}
public string DisplayText => $"距离下次服药还有 {_timeRemaining.Minutes} 分钟";
}
这段代码里,TimeRemaining一变,DisplayText自动更新,界面也会跟着刷新。老人看到的信息始终是最新的,不需要手动刷新或重启App。
MVVM中的ViewModel就是这样默默干活的角色——不露脸,但处处起作用。对老人来说,他们只觉得“这App反应快、好操作”,其实背后是ViewModel在理顺每一个细节。