Which Datastore platform is better?

Discussion in 'iOS Programming' started by lok0083, Sep 10, 2015.

  1. lok0083 macrumors newbie

    Joined:
    Sep 10, 2015
    #1
    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.
     
  2. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #2
    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.
     
  3. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #3
    I forgot to add, you should give us an idea of your budget and performance requirements.
     
  4. VPrime macrumors 68000

    VPrime

    Joined:
    Dec 19, 2008
    Location:
    London Ontario
    #4
    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.
     
  5. abhibeckert macrumors regular

    abhibeckert

    Joined:
    Jun 2, 2007
    Location:
    Cairns, Australia
    #5
    Amazon is not cheap.

    Linode for example is around $100/month their largest VPS, including backups. The same setup with Amazon is in the vicinity of $500/month depending on your usage pattern.
     
  6. VPrime macrumors 68000

    VPrime

    Joined:
    Dec 19, 2008
    Location:
    London Ontario
    #6
    It's the cheapest of the options the original poster asked about.
     
  7. AxoNeuron macrumors 65816

    AxoNeuron

    Joined:
    Apr 22, 2012
    Location:
    The Left Coast
    #7
    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?"
     
  8. lok0083 thread starter macrumors newbie

    Joined:
    Sep 10, 2015
    #8
    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?
     
  9. AxoNeuron, Sep 25, 2015
    Last edited: Sep 25, 2015

    AxoNeuron macrumors 65816

    AxoNeuron

    Joined:
    Apr 22, 2012
    Location:
    The Left Coast
    #9
    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.
     

Share This Page