Realmを用いて合コンで活躍するアプリを開発した
今日の話
Realm使いやすい!おすすめ!ってはなしと合コンでは是非我々のアプリ使ってって話
Realmとは
CoreDataやSQLiteに変わる次世代Mobileデータベースです。
Realm is a mobile database: a replacement for SQLite & Core Data
メリット
- Androidに対応していること→i/A際を意識せずDB設計できること
- SQLiteより速いらしい
- PrimaryKeyがある。
- NSManagedObjectContextなしでオブジェクトが生成できる。
- RLMResultsが良い
- NSPredicate、NSCompoundPredicateを利用してクエリを作れる
- RealmBrowserでDBをGUIで確認できる
デメリット
- オートインクリメントがない
- FetchRequestが弱い→limitとかない
導入方法
Podfile内に下記を追記 pod install
pod 'RealmSwift' #Objective-Cなら pod 'Realm'
使い方
モデル定義
class Person: Object { // オプショナル使える dynamic var name: String? = nil dynamic var id = 0 //数値をオプショナルで扱う場合はRealmOptionalでラップする let age = RealmOptional<Int>() //プライマリーキーの設定も可能 override static func primaryKey() -> String? { return "id" } }
CREATE
//Realmオブジェクト作って、write使って書き込む let realm = try! Realm() try! realm.write() { //オブジェクト生成 var person = realm.create(Person.self, value: ["Jane", 27]) //プロパティの設定 person.age.value = 28 }
READ
let realm = try! Realm() // 文字列で検索条件を指定します var tanDogs = realm.objects(Dog).filter("color = 'tan' AND name BEGINSWITH 'B'") //Result型で返ってくるので、ここからまたフィルタリングできる let predicate = NSPredicate(format: "name CONTAINS %@", "C") let tanDogs2 = tanDogs.objects(Dog).filter(predicate)
UPDATE
// 1.トランザクションを開始して、オブジェクトを更新する try! realm.write { author.name = "Thomas Pynchon" } // 2.プライマリーキー設定している時 // 以前に保存したものと同じプライマリキーを持つBookオブジェクトを作成する let cheeseBook = Book() cheeseBook.title = "Cheese recipes" cheeseBook.price = 9000 cheeseBook.id = 1 // id = 1のBookオブジェクトの値を更新する // ここでid = 1のBookオブジェクトがRealmに保存されていない場合は、新しいBookオブジェクトが追加されます。 try! realm.write { realm.add(cheeseBook, update: true) }
→プライマリーキーを設定したが、なぜかエラーが出てアップデートできなかった。 そのため、1案を採用
DELETE
// トランザクションを開始してオブジェクトを削除します try! realm.write { realm.delete(cheeseBook) } // Realmに保存されているすべてのオブジェクトを削除します。 try! realm.write { realm.deleteAll() }
Realmまとめ
- NSManagedObjectContextとか使わないで、CRUDできるのでCoreDataなどに比べて初期導入コストが低い
- i/A差異が生まれないので、DB定義書を一つで管理できる→保守運用を考えるとかなりありがたい
フィーリングマッチについて
合コンをした際、「あの子は誰が好きなんだろー?知りたいなー」とか必ず思うと思います。 フィーリングマッチはその欲望を叶えます。
使い方
- 合コンの参加者を登録します。
2.意中の相手を選びます。
3.結果を見ます
マッチング相手は完全に非公開
誰と誰がマッチングしたかは非公開です。
何組マッチングしたかだけ知ることができます。
そこからはお酒を飲みながら、探りあいましょう
いかがでしょうか?
操作も簡単、プライバシーも守ります。
飲み会が盛り上がること間違いなし!!!