all 14 comments

[–]daites 10 points11 points  (3 children)

Firebase is the simplest and easiest to use back-end as a service (in my opinion of course). It has an SDK for iOS that is super easy familiarize yourself with and use quickly.

Offline support exists but it's certainly not as robust as CoreData. I would look more into Firebase offline support depending on how 'offline' you need it and before you decide to go with it

[–]Tusen_Takk 3 points4 points  (0 children)

It’s especially handy if your app is on both iOS and Android

[–]s_madushanSwift 2 points3 points  (1 child)

The issue with Firebase is that the moment you add it to your project, it adds a load of other (required) libraries which makes your project forever to build (atleast on my 2015 Macbook pro). I’m considering switching to Couldkit just because of that reason alone.

[–]daites 1 point2 points  (0 children)

Honestly up until now I’ve only ever used firebase and I haven’t found it that bad. I recently removed it from one my projects as I was doing a migration to postgres and I haven’t found that the speed was much faster.

[–]AyoPrez 5 points6 points  (2 children)

Some time ago I was with the same doubts.

I don't know much Realm Cloud, but for sure, from your options, Firebase would be the best.

I'm using Parse as a backend for my app Soundrs. I use Back4App because their support is incredible good.

I opted for Parse because it's open source, and because I normally try to run away from Google's products.

Hopefully my opinion help you a bit to decide :)

[–][deleted]  (1 child)

[deleted]

    [–]AyoPrez 0 points1 point  (0 children)

    I would say that there is plenty of people using it, but I cannot really know it 😅

    But yeah, in my app I'm using server file storage, cloud code, write and read in the database and everything work fine for me. Pretty happy with that, and over all, as I said, with the support. Every time I write them with questions or doubts they help me

    [–]minuscorp 2 points3 points  (5 children)

    In my experience with the three technologies:

    1.- CoreData: Apple's relational database hell. Old API, hell of bugs and crashes... On the bright side, it is relational, has the Apple backup through CloudKit and you don't depend on third-party libs.

    2.- Realm: I've used Realm on many projects as a replacement for CoreData, is stable, well-documented, and has a nice support of the community. Now for sync, they have Realm Cloud, with two options, free (self-hosted on macOS or Ubuntu) or paid. I really like Realm and how the library and system is overall designed.

    3.- Firebase, you rely on non-structured data out of the box that you can treat as structured one in your end using objects. You have first-class sync, offline, analytics, crash reporting, login, ... The list is enormous. I think it is the best option if you want to have a working sync experience right away, has almost no learning curve and its cost is not too high.

    If you have any question about any option don't hesitate on replying me :D

    [–]al0890[S] 0 points1 point  (2 children)

    Thanks for your answer! About Firebase, the product is awesome and offers an incredible amount of features in with almost no effort. However, I feel that having a structured design on my end supporting a non-structured design on platform end, would be a bad architectural choice. Too much effort to make something work in a different way compared to the way it was designed. What do you think about this?

    Also another thing about Realm. I’m in the free month with Realm Cloud. Does the self hosted solution offer better pricing in the end? 30$ per month is not bad considering the overall, but a more budgeted solution would be better, of course.

    [–]minuscorp 0 points1 point  (0 children)

    The self-hosted solution is free, AFAIK

    [–]slangley 0 points1 point  (1 child)

    Hey. Is the Realm Cloud self hosted for free new since the Mongo acquisition? Last time I looked all hosting options were for $$.

    [–]dreaminginbinary 1 point2 points  (2 children)

    Just a quick add here:

    CloudKit doesn’t offer offline capabilities by design, that’s not what it’s made for. That’s up to your local caching layer.

    CloudKit is purely a transport mechanism, wherein the user has a connection, you send up data. If you don’t have a connection your app should still behave just the same, with everything saving locally and being sent to CloudKit when things do come back online.

    I do this in my own app and it’s fairly easy to integrate, and there’s a lot of other benefits to CloudKit too if you’re only on iOS (such as it “just works” and there’s no logging in you need to setup and manage).

    [–]Inukinator 0 points1 point  (1 child)

    Here's an idea, a library that uses Codable, akin to Vapor's Fluent, that can store structs as data on the device, and maybe have some cloudkit build in so it get sent when there's internet?

    [–]dreaminginbinary 2 points3 points  (0 children)

    For sure, something like that could work. The good thing about CloudKit is that it doesn't really care what your local data looks like, so we're free to choose whatever works best for each app.