iOS 用户角色最佳实践

iOS User Roles Best Practices

我正在构建一个应用程序,在该应用程序中,某些用户将比其他用户拥有更多的功能访问权限。这个概念是一些用户是 parents 而其他用户是 children,并且 parents 能够添加杂务,例如,而 children 则不能。我想知道实施此类设置的最佳做法是什么,包括:

1。 parents 和 children 我应该有单独的故事板和 VC 吗? parents 的某些页面以及其他屏幕上基本上应该存在一些按钮和功能。

2。执行此操作的最佳方法是在用户 class 中具有角色属性吗?

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

如果有人碰巧有任何 Swift 此类示例代码,那么看看会很有帮助,因为我刚开始使用 iOS .

提前致谢。

一般来说,

1) 否。如果两个页面之间的视觉差异很小,您应该 hide/change 用户不应该看到的元素。如果用户需要特殊视图,只需在故事板中创建该视图并仅在适当时显示它。

2) 要执行上述操作,您可以在指示用户 "type" 的用户实体上有一个 属性,或者您可以有多个基于角色和 [=23] 的用户对象=] UI 个基于实体类型的元素。

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

这一切都很笼统。有许多因素可以决定执行此操作的最佳方式,包括:从何处导入或创建用户、数据的敏感性、不同类型用户的数量或 'permission sets'.

tl;博士

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

  1. 用户角色枚举
  2. 用户角色 属性 用户 class
  3. 当前用户单例

示例代码

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()
}

讨论

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

想法?