Mobile Backend solutions for your ionic apps


#1

curious what are your experiences with backend solutions for your ionic apps? There are so many Mbaas (Mobile backend as a service) providers these days, and it would be great to get your feedback.

I am going to need a very lightweight backend for my android and ios app. The only thing I need to store is reference data in a centralized location that can change pretty frequently (about 2000 rows of data), and ability to support push notifications, but no user specific data at the moment, although this could change in the future…

At first I was planning on spinning up a nodejs backend (AWS EC2) to make GET requests from the ionic app. I also see there are alot of mbaas providers such as Parse which may simplify this even further.

What are your experiences or concerns with these providers? Thanks!!


#2

I just began using Parse and it’s great for simple storage. :smiley:

Going to try using Ionic Push here real soon.


#3

Thanks @Zeak. The only problem I see with parse is that they only offer 30 requests per second for their free version, and get quite expensive after that… Since my app won’t be making money, but has a possibility of being used by many people, this may not be a good solution. Please correct me i’m wrong!


#4

That is very generous, I don’t come anywhere NEAR 30 req/s. I haven’t been able to find anything that provides more than that. Competing services like firebase only allow you to have 50 users on at a time. I would use this and if you do get “big” inject ads or seek donations or grants.


#5

thanks @drakee510 yeah I noticed that with firebase, and I am thankful we get anything for free period since the guys at Parse put in alot of work to get the product to where it is. But since my app will be rather small anyway, it might make more sense to go with AWS, although I havent had a chance yet to deep dive into their free tier and check out all the specs.

So it seems as if it’s going to be AWS vs Parse.


#6

The EC2 with AWS is free for 12 months, I don’t know about the other services.

Parse works easily, especially if your familiar with the Backbone structure. It also has other built in services like authentication (my favorite), push notifications, and analytics.


#7

I host my WebAPI on Azure - I find it very simple and easy to use…


#8

cool @drakee510 I would only need it for the REST component, but I’m not sure how it works, am I developing my backend app? Or is it mostly configuration?


#9

I use the Javascript SDK but it comes with a REST API. Most of the backend stuff is really taken care of out of the box (beauty of it) but if you need more there is cloud code (pretty much NodeJS). The way I use it in my app is use the built in authentication to handle sessions, password hashing, password resets, etc. You can create and query objects from the database (20GB free or something).

How do you want to use it?


#10

got ya!! I would want to customize it more so writing node would be great.

All I’m really looking for is a backend app I can store about 2000 reference data items, so I can make updates and it will reflect on the app.

Think of it as if I had a simple app that listed movie titles based on genres, and wanted a centralized place to store all titles. The client app will basically only be making GET requests to get the data, no saving data.

There would be some additional logic on the server, but the point is that the backend app would be pretty simple, no more than like 3 REST methods


#11

I’ve been using Parse as the backend for that app I’ve built which my clients will be customizing for themselves.

It pretty simple to to start coding and has a bunch of nice extra features like easy user registration with facebook, analytics, push, crash reporting

30/requests a second would be nice for a free limit, but 30 API calls is used a bit quicker. Say you have a simple chat type service and have a function to send a message. It would be at least 4 API calls,

  1. Cloud Function - Need to call through a cloud function as you don’t want to enable push from the client side.
  2. Get - Load the chat object to validate being able to send and get the recipient)
  3. Save - Save the chat message
  4. Push - Send the push notification

The lack of transactions and indexes with Mongo and the time limitations of a request means there’s a good change you’re going to accumulate data integrity issues.

If I could go back to the start I would write a custom backend and deploy on Google Cloud managed VM’s (or Heroku or AWS if you prefer)
Have a read through http://stackoverflow.com/questions/11283729/how-scalable-is-parse and

I going to start building a seed project for a node.js starting with this https://scotch.io/tutorials/easy-node-authentication-linking-all-accounts-together as it has all the social auth done. I want to play with the Google Cloud Platform but would require minimal changes for AWS or Heroku.

There are a few open source project to build a backend/MBaaS with. Check out:

http://deployd.com/
https://strongloop.com/node-js/loopback-framework/



http://http://liveoak.io/


#12

great information @campers ! thanks alot


#13

Hi @djett, I use DigitalOcean with a node.js & Express (API) + nginx (reverse proxy) + mongodb (storage).

I pay 5$ per month for this server:

512MB Ram
20GB SSD Disk
Ubuntu 14.04

Also, if my apps grow and i need to increase server performance, i can just turn off the server and choose other plan to scale it.

On this server i have my own website and some apps and works like a charm, 0 problems and also Digital Ocean have a lot of tutorials to help you to configure server.

regards! :grin:


#14

great I’ll check it out!


#15

I actually know the head engineer of Parse! I live around the corner from her haha. I have been writing my own app API’s but all my apps and clients software has been small in house work. For my big app I’m planning on releasing to the public I have decided to use Parse (it is a paid app). As stated before, 30r/s is really good. Granted, my app only has a few calls during the time the user is using the app, it’s nothing that has constant communication.

A few of my current favorite parse features over ANY other competitor:

  1. They’re being actively worked on and it’s not going anywhere. There are 2 or 3 Baas providers that have left the game in the last year. Can you imagine being an app with millions of records that you have to migrate? Parse being acquired by Facebook, and being featured in F8, it’s a pretty good sign it’s not going anywhere.

  2. The data browser online is super helpful. And the documentation is really really nice and includes examples and samples for every platform and api that they offer.

  3. As far as I’ve come to understand with AWS you still have to write your back end and do that. Parse essentially takes care of this by handling all of the databases, files, etc for you which is SO handy when expanding rapidly. Load balancing is a pain to handle with 1 person.

I’ve really enjoyed my work with Parse, and i’ve looked at over 10 other providers big and small and this really seems to be the best one in my opinion. Of course different apps have different requirements, but I hope this helps you make your decision.


#16

Tell her we would kill for official cordova push support and javascript localstorage :slight_smile:


#17

OH trust me I’ve told her hahahaha. They had plans initially to start supporting it, but I don’t know why they haven’t actually pushed forward with much of it. She hasn’t really focused much on cordova and phone gap. Though I think that they are going to soon since it’s obviously an ever growing platform and community. There are some good push plugins for Cordova though right now, though.


#18

I hope they do soon. Thanks!


#19

I use Azure and my dedicated servers with VPS


#20

nice thanks guys! good stuff