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

I started my career developing real-time database software before eventually moving into product management for MySQL/Oracle. In 2015, I jumped at the chance to

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