I'm developing a chat-oriented iOS app. Chatting/Messaging is the main component, however, there are other features that requires custom objects/classes/database. Do I need to have my own Backend with Quickblox, SendBird and Layer.com?
Based on my research below, we don't need to have our own BaaS with Quickblox. However, we need it with SendBird (aka JIVER) and Layer.com such as using Parse Server or Firebase.
My research on Quickblox vs SendBird vs Layer.com is:-
1- Backend-as-a-Service (BaaS) or Chat-as-a-Service (CaaS):
2- WebSocket-based:
3- Voice and Video:
4- Chat UI Kit:
5- Number of Members in a Group:
6- The ability to host the BaaS/CaaS at your own IaaS:
7- Custom Objects Backend (the need for extra infrastructure):
8- BaaS/CaaS Admin Panel/Dashboard:
9- Attachment max file size:
10- Availability SLA:
11- Pricing (per month):
12- Number of freelancers at UpWork.com who have this Baas/CaaS as one of their skill set:
UPDATE: I end up using SendBird with Parse Server (I'm trialing NodeChef.com as they provide a hosted Parse Server, almost like Parse.com). Based on my interviews and screening, almost any mobile app developer is happy to learn and use SendBird SDK.
There is a question about whether it is possible to build a ride sharing app with one of these services and whether it is advisable. From my experience, there are two possible alternatives:
Use a flexible database BaaS
Not every BaaS is the same. Services like Pubnub are mainly a wrapper around the websocket publish subscribe paradigm. They provide a server and an SDK to make implementing pub/sub easier.
A service like Firebase offers a real-time MongoDB database. You can actually design some pretty complex apps just using Firebase. The big downside is that sometimes you need code to run on the server.
In the past we used Parse in conjunction with Firebase - Parse handled some of the more structured database queries and user authentication and Firebase handled the real-time parts of the app. Firebase is nice because you can generate your own JWTs to authenticate with a third party server.
You can also use the Chat SDK for Firebase which is an open source messaging implementation for Firebase.
Custom server + real-time BaaS or CaaS
The second option would be to develop a custom server using something like Symfony 3 and integrate it with a real-time message provider.
The benefit of this is that you would be able to develop a full PHP / Apache / MySQL back end while allowing a third party provider to provide the real-time functionality.
I have more experience with Firebase than any of the other services so I know that it’s very possible. Especially since Firebase has a REST API. I developed a real-time web messenger using Symfony 3 and Firebase. Symfony handles all the admin functionality and the rest of the chat is build with Firebase. If you’re interested you can check it out here.
NO, you should be fine with Applozic as it offers native SDK’s and UI kits from Github so you have full control over customizations both in terms of app functionalities around messaging and UI design along with the Backend.
Applozic’s backend and rich Platform API’s (Client and Servers) would let you build exactly what you want. You can configure Applozic for your app to interact with content from your servers side code as well as you can fetch real time updates of all the happenings on your app through Webhook configuration. You can also counter/tigger actions from the messages delivered to your servers.
Does that help?