/realm-draw

The official Realm Draw app used in promotional videos

Primary LanguageC#Apache License 2.0Apache-2.0

Realm Draw

A Collaborative Drawing App, where multiple users can draw to a shared canvas at the same time.

Screenshot

CI Status GitHub license

The demo application seen in the Realm Platform launch video, Realm Draw is a real-time collaborative drawing program available for Android, iOS and Xamarin. Any number of users may draw on a single shared canvas at any given moment with the strokes appearing on all devices in real time.

Features

  • Allows multiple users to contribute drawings to a shared canvas in real-time.
  • Canvas can be reset by shaking the device briefly.
  • Can connect to any running instance of Realm Object Server.

Requirements

iOS

  • iOS 9.0 and above
  • Xcode 8.3

Android

  • Android 4.0.3

Xamarin

  • Android 4.0.3
  • iOS 9.3

ROS

  • Realm Platform / Realm Object Server 2.0 and above

Realm Platform

This application demonstrates features of the Realm Platform and needs to have a working instance of the Realm Object Server version 2.x to make data available between instances of the Draw app. The Realm Object Server can be installed via npm as a node application for macOS or Linux. Please see the installation instructions. If you already got Node.js installed, it's a one-liner.

Realm Studio

Another useful tool is Realm Studio which is available for macOS, Linux, Windows and allows developers to inspect and manage Realms and the Realm Object Server. Realm Studio is recommended for all developers and can be downloaded from the Realm web site.

Building and Running

Follow the README files in the platform-specific subdirectory of this repository:

Connecting to the Realm Object Server

When launching the app each time, you'll be presented with a login form in order to connect to the right Realm Object Server instance.

For the server URL field, you may simply enter localhost if you're running out of the iOS Simulator with the Realm Object Server at the same time. For iOS devices running on the same network as that Mac, you can alt-click on the Wi-Fi icon in the macOS status bar to get the Mac's local IP address. You can then manually enter this into the server URL field on the iOS device.

You'll be required to create an admin account the first time you run an instance of the Realm Object Server. You may use this account when logging into Realm Draw by entering in the same username/password pair. Alternatively, you may also register new user accounts from the form by tapping the 'Register a new account' button.

Known Issues

The Android and iOS versions of the app will inter-operate; the Xamarin version currently can only share drawings with other copies of itself (compiled for either iOS or Android). This is due to a difference in the way the Xamarin platform handles its drawing canvas compared to the native iOS and Android code bases.

Contributing

See CONTRIBUTING.md for more details!

This project adheres to the MongoDB Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to community-conduct@mongodb.com.

License

Distributed under the Apache license. See LICENSE for more information.