###アップデートしました
Xcode 10.0
Swift 4.2
Realm 3.12.0
#概要
目新しくもないんですが、RealmSwiftを使って、
なんちゃって家計簿的なサンプルを作ってみました。
概要しか記載してないので、ソース見たい方はどうぞ。
https://github.com/koji-nishida/RealmSwiftSample/tree/master/RealmSample
#1. 導入
- プロジェクト作成
まずはプロジェクトを作成。
今回は'RealmSample'としました。 - インストール
プロジェクト直下にて以下コマンド実行
$ pod init
'Podfile'というファイルが作成されるので、以下追記
pod 'RealmSwift'
インストール
$ pod install
#2. コード作成
###アプリ概要
・品名と金額を入力して「登録」ボタンを押すと、保存される
・登録日時が新しいものから表示する
ただそれだけっ...
###手順
・画面作る(storyboard)
こんな感じです
・Realmオブジェクト作成
サポートしている型や、Optional/非Optionalについては、公式?を参照下さい。
https://realm.io/jp/docs/swift/latest/#section-11
import RealmSwift
class Item: Object{
// 品名
@objc dynamic var name: String? = nil
// 金額
@objc dynamic var price = 0
// 登録日時
@objc dynamic var created = Date()
}
・保存
// 入力値をセット
let item:Item = Item()
item.name = self.textName.text
if ((self.textPrice.text?.characters.count)! > 0) {
item.price = Int(self.textPrice.text!)!
}
// 保存
let realm = try! Realm()
try! realm.write {
realm.add(item)
}
・一覧取得
override func viewDidLoad() {
super.viewDidLoad()
// デフォルトRealmを取得
let realm = try! Realm()
// 一覧を取得:金額を条件に、登録日時が新しい順でソート
self.itemList = realm.objects(Item.self).filter("price > 0").sorted(byProperty: "created", ascending: false)
}
と、だいぶ端折りましたが、これだけといえばこれだけです。
コードの詳細はgithub見ていただければと。
#3. 最後に
導入が簡単で、比較的直感的に使えて便利、といったところでしょうか。
色々な型に対応していて、ソートもできて、ページングの考慮もする必要がないらしいので。
Auto Incrementがなくて不便という記事は見かけましたが。
じっくり使ってみたわけではないので、かゆいところに手が届かない的なことも当然あるんでしょうかね?