神刀安全网

Realm reaches 1B users,100k active developers, launches version 1.0

Realm has released version 1.0 of its object-oriented database for iOS and Android.

Launched two years ago, Realm is intended to provide a simpler, more performant alternative to using on-device technologies such as SQLite or Core Data.

Realm’s technical team told InfoQ that among the noted changes in the latest release are an improved query language, with support for partial string matches, relationship traversal, multi-field sorting, and distinct matches. This joins other improvements, including a reduced library footprint by 70% on Android, that allows for smaller-sized apps to be shipped to consumers, and the introduction of Realm Configuration classes, to serve the increasing amount of apps that have multiple Realms.

Following on from its recent launch of Realm Xamarin, a reactive database for .NET developers, Realm 1.0’s changelog includes mentions of support for:

  • Apple’s Swift language, via Realm Swift
  • Carthage, Swift’s dependency manager
  • Apple’s watchOS and tvOS
  • RxJava on Android
  • Kotlin, the emerging language for Android app development

In the blog post 13,949 Commits and 6,148 Closed Issues Later: Thank You for Helping Realm Reach 1.0 the Realm team show the following Java inline code to demonstrate:

  // Define you model class by extending RealmObject public class Dog extends RealmObject {     private String name;     private int age;      // ... Generated getters and setters ... }  public class Person extends RealmObject {     @PrimaryKey     private long id;     private String name;     private RealmList<Dog> dogs; // Declare one-to-many relationships      public Person(long id, String name) {         this.id = id;         this.name = name;     }      // ... Generated getters and setters ... }  // Use them like regular java objects Dog dog = new Dog(); dog.setName("Rex"); dog.setAge(1);  // Create a RealmConfiguration that saves the Realm file in the app's "files" directory. RealmConfiguration realmConfig = new RealmConfiguration.Builder(context).build(); Realm.setDefaultConfiguration(realmConfig);  // Get a Realm instance for this thread Realm realm = Realm.getDefaultInstance();  // Query Realm for all dogs younger than 2 years old final RealmResults<Dog> puppies = realm.where(Dog.class).lessThan("age", 2).findAll(); puppies.size(); // => 0 because no dogs have been added to the Realm yet  // Persist your data in a transaction realm.beginTransaction(); final Dog managedDog = realm.copyToRealm(dog); // Persist unmanaged objects Person person = realm.createObject(Person.class); // Create managed objects directly person.getDogs().add(managedDog); realm.commitTransaction();  // Listeners will be notified when data changes puppies.addChangeListener(new RealmChangeListener<RealmResults<Dog>>() {     @Override     public void onChange(RealmResults<Dog> results) {         // Query results are updated in real time         puppies.size(); // => 1     } });  // Asynchronously update objects on a background thread realm.executeTransactionAsync(new Realm.Transaction() {     @Override     public void execute(Realm bgRealm) {         Dog dog = bgRealm.where(Dog.class).equals("age", 1).findFirst();         dog.setAge(3);     } }, new Realm.Transaction.OnSuccess() {     @Override     public void onSuccess() {       // Original queries and Realm objects are automatically updated.       puppies.size(); // => 0 because there are no more puppies younger than 2 years old       managedDog.getAge();   // => 3 the dogs age is updated     } });  

In the discussion Realm 1.0 on Hacker News, the mood around the major release was positive, with many users offering compliments and congratulations. In discussion around Realm’s closed source "core" user mahyarm referred commenters to the Realm FAQ

I see references to a “core” in the code, what is that?

The core is referring to our internal C++ storage engine. It is not currently open-source but we do plan on open-sourcing it also under the Apache 2.0 license once we’ve had a chance to clean it up, rename it, and finalize major features inside of it. In the meantime, its binary releases are made available under the Realm Core (TightDB) Binary License

Realm also reports with the 1.0 release a milestone of over 1 billion end-users on the iOS & Android apps that it powers.

Commenting on the news, Realm’s CEO Alexander Stigsen said, “It is thrilling to see how quickly we’ve grown and the caliber of companies that are using Realm to underpin their mobile infrastructure. To have reached a billion end users — a milestone so few companies reach — is a testament to the demand for our innovative approach to mobile data storage.”

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Realm reaches 1B users,100k active developers, launches version 1.0

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址