Modern applications today attempt to reach a global audience in a network-connected world. However, there is demand for local storage and database capabilities in many devices and processes. Those capabilities should be fast, reliable and eventually scalable when it comes to sharing and syncing information.
SQLite was initially developed to solve a local access SQL solution with relational concepts. Having said that, most of today's mobile development will most likely use one of the popular frameworks operating as an ORM (Object to Relational Mapping) for SQLite, like Room for Android or Core Data for iOS. These frameworks manage the entire object to data store life cycle, which is comparable to Atlas Device Sync & SDKs', two key components of Atlas for the Edge.
In this article, we will show how the on-device database of the SDKs compares and surpasses SQLite frameworks (Room and Core Data) for the described local/mobile development challenges.
SQLite is a C-based library that allows applications to store and retrieve data from local files on devices via a SQL interface. SQLite was started as an open-source project in September 2000 and It is supported on a few platforms, mostly mobile devices and mobile/desktop operating systems.
However, it is maintained by a certain group of people and contribution is very limited and governed closely by the creators.
Apple’s Core Data and Android Room are frameworks used to manage the lifecycle of objects in a mobile application which often use SQLite as a local/on-device data store. These frameworks provide a structured way for developers to ensure that the data passing through their application is always up to date and in the correct format for whichever part of the stack it is in. Examples of this include updating a datapoint in the UI when it changes in the underlying database, or converting data types between those used in front-end languages and ones supported in the underlying database.
The Atlas Device SDKs are a part of MongoDB Atlas for the Edge, a solution to streamline the management of data generated across various sources at the edge, including mobile devices, on-premises data centers, and the cloud.
Each one of the SDKs provides, in the programming language of your choice, a fast, scalable on-device database, alternative to SQLite, that makes storing, querying, and syncing data simple for modern mobile applications.
The object-oriented data model enables developers to work directly with native objects – no ORMs or DAOs required. And built-in edge-to-cloud data sync lets developers easily backup, manage, and analyze mobile app data in the cloud, using the full power of MongoDB Atlas.
Atlas Device SDKs are open source and are available for most popular languages, frameworks, and platforms.
SQLite is a veteran in the mobile self-contained database world and therefore, developers with preference to SQL syntax with static schemas might prefer SQLite. However, as mentioned earlier, SQLite is usually not used on its own and will be a part of a Room or Core Data implementation. This added complexity and the need for an additional ORM layer will result in additional coding challenges and more dependencies introduced in your product.
With that said, offline-first and complex schema evolution with agile changes has become a wide challenge for lots of mobile applications and websites. Therefore, a majority of customers should consider the benefits of Realm’s modern solution over the legacy SQLite. If you require a scalable solution with high concurrently and offline synchronization, SQLite (Room and/or Data) might not be enough for your needs.
The real question should be why not use the SDKs for developing local or/and offline sync databases? The SDKs are comparable to Room and Core Data in terms of use cases it serves, and offers some additional features that bring extra value to your application.
Mobile development is constantly evolving, requiring new capabilities and features as user trends change. Having a reactive datastore with a flexible schema lets developers make changes fast, and Atlas Device Sync seamlessly syncs those changes across devices in real time.
Additionally, Atlas Device Sync users can easily take advantage of Atlas App Services that include serverless functions, triggers, a GraphQL API, HTTPS Endpoints and more. These services make Atlas Device SDKs + Atlas App Services a compelling choice for mobile developers looking to modernize mobile workloads and ensure scalable, speedy go-to-markets.
Let's look at a simple initial code snippets to query each one of the database implementations for data of Planet Earth:
As you can see, the SDKs' code is much lighter and method oriented. It allows object-oriented languages and frameworks to utilize it with method based access, unlike the Room and Core Data packages which use SQL strings and are susceptible to untidy code and SQL injections.
Let's cover some of the key comparison points.
The Atlas Device SDKs combined with Atlas App Services offer a modern and robust mobile database solution, which is superior to SQLite with Core Data and/or Room in many areas. It allows users to build cross-platform, offline-first applications backed by the entire Atlas for the Edge and MongoDB Atlas cloud platform.
Try the Atlas Device SDKs now to build modern mobile data-driven applications. See the following tutorials and links for more information: