Alternatives to Android Room logo

Alternatives to Android Room

SQLite, GreenDAO, Realm, Firebase, and DBFlow are the most popular alternatives and competitors to Android Room.
214
266
+ 1
3

What is Android Room and what are its top alternatives?

It provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite. Apps that handle non-trivial amounts of structured data can benefit greatly from persisting that data locally. The most common use case is to cache relevant pieces of data.
Android Room is a tool in the Database Tools category of a tech stack.

Top Alternatives to Android Room

  • SQLite
    SQLite

    SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file. ...

  • GreenDAO
    GreenDAO

    It is an open source Android ORM making development for SQLite databases fun again. It relieves developers from dealing with low-level database requirements while saving development time. ...

  • Realm
    Realm

    The Realm Mobile Platform is a next-generation data layer for applications. Realm is reactive, concurrent, and lightweight, allowing you to work with live, native objects. ...

  • Firebase
    Firebase

    Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds. ...

  • DBFlow
    DBFlow

    It is fast, efficient, and feature-rich Kotlin database library built on SQLite for Android. It utilizes annotation processing to generate SQLite boilerplate for you and provides a powerful SQLite query language that makes using SQLite a joy. ...

  • Hibernate
    Hibernate

    Hibernate is a suite of open source projects around domain models. The flagship project is Hibernate ORM, the Object Relational Mapper. ...

  • MySQL
    MySQL

    The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. ...

  • PostgreSQL
    PostgreSQL

    PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. ...

Android Room alternatives & related posts

SQLite logo

SQLite

19.1K
535
A software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine
19.1K
535
PROS OF SQLITE
  • 163
    Lightweight
  • 135
    Portable
  • 122
    Simple
  • 81
    Sql
  • 29
    Preinstalled on iOS and Android
  • 2
    Free
  • 2
    Tcl integration
  • 1
    Portable A database on my USB 'love it'
CONS OF SQLITE
  • 2
    Not for multi-process of multithreaded apps
  • 1
    Needs different binaries for each platform

related SQLite posts

Dimelo Waterson
Shared insights
on
PostgreSQLPostgreSQLMySQLMySQLSQLiteSQLite

I need to add a DBMS to my stack, but I don't know which. I'm tempted to learn SQLite since it would be useful to me with its focus on local access without concurrency. However, doing so feels like I would be defeating the purpose of trying to expand my skill set since it seems like most enterprise applications have the opposite requirements.

To be able to apply what I learn to more projects, what should I try to learn? MySQL? PostgreSQL? Something else? Is there a comfortable middle ground between high applicability and ease of use?

See more
Pran B.
Fullstack Developer at Growbox · | 6 upvotes · 284.9K views

Goal/Problem: A small mobile app (using Flutter ) for saving data offline ( some data offline) and rest data need to be synced with Cloud Firestore Tools: Cloud Firestore , SQLite Decision/Considering/Need suggestions: There is no state management in the app yet. There is a requirement to store some data offline and it should be available easily (when the phone is offline) and some data needs to stored in the cloud. I am considering using sqlflite for phone storage and firestore to sync and manage the online database. I am using flutter to build the app, I couldn't find a reliable way to use firestore cache for reading the data when phonphone is offline. So I came up with the above solution. Please suggest is this good?

See more
GreenDAO logo

GreenDAO

8
0
An open source Android ORM making development for SQLite databases
8
0
PROS OF GREENDAO
    Be the first to leave a pro
    CONS OF GREENDAO
      Be the first to leave a con

      related GreenDAO posts

      Realm logo

      Realm

      269
      16
      Realm makes it easy to build reactive apps, realtime collaborative features, and offline-first experiences.
      269
      16
      PROS OF REALM
      • 7
        Good
      • 3
        Elegant API
      • 3
        Cloud Syncing
      • 2
        React Native Support
      • 1
        Strong Adoption Growth
      CONS OF REALM
      • 1
        No offline support for web till now

      related Realm posts

      Mike Endale
      Shared insights
      on
      Android SDKAndroid SDKRealmRealmPouchdbPouchdb
      at

      We are building an offline-first Android SDK app. The solution we're working on runs on a mobile device in areas where internet connectivity is intermittent or does not exist. The applications needs to be able to collect data and when it reaches a home base or finds internet connectivity, we'll sync it with the host.

      We've heard Realm and Pouchdb could be a good solution, but we are curious if anyone has any experience with either or have another path forward.

      See more
      Gabriel Pa

      If you want to use Pouchdb might as well use RxDB which is an observables wrapper for Pouch but much more comfortable to use. Realm is awesome but Pouchdb and RxDB give you more control. You can use Couchbase (recommended) or CouchDB to enable 2-way sync

      See more
      Firebase logo

      Firebase

      41.1K
      2K
      The Realtime App Platform
      41.1K
      2K
      PROS OF FIREBASE
      • 371
        Realtime backend made easy
      • 270
        Fast and responsive
      • 242
        Easy setup
      • 215
        Real-time
      • 191
        JSON
      • 134
        Free
      • 128
        Backed by google
      • 83
        Angular adaptor
      • 68
        Reliable
      • 36
        Great customer support
      • 32
        Great documentation
      • 25
        Real-time synchronization
      • 21
        Mobile friendly
      • 19
        Rapid prototyping
      • 14
        Great security
      • 12
        Automatic scaling
      • 11
        Freakingly awesome
      • 8
        Super fast development
      • 8
        Angularfire is an amazing addition!
      • 8
        Chat
      • 6
        Firebase hosting
      • 6
        Built in user auth/oauth
      • 6
        Awesome next-gen backend
      • 6
        Ios adaptor
      • 4
        Speed of light
      • 4
        Very easy to use
      • 3
        Great
      • 3
        It's made development super fast
      • 3
        Brilliant for startups
      • 2
        Free hosting
      • 2
        Cloud functions
      • 2
        JS Offline and Sync suport
      • 2
        Low battery consumption
      • 2
        .net
      • 2
        The concurrent updates create a great experience
      • 2
        Push notification
      • 2
        I can quickly create static web apps with no backend
      • 2
        Great all-round functionality
      • 2
        Free authentication solution
      • 1
        Easy Reactjs integration
      • 1
        Google's support
      • 1
        Free SSL
      • 1
        CDN & cache out of the box
      • 1
        Easy to use
      • 1
        Large
      • 1
        Faster workflow
      • 1
        Serverless
      • 1
        Good Free Limits
      • 1
        Simple and easy
      CONS OF FIREBASE
      • 31
        Can become expensive
      • 16
        No open source, you depend on external company
      • 15
        Scalability is not infinite
      • 9
        Not Flexible Enough
      • 7
        Cant filter queries
      • 3
        Very unstable server
      • 3
        No Relational Data
      • 2
        Too many errors
      • 2
        No offline sync

      related Firebase posts

      Stephen Gheysens
      Lead Solutions Engineer at Inscribe · | 14 upvotes · 1.8M views

      Hi Otensia! I'd definitely recommend using the skills you've already got and building with JavaScript is a smart way to go these days. Most platform services have JavaScript/Node SDKs or NPM packages, many serverless platforms support Node in case you need to write any backend logic, and JavaScript is incredibly popular - meaning it will be easy to hire for, should you ever need to.

      My advice would be "don't reinvent the wheel". If you already have a skill set that will work well to solve the problem at hand, and you don't need it for any other projects, don't spend the time jumping into a new language. If you're looking for an excuse to learn something new, it would be better to invest that time in learning a new platform/tool that compliments your knowledge of JavaScript. For this project, I might recommend using Netlify, Vercel, or Google Firebase to quickly and easily deploy your web app. If you need to add user authentication, there are great examples out there for Firebase Authentication, Auth0, or even Magic (a newcomer on the Auth scene, but very user friendly). All of these services work very well with a JavaScript-based application.

      See more
      Eugene Cheah

      For inboxkitten.com, an opensource disposable email service;

      We migrated our serverless workload from Cloud Functions for Firebase to CloudFlare workers, taking advantage of the lower cost and faster-performing edge computing of Cloudflare network. Made possible due to our extremely low CPU and RAM overhead of our serverless functions.

      If I were to summarize the limitation of Cloudflare (as oppose to firebase/gcp functions), it would be ...

      1. <5ms CPU time limit
      2. Incompatible with express.js
      3. one script limitation per domain

      Limitations our workload is able to conform with (YMMV)

      For hosting of static files, we migrated from Firebase to CommonsHost

      More details on the trade-off in between both serverless providers is in the article

      See more
      DBFlow logo

      DBFlow

      14
      3
      Simple ORM android database library
      14
      3
      PROS OF DBFLOW
      • 1
        SQLite
      • 1
        Easy to use
      • 1
        Open Source
      CONS OF DBFLOW
      • 1
        Doesn't support anything other than SQLite

      related DBFlow posts

      Hibernate logo

      Hibernate

      1.5K
      34
      Idiomatic persistence for Java and relational databases.
      1.5K
      34
      PROS OF HIBERNATE
      • 22
        Easy ORM
      • 8
        Easy transaction definition
      • 3
        Is integrated with spring jpa
      • 1
        Open Source
      CONS OF HIBERNATE
      • 3
        Can't control proxy associations when entity graph used

      related Hibernate posts

      Ganesa Vijayakumar
      Full Stack Coder | Technical Architect · | 19 upvotes · 5.5M views

      I'm planning to create a web application and also a mobile application to provide a very good shopping experience to the end customers. Shortly, my application will be aggregate the product details from difference sources and giving a clear picture to the user that when and where to buy that product with best in Quality and cost.

      I have planned to develop this in many milestones for adding N number of features and I have picked my first part to complete the core part (aggregate the product details from different sources).

      As per my work experience and knowledge, I have chosen the followings stacks to this mission.

      UI: I would like to develop this application using React, React Router and React Native since I'm a little bit familiar on this and also most importantly these will help on developing both web and mobile apps. In addition, I'm gonna use the stacks JavaScript, jQuery, jQuery UI, jQuery Mobile, Bootstrap wherever required.

      Service: I have planned to use Java as the main business layer language as I have 7+ years of experience on this I believe I can do better work using Java than other languages. In addition, I'm thinking to use the stacks Node.js.

      Database and ORM: I'm gonna pick MySQL as DB and Hibernate as ORM since I have a piece of good knowledge and also work experience on this combination.

      Search Engine: I need to deal with a large amount of product data and it's in-detailed info to provide enough details to end user at the same time I need to focus on the performance area too. so I have decided to use Solr as a search engine for product search and suggestions. In addition, I'm thinking to replace Solr by Elasticsearch once explored/reviewed enough about Elasticsearch.

      Host: As of now, my plan to complete the application with decent features first and deploy it in a free hosting environment like Docker and Heroku and then once it is stable then I have planned to use the AWS products Amazon S3, EC2, Amazon RDS and Amazon Route 53. I'm not sure about Microsoft Azure that what is the specialty in it than Heroku and Amazon EC2 Container Service. Anyhow, I will do explore these once again and pick the best suite one for my requirement once I reached this level.

      Build and Repositories: I have decided to choose Apache Maven and Git as these are my favorites and also so popular on respectively build and repositories.

      Additional Utilities :) - I would like to choose Codacy for code review as their Startup plan will be very helpful to this application. I'm already experienced with Google CheckStyle and SonarQube even I'm looking something on Codacy.

      Happy Coding! Suggestions are welcome! :)

      Thanks, Ganesa

      See more
      NIDHISH PUTHIYADATH
      Lead Software Engineer at EDIFECS · | 1 upvote · 311.4K views

      Material Design for Angular Angular 2 Node.js TypeScript Spring-Boot RxJS Microsoft SQL Server Hibernate Spring MVC

      We built our customer facing portal application using Angular frontend backed by Spring boot.

      See more
      MySQL logo

      MySQL

      125.5K
      3.8K
      The world's most popular open source database
      125.5K
      3.8K
      PROS OF MYSQL
      • 800
        Sql
      • 679
        Free
      • 562
        Easy
      • 528
        Widely used
      • 490
        Open source
      • 180
        High availability
      • 160
        Cross-platform support
      • 104
        Great community
      • 79
        Secure
      • 75
        Full-text indexing and searching
      • 26
        Fast, open, available
      • 16
        Reliable
      • 16
        SSL support
      • 15
        Robust
      • 9
        Enterprise Version
      • 7
        Easy to set up on all platforms
      • 3
        NoSQL access to JSON data type
      • 1
        Relational database
      • 1
        Easy, light, scalable
      • 1
        Sequel Pro (best SQL GUI)
      • 1
        Replica Support
      CONS OF MYSQL
      • 16
        Owned by a company with their own agenda
      • 3
        Can't roll back schema changes

      related MySQL posts

      Nick Rockwell
      SVP, Engineering at Fastly · | 46 upvotes · 4.1M views

      When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

      So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

      React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

      Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

      See more
      Tim Abbott

      We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.

      We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).

      And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.

      I can't recommend it highly enough.

      See more
      PostgreSQL logo

      PostgreSQL

      98.4K
      3.5K
      A powerful, open source object-relational database system
      98.4K
      3.5K
      PROS OF POSTGRESQL
      • 764
        Relational database
      • 510
        High availability
      • 439
        Enterprise class database
      • 383
        Sql
      • 304
        Sql + nosql
      • 173
        Great community
      • 147
        Easy to setup
      • 131
        Heroku
      • 130
        Secure by default
      • 113
        Postgis
      • 50
        Supports Key-Value
      • 48
        Great JSON support
      • 34
        Cross platform
      • 33
        Extensible
      • 28
        Replication
      • 26
        Triggers
      • 23
        Multiversion concurrency control
      • 23
        Rollback
      • 21
        Open source
      • 18
        Heroku Add-on
      • 17
        Stable, Simple and Good Performance
      • 15
        Powerful
      • 13
        Lets be serious, what other SQL DB would you go for?
      • 11
        Good documentation
      • 9
        Scalable
      • 8
        Free
      • 8
        Reliable
      • 8
        Intelligent optimizer
      • 7
        Transactional DDL
      • 7
        Modern
      • 6
        One stop solution for all things sql no matter the os
      • 5
        Relational database with MVCC
      • 5
        Faster Development
      • 4
        Full-Text Search
      • 4
        Developer friendly
      • 3
        Excellent source code
      • 3
        Free version
      • 3
        Great DB for Transactional system or Application
      • 3
        Relational datanbase
      • 3
        search
      • 3
        Open-source
      • 2
        Text
      • 2
        Full-text
      • 1
        Can handle up to petabytes worth of size
      • 1
        Composability
      • 1
        Multiple procedural languages supported
      • 0
        Native
      CONS OF POSTGRESQL
      • 10
        Table/index bloatings

      related PostgreSQL posts

      Simon Reymann
      Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 11.6M views

      Our whole DevOps stack consists of the following tools:

      • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
      • Respectively Git as revision control system
      • SourceTree as Git GUI
      • Visual Studio Code as IDE
      • CircleCI for continuous integration (automatize development process)
      • Prettier / TSLint / ESLint as code linter
      • SonarQube as quality gate
      • Docker as container management (incl. Docker Compose for multi-container application management)
      • VirtualBox for operating system simulation tests
      • Kubernetes as cluster management for docker containers
      • Heroku for deploying in test environments
      • nginx as web server (preferably used as facade server in production environment)
      • SSLMate (using OpenSSL) for certificate management
      • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
      • PostgreSQL as preferred database system
      • Redis as preferred in-memory database/store (great for caching)

      The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

      • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
      • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
      • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
      • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
      • Scalability: All-in-one framework for distributed systems.
      • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
      See more
      Jeyabalaji Subramanian

      Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.

      We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient

      Based on the above criteria, we selected the following tools to perform the end to end data replication:

      We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.

      We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.

      In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.

      Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.

      In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

      See more