Timothy Marland

Build Delightful Mobile Experiences with Kotlin, Realm, and Atlas Device Sync

Stop writing complex sync logic. Build delightful, offline-first mobile apps with live objects, Kotlin, and Atlas Device Sync.

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.

Featured Partners

Related Articles

View all articles
DC
Daniel Cranney
Remote, Hybrid, or In-Office: What’s Really Best for Developers?
Five years ago, in the midst of a global pandemic, it seemed like we were at the beginning of a remote work revolution. At a time of huge uncertainty and mass layoffs impacting every industry, hitting tech particularly hard, companies scrambled to ad...
Remote, Hybrid, or In-Office: What’s Really Best for Developers?
DC
Daniel Cranney
Dev Digest 185: Hello Asia, Gaming is the Future & Vibe Scheming!
Inside last week’s Dev Digest 185 . 🌏 WeAreDevelopers Expands to South Asia 🏆 AI Darwin awards 🎨 Are you an AI Artist or AI engineer? 📘 Agents Directory and MCP Registry 🐍 Tracking malicious code in Python 🧬 Book: React sucks! 💬 Johanna Pirker Talks...
Dev Digest 185: Hello Asia, Gaming is the Future & Vibe Scheming!
DC
Daniel Cranney
Developers are Building the Cities of the Future
Smart cities envision a future where urban landscapes are seamlessly connected by cutting-edge technology, transforming the way people travel, work, communicate and engage in commerce. Developers and programmers find themselves in a novel position, d...
Developers are Building the Cities of the Future

From learning to earning

Jobs that call for the skills explored in this talk.

Android Kotlin Programmer

Android Kotlin Programmer

Plexus Tech
Municipality of Madrid, Spain

GIT
Kotlin
Unit Testing
Agile Methodologies
Continuous Integration
Android Developer

Android Developer

Realworks
Amsterdam, Netherlands

Junior
API
Java
JUnit
Kotlin
Android
+1
Android Developer

Android Developer

Realworks
Amsterdam, Netherlands

Junior
API
Java
JUnit
Kotlin
Android
+1
Android Developer

Android Developer

Cologne Intelligence
Frankfurt am Main, Germany

Remote
66-78K
Kotlin
Android
Unit Testing
+1