Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality...

23
Realm Mobile Platform Ehsan Rezaie @ewerx https://ewerx.ca

Transcript of Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality...

Page 1: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Realm Mobile Platform

Ehsan Rezaie@ewerx

https://ewerx.ca

Page 2: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Local Persistence

● Store user data● Cache generated/fetched data● Solutions

○ Documents○ SQLite○ CoreData○ Couchbase○ Realm Mobile Database

Page 3: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Cloud Storage

● Synchronization (1 user, multiple devices)● Collaboration/sharing (multiple users)● Remote data sources (content delivery)● Multiple apps/platforms● Solutions

○ Custom backend (database + API)○ iCloud + CoreData (deprecated)○ CloudKit○ Parse○ Firebase○ Couchbase Server○ Realm Mobile Platform

Page 4: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

● Data marshalling (serialization)● Data transport● Synchronization

How about both?

Page 5: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Hindsight v1.x

● Priorities○ Full offline functionality○ Cloud sync between devices○ No accounts/login

● Implementation○ CoreData○ iCloud + Ensembles

● Forced Obsolescence ○ watchOS 2+○ iCloud deprecation○ Objective-C

Page 6: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Hindsight v2.0

● Swift 3● watchOS 3● Full offline functionality● Automatic cloud sync● No explicit login● Seamless migration for existing users

Page 7: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Comparison

CloudKit

Seamless auth Apple runs the servers

Separate data model Apple devices only No sync features

JavaScript API Real-time update via

sockets / APNS

Custom Server

Full control Server side logic Platform-agnostic

Separate data model Data transport layer Maintain server No sync features

Real-time update via sockets / APNS

Firebase

NoSQL → no models Google runs the

servers Real-time updates via

SDK Multi-platform

Some offline persistence

Some server side logic

Realm Mobile Platform

Shared models Automatic sync Seamless auth

(CloudKit) Real-time updates via

SDK Multi-platform

Maintain server

New & untested Server logic in

Professional Edition ($)

Page 8: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Realm Mobile Platform

Page 9: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

The Package

● Realm Mobile Database○ iOS/watchOS (Swift or Objective-C)○ Android (Java)○ ReactNative (JavaScript)○ Xamarin (C#)

● Realm Object Server○ macOS○ Linux

● Realm Browser○ macOS

Page 10: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Realm Mobile Database

Page 11: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Models

Page 12: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Queries

Page 13: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Writes

Page 14: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Notifications

Page 15: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Threads

● One instance - one thread

Page 16: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Initialization

● Nothing to do unless changing default settings or applying migrations

Page 17: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Realm Object Server

Page 18: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Installation

Page 19: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Authentication (iCloud)

Page 20: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Local/Cloud Database Sync

Page 21: Realm Mobile Platform - Amazon Web Services€¦ · Swift 3 watchOS 3 Full offline functionality Automatic cloud sync No explicit login Seamless migration for existing users. Comparison

Hindsight v2.0

● Remove CoreData / iCloud / Ensembles● Rewrite models, queries, writes w/ Realm● Add CoreData migrator● Add authentication logic● Add sync toggle logic● Setup production server