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

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 many features of database. Realm Mobile Platform, for instance is not compatible with this 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.0.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.0.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