Latest 1.1.0
Homepage https://github.com/RedMadRobot/DAO
License MIT
Platforms ios 9.0
Authors

Issues count
Cocoapod
Swift
License

An implementation of DAO pattern for CoreData and Realm.
Helps you think less about database in your application.

Features

  • Use your persistence layer synchronously for CRUD operations.
  • Abstraction of database objects (entries) from application objects (entities).
  • Abstraction from concurrency.

Install

Cocoapods

For using with CoreData:

pod 'DAO/CoreData'

Or with Realm:

pod 'DAO/Realm'

Usage

// Create DAO instance
let dao = RealmDAO(RLMMessageTranslator())

//...

// Create message entity
let message = Message(entityId: "abc", text: "text")

// Save message to database
try? dao.persist(message)

// Read saved message from database
let savedMessage = dao.read(message.entityId)

// Delete message from database
try? dao.erase(message.entityId)

Please look at the example project for more information.

When not recommended to use

  • If you have big and complex database schema. Many entities, many relationships.
  • If you want to use specific features of database. Realm Mobile Platform, for instance is not compatible with DAO implementation.
  • If you have thousands of objects (> 10-20K). Performance can be the issue.

Requirements

  • XCode 8
  • Swift 3
  • iOS 9

Authors

Ivan Vavilov – [email protected]

Latest podspec

{
    "name": "DAO",
    "version": "1.1.0",
    "summary": "DAO Library",
    "description": "Library provides easy way to cache entities.",
    "homepage": "https://github.com/RedMadRobot/DAO",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "vani2": "[email protected]"
    },
    "source": {
        "git": "https://github.com/RedMadRobot/DAO.git",
        "tag": "1.1.0",
        "submodules": true
    },
    "platforms": {
        "ios": "9.0"
    },
    "source_files": "DAO/Classes/Core/**/*",
    "pushed_with_swift_version": "3.0",
    "subspecs": [
        {
            "name": "Realm",
            "source_files": [
                "DAO/Classes/RealmDAO/**/*",
                "DAO/Classes/Core/**/*"
            ],
            "dependencies": {
                "RealmSwift": []
            }
        },
        {
            "name": "CoreData",
            "source_files": [
                "DAO/Classes/CoreDataDAO/**/*",
                "DAO/Classes/Core/**/*"
            ]
        }
    ]
}

Pin It on Pinterest

Share This