A Reactive Platform for Mobile Apps: Introducing Realm Professional Edition
At Realm, our mission is to help developers build better apps faster. We have a vision for a much more powerful data layer for the mobile internet, where developers can easily build native mobile apps using live objects, where realtime data synchronization just happens automatically, and where server-side logic can be easily triggered by data changes, enabling more sophisticated features and integrations. And we’ve been hard at work making that a reality by constantly improving the Realm Mobile Database as well as the components and features of the Realm Mobile Platform.
We’re excited to share two pieces of news that advance that vision, and that make it easier for more developers to use Realm in their apps. Today we are announcing the new Realm Mobile Platform Professional Edition, a product that brings the power of the Realm platform to a larger group of developers at a new price point. We are also very happy to unveil the results of an ongoing collaboration with IBM: Scanner, a cool new Professional Edition demo app that integrates Realm with IBM Watson and provides developers with an open-source template for building reactive mobile apps that incorporate sophisticated image processing.
Realm Mobile Platform Professional Edition
Professional Edition is a new version of the Realm Mobile Platform designed for mid-sized apps and businesses. It shares all the capabilities of the free Developer Edition—notably, automatic realtime data sync—but adds key features like event handling and server-side data access (more on these below). We’ve built Professional Edition in response to customers who need these features to build the realtime apps they want to build, but who don’t yet need the high scale and other large company features of the Enterprise Edition. You can download a copy of PE today for a free 60-day trial.
The launch of Professional Edition establishes a pattern we plan to follow for a very long time: continually moving Realm features and functionality downstream, and inventing new pricing and packaging to allow greater access to more developers. We now have three versions of Realm Mobile Platform: Developer Edition, which is entirely free and available to anyone; Professional Edition, more robustly featured, aimed at medium-sized businesses, and capable of handling tens of thousands of concurrent users, starting at $1500 per month; and the fully-featured Enterprise Edition, which can handle even the largest number of users and most sophisticated apps, and is priced based on scale of use case. We work very closely with every potential customer to understand their needs, so if you have questions about editions and pricing, please reach out.
Introducing Scanner: Our Collaboration with IBM
When we shared an early version of Professional Edition with some of our contacts at IBM, they got very creative, very quickly. The result was Scanner, a Realm demo app that allows users to take a picture of anything and then quickly get a result based on sophisticated server-side image processing, including image classification, face detection, and text recognition. The app relies on the key features of Professional Edition–realtime data synchronization and event processing–as well as IBM’s Watson Visual Recognition API. You could imagine using code like this for building a variety of realtime features and apps: location identification for VR applications, face recognition for security, categorizing images for industrial and scientific applications, reading labels in retail applications, and more. But don’t spend too much time imagining, get to hacking: The demo application and all of its code (Swift and Android) are available as a free open-source project; you’ll also find there a tutorial that serves as an ideal starting point. The IBM team has also blogged about our collaboration, and has included a video of the app in action.
The pattern behind Scanner is a very common one amongst Realm Mobile Platform customers; we call it API mobilization (it’s sometimes also referred to as “API bridging”). It’s utilized when you need a highly responsive, great UX mobile app, but that app also needs to connect to and stay fully synchronized with existing APIs–could be a modern service like IBM Watson, but it’s also very often a legacy system inside the organization. The challenge for the mobile developer is that all network requests are asynchronous and can fail. We encounter many organizations with complex business logic requiring multiple API calls in a specific order. Managing the network requires additional code to orchestrate these requests, including handling the many failure scenarios. While this is a challenge on its own, each network request requires converting data into a new format, such as JSON. Again, further code is required to deal with the pain of serialization/deserialization, and bugs can easily appear when the data or schema changes.
The API mobilization pattern utilizes the Realm Platform as middleware. The mobile application uses the Realm Database (iOS or Android) on the client side, which is automatically kept in sync with the server-side data thanks to the Realm Platform. On the server side, the Realm Platform uses event handling to trigger the Watson API any time it notices a data change from the app (i.e., a new image is added); the returned data from Watson after processing the image is pushed back into Realm on the server side, and immediately synchronized with the client side. This removes the need for networking or data conversion code in your application. Mobile developers can work directly with objects in their native language relying on the Realm Database locally while the Realm Platform handles all the complexity of transferring the data.
Get Started Now
As always, we are most excited about what developers can build with Realm, so we invite you to download and install a free trial of Professional Edition, set it up with Scanner or your own app, and let us know what you think!