Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

lok0083

macrumors newbie
Original poster
Sep 10, 2015
4
0
Hi All,
I would like to develop a chat app. It should be focus on iOS device first. If the app have a good market value. I will develop a android version.

Which datastore platform better?
1.Cloudkit
2.Parse
3.Amazon AWS
4.Google Cloud

Moreover each user can upload his profile picture in the app.

Thanks for help.
 
Can you tell us what kind of volume you are looking at long term? I looked into Parse and IIRC, it's free up to a certain volume, then you have to pay.
I've heard AWS is costly.

If your traffic will remain small, and you have a limited budget, Parse should do the job.
 
AWS is the most robust out of the bunch. It's also the cheapest when you get into real amounts of data. AWS also offers a free year for the micro server which should be enough to start with.
The reason is because you have to do EVERYTHING your self. Unlike Parse, CloudKit, and Google Cloud which provide a lot of APIs and pre-made infrastructure for you to use.

Parse is probably the easiest to get started, they are also free to get started.
 
Keep in mind, Parse only gives 20GB free storage to start with. I have used Parse as the backend for several apps, combined with AWS S3 to save photos/videos. It's a pretty neat combination.

I would really suggest playing around with Node.js + MongoDB. It's really fun. You can basically write your own backend in JavaScript, which is VERY easy to learn coming from Objective-C or Swift.

Personally, learning Node.js + MongoDB was even funner for me than learning iOS development. The benefit is that you can truly do anything you want with it, it's very flexible. And at the start, you can host your Node.js server on your own home computer, on any OS (I personally use Linux to host my Node server). Since I have a fiber optic internet connection and a fast Ubuntu machine, my own home computer is able to serve large numbers of users without having to rely on something like Parse or AWS.

But if your app does become big, it's really easy to run a Node.js server on the AWS platform.

But if you really don't want to learn node then I would suggest Parse. I've made several apps with their platform. While you are writing your app with Parse, try to be very efficient with the number of queries your app performs. The more efficient your app is, the less you have to pay. This advice pretty much applies to any platform though. So when you are writing a portion of code that accesses your database, try and ask yourself " is this really necessary? Am I already doing this in another part of the app?"
 
Thanks all for help
I find that Cloudkit and Parse count the 40 & 30 request per second.
Does chat app easy to over the limit?
On the other hand, does iOS can resize the image before upload to server?

I was also think about make a server in my home.
I only has php and mysql experience on the server side language.
I don't want to use php and mysql in this app. Because I want to try some new thing on this project.
Does node.js and MongoDB request a high performance server?
 
Thanks all for help
I find that Cloudkit and Parse count the 40 & 30 request per second.
Does chat app easy to over the limit?
On the other hand, does iOS can resize the image before upload to server?

I was also think about make a server in my home.
I only has php and mysql experience on the server side language.
I don't want to use php and mysql in this app. Because I want to try some new thing on this project.
Does node.js and MongoDB request a high performance server?
I've got a Node.js MongoDB server running on my desktop and it serves just fine. Though when you start getting more requests you're gonna start having speed problems, but some simple optimizations a should let you handle a pretty large number of users unless you're on an Internet connection less than 50MB/s. Personally I am lucky enough to have 1GB/s fiber in my area so my server is lightning fast.

With a simple chat app you should be fine. I would suggest using AWS S3 to handle media (i.e. sending photos and videos) and using a Node.js + MongoDB server to handle chat. You should get some pretty good performance as long as you program the app efficiently. For example, when the user opens a conversation, have it cache the conversation to the iPhone's storage (maybe use Core Data to save the text of the chats, and save image files to disk) so that every time they launch the app it doesn't have to re-download the entire chat every time they launch the app.

Using AWS to upload/download media should be pretty fast and should give your home desktop/server enough leeway to handle a large number of users. Especially if you also use Amazon's CloudFlare CDN (content delivery network) which REALLY speeds things up, globally. CloudFlare is really simple to integrate with S3, took me less than 5 minutes to figure it out with no previous experience using CDN's and it dramatically improved AWS speed.

For me personally, being able to create both the app and server with Node.js and MongoDB is incredibly fun, I love it. Node.js is very easy and intuitive, and MongoDB is pretty fast. Personally I greatly prefer MongoDB's query syntax over MySQL as well.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.