DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Data Engineering
  3. Databases
  4. How to Build Your Next App at 4x the Speed

How to Build Your Next App at 4x the Speed

Iterate and deliver more quickly by eliminating some of the work that goes into building your service's backend using these offerings.

Noorain Panjwani user avatar by
Noorain Panjwani
·
Nov. 06, 18 · Presentation
Like (4)
Save
Tweet
Share
4.93K Views

Join the DZone community and get the full member experience.

Join For Free
"In terms of prioritization of new funds for digitalization, investment in digitalization was placed in the top 3 for 8 of 15 industries in 2018." — Gartner

In this new age of digital transformation, we need to get our applications to the market as soon as possible. There is so much competition around us, and feature and appeal aren’t all that are required. You don’t want to release your app only to find out your competition beat you to it. And there are also the costs associated with development. Being Agile and lean is the key to survival.

I’ll be talking about an exciting concept called Backend as a Service (BaaS) which accelerates the development process. It essentially aims at automating your backend (more on this later) to give a boost to your development efforts.

First, let's go back to the basics and break things down a bit. App development can be divided into two broad steps: the frontend (what users see) and the backend (what users cannot see).

The Front End

This is where the appeal is. This is what will dictate your customer/user experience.

What it is: The front end is the interface with which your end users interact. Traditionally it refers to user interfaces like mobile apps and websites. Today, it is virtually anything the user can touch, feel, or see. It does include apps and websites, but also includes IoT devices, voice bots, and a lot more.

Coming back to app development, there are many tools and frameworks out there which can help you build your app real quick. Frameworks like React, Vue, and Angular let you build sophisticated web apps. You even have native cross-platform development tools like React Native and Flutter which can build apps with beautiful native experiences.

The Hiccup: A front end without a functional backend isn’t of much value. Imagine an Instagram with only one active user. It’s like being stranded alone in a desert. Or even worse, stuck in a room with no Wi-Fi! Well, you get the point — without a backend there is no “life” in an app.

The Back End

What it is: This is where the magic happens. If you skipped the front end section (which I’m glad you did), go back and read it once to know the difference. This is the piece which the user is unaware of. Due to this, consumers don’t really think much about it. This might make sense from some perspectives, but avoiding it isn’t very beneficial in the longer run. Especially when your app begins to scale and you are rolling out new features every week.

Importance: A basic interview we conducted revealed that approximately 70% development efforts go into building the backend. That is a lot of time! Choosing the right tech stack is yet another problem. Using the wrong tools for the job can impact performance. This, in business terms, means more costs to keep your app running.

Backend-as-a-Service to the Rescue

We usually ask people a simple question: “What is the least amount of code you can write to build a fully functional backend?” The answer? No code at all! BaaS is the new take on building scalable mobile backends. I’ve also come across some products phrasing it as the “serverless way to build your apps”. This doesn’t mean that there are no servers. But it does imply that you don’t have to create or “code” your backend in order to make apps. All backend functionality is baked in.

The idea: Provide building blocks like user management, database operations, file storage, and other cool stuff which is usually required to build apps. All wrapped around and exposed in a general purpose API that can be consumed directly from your front end. Don’t let this misguide you. You can build most types of apps using these tools, even highly customized ones.

Another great feature of BaaS is real-time databases. What this essentially means is that your front end can “subscribe” to any changes in the database. This will keep your frontend in sync with the backend in real-time. This is an awesome feature to build collaborative apps with relative ease.

The point is, BaaS, and more recently mBaaS (Mobile Backend-as-a-Service), can really help you hit the market super quick. There are many prominent players in this field. I’m going to walk you through some of them.

Google Firebase

“Firebase helps mobile app teams succeed.”

Well, I must say, Firebase is true to what it says. It is the most feature rich mBaaS provider out there and has a large following. You don’t need to worry about infrastructure (where your app actually runs). It ships with its own database, Firestore, which is literally planet scale. In short, it’s future proof.

When to Use It:

  • Firebase makes a lot of sense when you want to get up and running in a matter of minutes.
  • It’s a perfect fit for general purpose apps. The wide variety of products available on firebase can be used to build most of the apps out there.
  • You want a free-tier hosted offering.

When Not to Use It:

  • Highly transactional apps having a relational data model cannot be built on Firebase since Firestore is a NoSQL database.
  • Firebase will lock you to Google. There is no way around it. If you have an environment already set up, you’ll have to do a complete migration.
  • The queries which can be done on Firestore are not very flexible as compared to MongoDB (another NoSQL database). This can be very restrictive.

Overall Google Firebase is a great tool to try out. I personally recommend it for getting your projects off the ground super quick. You can sign up for a free account here.

Hasura

“Instant Realtime GraphQL on Postgres.”

Hasura is another great mBaaS tool out there. It uses GraphQL as a query language to communicate with its backend. The best part is that it can be downloaded and run anywhere you like. It may not be as feature-rich as Firebase, but it definitely adds a whole new flavor by using Postgres under the hood.

When to Use It:

  • If your app makes heavy use of transactions and you need complex queries.
  • You’re already using Postgres. Hasura engine plugs into a live Postgres instance right out of the box.
  • You already know GraphQL and enjoy using it.

When Not to Use It:

  • You can’t use it for any other database like MySQL or MongoDB.
  • GraphQL is a bit overwhelming for new developers. It’s got strong foundations but if you don’t already use it, it will slow you down initially.
  • You don’t really want to get into data modeling a relational database or your data is highly unstructured.

Hasura is a great free tool. The idea of GraphQL on Postgres is a powerful one. You can quickly get started with it on Heroku here.

Space Cloud

“Everything you need to build enterprise scale apps at 4x.”

I must disclose that Space Cloud is our product offering. It is a relatively new kid on the block and aims to combine the benefits of Hasura and Firebase into a single product offering. Like Firebase, it offers a bunch of modules (we are constantly adding modules) like user management and database operations. Unlike Firebase, it can be plugged into any live database. A really exciting feature is the ability to use multiple databases together for maximum flexibility. You can download and use it on any cloud vendor of your choice.

When to Use It:

  • You want to start quickly keeping complete control over your database and environment.
  • You need the flexibility to use multiple databases (both SQL and NoSQL) in the same project.
  • You have an existing database already in production.

When Not to Use:

  • You don’t want to manage the underlying infrastructure
  • You want a community and good documentation to go with the tools you use.
  • You want to avoid using a BaaS entirely.

Needless to say, you can get started using Space Cloud completely for free to check the tool out for yourself.

Now you know a new way of building apps. This will help you get started on your next big project quickly. Do try out our tool along with the others. Your feedback is highly appreciated. Leave your comments and don’t forget to share! See you soon!

Originally published at spaceuptech.com on August 2, 2018.

mobile app Database Build (game engine) Relational database Firebase

Published at DZone with permission of Noorain Panjwani, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Why You Should Automate Code Reviews
  • Kotlin Is More Fun Than Java And This Is a Big Deal
  • Event Driven 2.0
  • 2023 Software Testing Trends: A Look Ahead at the Industry's Future

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: