Create Reactive Mobile Apps in a Fraction of the Time

In this short interview at Serverlessconf in London, Adam from Realm gives a short description as to how Realm helps mobile developers speed up the development process by eliminating much of the backend work.

Q:Hey Adam, can you tell us a little more about Realm?

Realm is basically a couple things. We got started several years ago, by building a client database embedded in a mobile app, basically as a replacement for SQL lite. Mobile developers embed our SDK in their app to manage state and store data offline. More recently though, we’ve launched another product called “Realm Object Server” that works alongside the client database to automatically synchronize changes that could apply to the database, to the server, and to other devices that might be sharing the data.

Get more development news like this

Q:So Realm is a cross mobile platform, developer platform for building what type of apps particularly?

So, the database is a C++ code base and we make different versions for all the different mobile platforms. There’s Swift, Objective-C, Java, JavaScript, .NET, so you can use it in pretty much all the major mobile platforms and it’s very capable in terms of all the different use cases supporting lots of different data types. So you can store all sorts of different data for whatever the use case. In terms of the data synchronization, Realm is also designed to work within your existing infrastructure, so you can use it to power advanced functionality like real time collaboration between users, such as real time drawing collaboration between two users, making it great for gaming, etc.

Realm also helps solve more mundane use cases, basically acting as a REST replacement. So we hear a lot of challenges from companies that just feel like their mobile development productivity is slow because their mobile developers spend an inordinate amount of their time writing error handling and stuff associated with any sort of networking or adjacent deserialization, serialization, etc. The realm mobile platform can abstract all of that away since it’s an object database, that’s running locally on the client. The mobile developer just has to worry about local state and applying changes locally in a synchronous manner, reacting to changes that come in and then our SDK with the server automatically synchronizes those changes. It simplifies mobile development.

The server application is not a service; it can be run on the cloud, but it’s maintained by the actual team, not us, and it can integrate into any existing infrastructure.

Q:Do you offer it as a cloud service as well or do you just offer the platform and then people can run it up in their own cloud environment if they want to?

People run it on their own, we don’t offer a cloud service. The client database is open source, Apache license, so you can use it stand alone, it doesn’t need the server application to actually function.

For the server application, there’s a developer version that’s free to use indefinitely that has some limitations. You can’t really access any of the data server side but it can do device to device sync, and user data back up. The enterprise edition of the object server is a Linux application and has an annual license fee associated with it.

Q:Who do you find using your service the most? Is it enterprise customers making internal applications or are we talking about people writing the next biggest, latest greatest thing in the app store?

It’s a mix, but the use cases that we really get excited with are more on the consumer side where you’re really focused on user experience trying to do some sort of real time collaboration. We do have use cases that just have a lot of legacy infrastructure that they want to use the object server and the data sync as almost like their mobile middleware or bridge, just to improve their productivity.

So there’s both use cases, but the more common is more on the consumer, forward thinking use case.

Q:So it’s that story again of, you do the heavy lifting of all that data backend and then the developer can get on with making their app awesome.

On the simplest level, that’s the pitch. We want to enable developers to be able to build better apps that have better functionality and do that in faster time. So by providing developer experience that is just simpler to use with less error situations we really believe that it pushes developer productivity to a new level.

Q:Where can people find out more information about Realm?

On our website and it’s very easy to get started, there’s a five minute getting started on your mac, you can run the server locally and there’s a couple pre built applications. The Linux install is a couple lines, just copy and paste so it’s very easy to get up and running. Being open source the database is available on our GitHub.

About the content

This content has been published here with the express permission of the author.

Adam Fish

Adam is the Director of Product at Realm, where he manages the product development for currently supported mobile platforms and upcoming new products. He has a strong background in entrepreneurship and software development, having previously co-founded Roobiq, a mobile-first sales productivity app used by sales teams worldwide.

4 design patterns for a RESTless mobile integration »