Nora alternatives and similar libraries
Based on the "Database" category.
Alternatively, view Nora alternatives based on common mentions on social networks and blogs.
-
MMKV
An efficient, small mobile key-value storage framework developed by WeChat. Works on Android, iOS, macOS, Windows, and POSIX. -
GRDB.swift
A toolkit for SQLite databases, with a focus on application development -
YapDatabase
YapDB is a collection/key/value store with a plugin architecture. It's built atop sqlite, for Swift & objective-c developers. -
ParseAlternatives
GraphQLite is a toolkit to work with GraphQL servers easily. It also provides several other features to make life easier during iOS application development. [Moved to: https://github.com/relatedcode/GraphQLite] -
Couchbase Mobile
Lightweight, embedded, syncable NoSQL database engine for iOS and MacOS apps. -
FCModel
An alternative to Core Data for people who like having direct SQL access. -
UserDefaults
Simple, Strongly Typed UserDefaults for iOS, macOS and tvOS -
CTPersistance
iOS Database Persistence Layer with SQLite, your next Persistence Layer! -
Unrealm
Unrealm is an extension on RealmCocoa, which enables Swift native types to be saved in Realm. -
Prephirences
Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state. UserDefaults -
RealmIncrementalStore
Realm-powered Core Data persistent store -
UserDefaultsStore
Why not use UserDefaults to store Codable objects 😉 -
PredicateEditor
A GUI for dynamically creating NSPredicates at runtime to query data in your iOS app. -
realm-cocoa-converter
A library that provides the ability to import/export Realm files from a variety of data container formats. -
SecureDefaults
Elevate the security of your UserDefaults with this lightweight wrapper that adds a layer of AES-256 encryption -
MySQL
A stand-alone Swift wrapper around the MySQL client library, enabling access to MySQL servers. -
PersistenceKit
Store and retrieve Codable objects to various persistence layers, in a couple lines of code! -
PersistentStorageSerializable
Swift library that makes easier to serialize the user's preferences (app's settings) with system User Defaults or Property List file on disk. -
YapDatabaseExtensions
YapDatabase extensions for use with Swift -
TypedDefaults
TypedDefaults is a utility library to type-safely use NSUserDefaults. -
MongoDB
A stand-alone Swift wrapper around the mongo-c client library, enabling access to MongoDB servers. -
PostgreSQL
A stand-alone Swift wrapper around the libpq client library, enabling access to PostgreSQL servers. -
ObjectiveRocks
An Objective-C wrapper for RocksDB - A Persistent Key-Value Store for Flash and RAM Storage. -
Storez
💾 Safe, statically-typed, store-agnostic key-value storage written in Swift! -
FileMaker
A stand-alone Swift wrapper around the FileMaker XML Web publishing interface, enabling access to FileMaker servers.
Appwrite - The open-source backend cloud platform
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Nora or a related project?
Popular Comparisons
README
Nora is a Firebase abstraction layer for working with FirebaseDatabase and FirebaseStorage.
Stop spending all that time cleaning up your view controllers and trying to write reusable Firebase code.
Let Nora handle that for you. Your time is better spent on what you do best. Writing great Apps!
Simply put, working with Firebase just got whole lot easier.
Installation
CocoaPods Recommended
pod 'Nora'
Example
Working with FirebaseDatabase
After setting up a target making requests is simple.
let database = DatabaseProvider<Users>()
database.request(.getUser(id: "1")) { result in
switch result {
case .success(let response):
let snapshot = response.snapshot
case .failure(let error):
print(error.localizedDescription)
}
}
Database Response Decoding
Provide a JSON initializer for your custom types and easily convert the database response:
let database = DatabaseProvider<Users>()
database.request(.getUser(id: "1")) { result in
switch result {
case .success(let response):
let user = try? response.mapTo(User.init)
case .failure(let error):
print(error.localizedDescription)
}
}
Working with FirebaseStorage
let storage = StorageProvider<Avatars>()
let avatarData = Data()
var meta = FIRStorageMetadata?
storage.request(.upload(avatarData, meta)) { result in
switch result {
case .success(_):
print("Upload Success!")
case .failure(let error):
print(error.localizedDescription)
}
}
Documentation (In Progress)
DatabaseProvider Documentation
Get involved
You can contribute to this project in more ways than just code:
- Improving the README
- Improving Documentation
- Bug reporting
- New feature suggestions
- Answering questions
We really encourage everyone to get involved in open source.
Your feedback is always welcome and much appreciated!
REGARDLESS, of your level of experience.
You will never be put down for having an opinion. So take a chance, open a pull request, or submit that issue!
Inspiration
This project was inspired and based off the Moya networking abstraction layer in Swift.
Check out their project if you're using traditional networking!
License
Nora is released under an MIT license. See LICENSE.md for more information.
*Note that all licence references and agreements mentioned in the Nora README section above
are relevant to that project's source code only.