iOS用户角色最佳实践



我正在构建一个应用程序,其中一些用户将比其他用户更有权访问功能。其概念是,一些用户是父母,另一些用户是孩子,例如,父母可以添加家务,而孩子则不能。我想知道实现这种设置的最佳实践是什么,包括:

1.我是否应该为父母和孩子提供单独的故事板和VC?基本上有一些按钮和功能应该存在于父母的某些页面以及其他屏幕上。

2.最好的方法是在用户类中具有角色属性吗?

3.一般来说,对于用户(比如一个家庭)之间共享信息的应用程序,设计的最佳实践是什么?

如果有人碰巧有这类事情的Swift示例代码,看看会很有帮助,因为我刚刚开始使用iOS。

提前谢谢。

一般来说,

1) 不可以。如果两个页面之间只有很小的视觉差异,您应该隐藏/更改用户不应该看到的元素。如果用户需要特殊视图,只需在情节提要中创建该视图,并仅在适当的时候显示。

2) 要执行上述操作,您可以在用户实体上设置一个指示用户"类型"的属性,也可以基于角色设置多个用户对象,并基于实体类型显示/隐藏UI元素。

3) 这是一个非常广泛的问题,实际上取决于你的应用程序的大小和复杂性。

所有这些都很一般。有许多因素可以决定最佳方式,包括:从何处导入或创建用户、数据的敏感性、不同类型用户的数量或"权限集"。

tl;dr

我对同一问题的解决方案:

  1. 用户角色枚举
  2. user类的user-roles属性
  3. CurrentUser单例

示例代码

enum UserRole {
    case Admin
    case FremiumUser
    case PayingUser
}
struct User {
     var name = "J. Doe"
     var roles = [UserRole]()
}
class CurrentUser {
    // Singleton pattern
    static let sharedUser = CurrentUser()
    private init() {}
    var user = User()
}

讨论

我正在开发一款应用程序,分享您的挑战受Decorator模式和/或面向协议编程的启发,我目前的想法是拥有一个用户角色枚举,由我的user类上的一个属性持有,可以通过全局单例CurrentUser对象访问。每个屏幕(视图控制器、视图、拥有的内容)都可以检查当前用户的角色,并做出适当的反应。

想法?

最新更新