Porting an app that’s using Core Data to Realm is very simple. If you have an app that already uses Core Data, and have been considering the move to Realm, this step-by-step guide is for you! The way that your code interacts with Core Data and Realm is very different depending on whether your app is based on SwiftUI or UIKit-this guide assumes SwiftUI (a UIKit version will come soon.)

You’re far from the first developer to port your app from Core Data to Realm, and we’ve been told many times that it can be done in a matter of…


Realm partitioning can be used to control what data is synced to each mobile device, ensuring that your app is efficient, performant, and secure. This article will help you pick the right partitioning strategy for your app.

MongoDB Realm Sync stores the superset of your application data in the cloud using MongoDB Atlas. The simplest strategy is that every instance of your mobile app contains the full database, but that quickly consumes a lot of space on the users’ devices and makes the app slow to start while it syncs all of the data for the first time. …


Apple published a great tutorial to teach developers how to create iOS apps using SwiftUI. I particularly like it because it doesn’t make any assumptions about existing UIKit experience, making it ideal for developers new to iOS. That tutorial is built around an app named “Scrumdinger,” which is designed to facilitate daily scrum meetings.

Apple’s Scrumdinger implementation saves the app data to a local file whenever the user minimizes the app, and loads it again when they open the app. It seemed an interesting exercise to modify Scrumdinger to use Realm rather than a flat file to persist the data…


In 2020, MongoDB partnered with the WildAid Marine Protection Program to create a mobile app for officers to use while out at sea patrolling Marine Protected Areas (MPAs) worldwide. We implemented apps for iOS, Android, and web, where they all share the same Realm back end, schema, and sync strategy. This article explains the data architecture, schema, and partitioning strategy we used. If you’re developing a mobile app with Realm, this post will help you design and implement your data architecture.

MPAs-like national parks on land-set aside dedicated coastal and marine environments for conservation. WildAid helps enable local agencies to…


In my last post, I walked through how to integrate Realm into a mobile chat app in Building a Mobile Chat App Using Realm — Integrating Realm into Your App. Since then, the Realm engineering team has been busy, and Realm-Cocoa 10.6 introduced new features that make the SDK way more “SwiftUI-native.” For developers, that makes integrating Realm into SwiftUI views much simpler and more robust. This article steps through building the same chat app using these new features. …


The Realm Mobile Database makes it much faster to develop mobile applications. MongoDB Realm Studio is a desktop app that lets you view, manipulate, and import data held within your mobile app’s Realm database.

This article steps through how to track down the locations of your iOS Realm database files, open them in Realm Studio, view the data, and make changes. …


This article is a follow-up to Building a Mobile Chat App Using Realm — Data Architecture. Read that post first if you want to understand the Realm data/partitioning architecture and the decisions behind it.

This article targets developers looking to build the Realm mobile database into their mobile apps and use MongoDB Realm Sync. It focuses on how to integrate the Realm-Cocoa SDK into your iOS (SwiftUI) app. Read Building a Mobile Chat App Using Realm — Data Architecture This post will equip you with the knowledge needed to persist and sync your iOS application data using Realm.

RChat is…


This article targets developers looking to build the Realm mobile database into their mobile apps and (optionally) use MongoDB Realm Sync. It focuses on the data architecture, both the schema and the partitioning strategy. I use a chat app as an example, but you can apply the same principals to any mobile app. This post will equip you with the knowledge needed to design an efficient, performant, and robust data architecture for your mobile app.

RChat is a chat application. Members of a chat room share messages, photos, location, and presence information with each other. The initial version is an…


I’m relatively new to building iOS apps (a little over a year’s experience), and so I prefer using the latest technologies that make me a more productive developer. That means my preferred app stack looks like this:

This article presents a simple task management app that I built on that stack. To continue my theme on being productive (lazy), I’ve borrowed heavily (stolen) from MongoDB’s official iOS Swift tutorial:

  • I’ve refactored the original front end, adding Combine for event management, and replacing the UIKit ViewControllers with Swift views.
  • The back end Realm app is entirely unchanged. Note that once…

Andrew Morgan

Andrew is a Staff Engineer and Developer Advocate at MongoDB. His current role is to develop and build content around mobile apps using Realm.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store