
Timothy Marland
Sep 27, 2023
Build Delightful Mobile Experiences with Kotlin, Realm, and Atlas Device Sync

#1about 1 minute
The challenge of building offline-first mobile apps
Users expect a fast, reactive experience which requires local data and a complex, custom-built synchronization layer to a primary database.
#2about 3 minutes
The complexity of building a custom sync solution
Building a custom synchronization layer involves object-relational mapping, error handling, and conflict resolution, which is undifferentiated heavy lifting.
#3about 4 minutes
Introducing Realm and Atlas Device Sync for mobile
Realm is an object-oriented mobile database with live objects, while Atlas Device Sync provides an out-of-the-box synchronization layer.
#4about 1 minute
A sample architecture for an online retail application
An online retail example demonstrates how GraphQL, Kafka, and Atlas Device Sync can all connect different services to a central MongoDB Atlas database.
#5about 2 minutes
Understanding the mechanics of Atlas Device Sync
Changes are written locally, sent via websocket, converted to MongoDB documents, and synchronized using operational transforms to handle conflicts.
#6about 2 minutes
Implementing granular data permissions and access control
Atlas Device Sync allows for defining specific read and write permissions at the document and even field level for different user roles.
#7about 2 minutes
Using data ingest for one-way IoT data flow
The data ingest feature is optimized for one-way data flows from sources like IoT sensors, skipping conflict resolution for higher efficiency.
#8about 4 minutes
Setting up a sample real-time sync application
A walkthrough shows how to create a new application from a template in the MongoDB Atlas UI and pull the starter code using the Realm CLI.
#9about 2 minutes
Demonstrating real-time and offline data synchronization
A live demo with a to-do list app on two devices shows how data syncs instantly online and automatically resolves changes after a period of being offline.
#10about 2 minutes
Demonstrating dynamic permission rule enforcement
The demo shows how server-side permission rules prevent unauthorized writes and how changing a rule in the cloud immediately affects client behavior.
Related jobs
Jobs that call for the skills explored in this talk.
9 days ago
Android Developer – Mobile Engineering (w/m/d)

ING Deutschland
Intermediate
today
Principal Backend Engineer (Node.js)

Almedia
Berlin, Germany
Senior
today
Junior Python Backend / GenAI Support Intern

Eltemate
Amsterdam, Netherlands
Junior