Hôm nay chúng ta sẽ tìm hiểu về Realm một cơ sở dữ liệu mới được xây dựng để chạy trên thiết bị di động, máy tính bảng,vvv. Realm sử dụng rất it tài nguyên, dễ sử dụng và việc tương tác với dữ liệu nhanh hơn bất kể những sự lựa chọn hiện tại.
SWIFT:
// Using Realm in Swift
var mydog = Dog(); mydog.name = "Rex"; mydog.age = 9
let realm = RLMRealm.defaultRealm()
realm.beginWriteTransaction()
realm.addObject(mydog)
realm.commitWriteTransaction()
var results = Dog.objectsWhere("name contains 'Rex'")
Không giống như một số các database khác, bạn có thể sử dụng trực tiếp bên trong ứng ựng IOS của ban (hoặc là với những ứng dụng Android) để lưu và truy vấn dữ liệu cục bộ trên thiết bị, cho phép bạn xây dựng các ứng dụng nhanh hơn.
Why
Chúng ta hãy cùng xem một số các database cũng như các database đang là đối thủ lớn của Realm
Nếu bạn là một lập trình viên di động thì SQLite là một sự lựa chọn hàng đầu vào năm 2000. Nó được sử dụng cho hầu hết các ứng dụng cho đến bay giờ, hoặc thông qua nhiều thư viện khác bằng việc wrapper nó như là Couchbase Lite, Core Data, ORMLite, vv...
SQLite thật sự là cách mạng khi nó ra đời năm 2000 nhưng việc phát triển ứng dụng di động bây giờ thực tế đã khác rất nhiều, và những khái niệm của chúng ta về di động và ứng dụng cũng đã thay đổi. Những người phát triển Realm đã nhìn thấy cơ hội cho việc cung cấp một khởi đầu mới về dữ liệu trên di động với một API đơn giản hơn và một cấu trúc được cải tiến để dành cho thiết bị di động chứ không phải như các database khác mục đích ban đầu không dành cho di động.
Như các bạn biết việc nở rộ về phát triển ứng dụng trên điện thoại đã được khoảng trên 7 năm nhưng nó vẫn là một hương đi còn nhiều tiền nằng. Các nhà phát triển Realm trong sự hi vọng rằng nó sẽ một trong những điều cần thiết cho bạn, và hiện tại Realm đã có thể sử dụng trên các trên IOS, Android,....
Simple
Thiết kế của Realm để giúp bạn dễ sử dụng: dữ liệu trực tiếp được thao tác là đối tượng và truy vấn bằng code. Realm chỉ làm việc với 3 class chính là (Object, Arrays, Realms) và 1 class (Migrations):
SWIFT
/* Dog.swift */
class Dog: RLMObject {
var name = ""
var age = 0
}
/* Elsewhere */
var mydog = Dog()
mydog.name = "Rex"; mydog.age = 9
println("Name of dog: \(mydog.name)")
let realm = RLMRealm.defaultRealm() // Access default realm (database) on disk
// Transactions for full ACID guarantees
realm.beginWriteTransaction()
realm.addObject(mydog)
realm.commitWriteTransaction()
// You can safely transact across threads as well
// Query
var results = Dog.objectsWhere("name contains 'x'")
// Link objects in a Graph
var person = Person()
person.name = "Tim"
person.dogs.addObject(mydog)
Hơn nữa, Realm cung cấp một số các chức năng manh mẽ khác bao gồm, object relationships, nó có nghĩa là bạn có thể ánh xạ một nhiều hoặc nhiều nhiều (1-n hoặc n-n). Realm cung cấp khả năng có thể di chuyển dữ liệu sang thiết bị khác như vậy bạn dễ dàng có thể cập nhật dữ liệu của bạn.
Realm là “safe across threads” (khái niệm này sẽ được đề cập đến ở bài sau), vậy bạn có thể dễ dàng đồng bộ các tác vụ trong ứng dụng của bạn.
Fast
Chúng ta đã thấy nhiều thư viện cố gắng cung cấp các chức năng và tốc độ giống SQLite.Nhưng trái lại Realm nhanh hơn một số xử lý SQLite.
Counts
Queries
Inserts
Các biểu đồ này được chạy trên iPad Air sử dụng phiên bản 15/9/2015
Hiệu xuất của Realm đến từ việc nhiều năm phát triển trên một thiết kế lõi C++ được chỉnh sử để phù hợp với nhu cầu của nhiều thiết bị, nhờ áp dụng bit-packing, caching, vectorization và zero-copy architecture để nhận được lời ích tuyệt vời về việc sử dụng bộ nhớ và tốc độ.
Nguồn bài viết: https://realm.io
Tham khảo:
Hiện nay tại TechMaster đang có 3 khóa học về lập trình iOS, một khóa dạy bằng ngôn ngữ Objective-C, một khóa bằng ngôn ngữ Swift và một khoá Swift - Kết nối REST Web Service. Hình thức học tập rất linh hoạt cho bạn lựa chọn và sẽ có mức học phí khác nhau tùy theo bạn chọn học online, offline hoặc FlipLearning (kết hợp giữa online và offline). Ngoài ra bạn cũng có thể tham gia thực tập toàn thời gian tại TechMaster để rút ngắn thời gian học và nhanh chóng đi kiếm việc làm.
Khóa học lập trình di động tại Techmaster:
Để cài đặt MacOSX lên phần cứng không phải Apple liên hệ chuyên gia cài Hackintosh:
- Nguyễn Minh Sơn: 01287065634
- Huỳnh Minh Sơn: 0936225565
- Website: caidatmacos.com
Bình luận