Latest 2.0.5
License MIT
Platforms ios 8.0, osx 10.10, tvos 9.2, requires ARC
Dependencies Tailor

CI Status
Carthage Compatible


Brick Icon

Brick is a generic view model for both basic and complex scenarios.
Mapping a basic table view cells is as easy as pie, if you have more properties, you can use the meta dictionary to add all additional properties that you might need. It also supports relations so that you can nest view models inside of view models.

public struct Item: Mappable {
  public var index = 0
  public var title = ""
  public var subtitle = ""
  public var text = ""
  public var image = ""
  public var kind = ""
  public var action: String?
  public var size = CGSize(width: 0, height: 0)
  public var meta = [String : AnyObject]()
  • .index
    Calculated value to determine the index it has inside of the component.
  • .title
    The headline for your data, in a UITableViewCell it is normally used for textLabel.text but you are free to use it as you like.
  • .subtitle
    Same as for the title, in a UITableViewCell it is normally used for detailTextLabel.text.
  • .text
    This is an optional property that can be used for larger amount of text needed to describe your Item
  • .image
    Can be either a URL string or a local string, you can easily determine if it should use a local or remote asset in your view.
  • .kind
    Is used for the reuseIdentifier of your UITableViewCell or UICollectionViewCell.
  • .action
    Action identifier for you to parse and process when a user taps on a list item. We recommend Compass as centralized navigation system.
  • .size
    Can either inherit from the UITableViewCell/UICollectionViewCell, or be manually set by the height calculations inside of your view.
  • .meta
    This is used for extra data that you might need access to inside of your view, it can be a hex color, a unique identifer or additional images for your view.


let item = Item(
  title: "John Hyperseed",
  subtitle: "Build machine",
  meta: [
    "operatingSystem" : "OS X",
    "xcodeVersion" : 7.3

print(item.meta("operatingSystem", "")) // prints "OS X"
print(item.meta("xcodeVersion", 0.0)) // prints 7.3


Brick is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod 'Brick'

Brick is also available through Carthage.
To install just write into your Cartfile:

github "hyperoslo/Brick"


Hyper Interaktiv AS, [email protected]


We would love you to contribute to Brick, check the CONTRIBUTING file for more info.


Brick is available under the MIT license. See the LICENSE file for more info.

Latest podspec

    "name": "Brick",
    "summary": "A generic view model for both basic and complex scenarios.",
    "version": "2.0.5",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Hyper Interaktiv AS": "[email protected]"
    "source": {
        "git": "",
        "tag": "2.0.5"
    "social_media_url": "",
    "platforms": {
        "ios": "8.0",
        "osx": "10.10",
        "tvos": "9.2"
    "requires_arc": true,
    "ios": {
        "source_files": "Sources/{iOS,Shared}/**/*"
    "osx": {
        "source_files": "Sources/{Mac,Shared}/**/*"
    "tvos": {
        "source_files": "Sources/{iOS,Shared}/**/*"
    "dependencies": {
        "Tailor": [
            "~> 2.0"
    "pod_target_xcconfig": {
        "SWIFT_VERSION": "3.0"
    "pushed_with_swift_version": "3.0"

Pin It on Pinterest

Share This