RealmManager 1.1.0

RealmManager 1.1.0

LangLanguage SwiftSwift
License MIT
ReleasedLast Release Mar 2020
SPMSupports SPM

Maintained by Mark Christian Buot.

  • By
  • markcdb


A threaded and easier way of persisting data using Realm Mobile Database

Uses RealmSwift



CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

CocoaPods 1.9.1+ is required to build RealmManager 4.3.0+.

To integrate RealmManager into your Xcode project using CocoaPods, specify it in your Podfile:

source ''
platform :ios, '12.0'

target '<Your Target Name>' do
    pod 'RealmManager', '~> 4.3.0'

Then, run the following command:

$ pod install


If you prefer not to use any of the aforementioned dependency managers, you can integrate RealmManager into your project manually.



You can explicitly state the Object you'll gonna be managing for the session during initialization:

    //Object must be a subclass of Realm.Object
    let manager = RealmManager<Object> = RealmManager(configuration: nil,
                                                      fileUrl: nil)

Add or Update an object to existing model:

You can simply use this method to add or update an object to an existing model

Note: This repo assumes each object as unique, thus the model needs to have a primaryKey
    //object must be a subclass of Realm.Object
    RealmManager.addOrUpdate(object: object, 
                             completion: { (error) in
        //Code goes here

or if you need to have a configuration for your Realm instance

    var config = Realm.Configuration()
    let directory: URL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier:  
    config.fileURL = directory
    //Foo must subclass to Realm.Object
    let foo = Foo(description:"Bar")

    RealmManager.addOrUpdate(configuration: config, 
                             object: foo, 
                             completion: { (error) in
        //Code goes here

object can be an instance of Object,Array,Dictionary<AnyHashable,AnyObject>, or AnyObject.


Fetching an object from the Realm DB:

    //Foo must subclass to Realm.Object
    let foo = Foo(description:"Bar")
    RealmManager.fetch(condition: "description == '\(foo.description)'", 
                       completion: { (result) in
        //Your code can do anything with 'result' >:)


Map and Delete an object by using predicate:

    RealmManager.delete(object: nil,
                        condition: "description = \(foo.description)",
                        completion: { (error) in

        //Code goes here

or if you have the object and not need to map it:

    RealmManager.deleteObject(object: foo, 
                              completion: { (error) in
        //Code goes here


markcdb , [email protected]


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