Skip to content

a14n/dart-google-drive-realtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dart Google Drive Realtime

This project is a library to use Google Drive Realtime API from dart scripts. It uses JS Interop library and its scoped approch to prevent memory leaks. You can have a look at Js Interop documentation for more informations.

Usage

To use this library in your code :

  • add a dependency in your pubspec.yaml :
dependencies:
  google_drive_realtime: ">=0.0.1 <1.0.0"
  • add import in your dart code :
import 'package:google_drive_realtime/google_drive_realtime.dart';

// for databinding part
import 'package:google_drive_realtime/google_drive_realtime_databinding.dart';

How to

Define custom collaborative objects

Build a Collaborative Data Model explains how to define custom objects in javascript. With this package, you can do almost the same things.

  • Define your own CollaborativeObject : it's mainly a wrapper of a javascript object. The registerType() static function allows to define the type.
class Task extends rt.CollaborativeObject {
  static const NAME = 'Task';

  /**
   * Register type as described in https://developers.google.com/drive/realtime/build-model#registering_and_creating_custom_objects
   * This method must be call only one time before the document is load.
   */
  static void registerType() {
    js.context.Task = new js.Callback.many((){});
    rtc.registerType(js.context.Task, NAME);
    js.context.Task.prototype.title = rtc.collaborativeField('title');
    js.context.Task.prototype.done = rtc.collaborativeField('done');
  }

  /// create new collaborative object from model
  Task(rt.Model model) : this.fromProxy(model.create(NAME).$unsafe);

  String get title => $unsafe.title;
  bool get done => $unsafe.done;
  set title(String title) => $unsafe.title = title;
  set done(bool done) => $unsafe.done = done;
}

Have a look on custom-task example for more details.

  • Register this type before the document is loaded by calling registerType().

License

Apache 2.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •