我正在开发我的第一个应用程序,我认为它正处于一个开发良好的阶段。在应用程序中,用户可以上传项目,我将其存储在Cloud-Firestore
和UserDefaults
中。
当前addItem
-工作流程:
-
用户按下
add-Button
-
我将项目上传到
Cloud-Firestore
-
等待上传完成
-
更新UI并设置CCD_ 6。
我选择这种方法是因为在我看来它非常安全。如果步骤2失败,我不会遇到任何麻烦。然而,这严重影响了应用程序的性能/用户体验。有时,如果itemToUpload
更大,用户必须等待几秒钟,直到该项目真正添加到UI中。(我已经在使用activityIndicator
,所以用户知道有东西正在加载,但没有人喜欢等待…(
所以我的问题是:用步骤4更改第2步是否安全?Todoist、Wunderlist等应用程序是如何处理这一问题的?我不用等了。
我认为这个问题不需要代码,但如果有什么不清楚的地方,请告诉我。
长时间阻止用户交互并显示加载程序肯定对应用程序不利。
将步骤4分解为两个子步骤:4a(更新UI 4b(设置UserDefaults
。你的流量应该是-
•用户点击add-Button
后立即更新UI
•在后台线程中将项目上传到云存储,并收听完成事件
•如果上传成功,请更新UserDefaults
•如果上传失败,请通知用户(toast/通知横幅/警报(,并可能将用户带回启动上传事务的屏幕。
附言:你也可以建立一个重试机制,以防上传因网络错误而失败。