I am developing a “Flea Market” app, much alike Shpock and Letgo. I am using React Native to develop the app for both iOS and Android and I chose to use Google Cloud.
The next challenge is connect my Apps with the Database on REST API. What is the best strategy to do this? Should I learn backend development(Data management) or outsource it? If I am gonna learn it myself, what/how is the best way to learn Google Cloud Database Management regarding mobile application?
Below are my opinions from personal experience with small personal projects that I’ve built and a larger one that I have been building, please take it with a grain of salt.
I have used Firebase for a few small projects so I can’t comment on scalability—but that is probably the least of your concerns for now; the technical debt that you would get from using Firebase, even if you decide to migrate to a “proper” backend later, is likely minimal given that it’s a RESTful API.
If you do want to go that way there are already challenges in the beta curriculum for exactly that. The “downside” in this case is that you there is also a bunch of other things to learn to be productive—you will have to learn how to work with a DBMS of your choice (MongoDB in the fCC curriculum), how to secure your server (also in the curriculum but it’s only the basics of security), how to implement authentication (also in the curriculum as Passport, please hash your passwords if you decide to go this way, which is also in the curriculum as bcrypt—the more I read less I trust myself in implementing authentication properly).
If you just need to build a prototype and you want to do it by yourself then Glitch is a great place to do it (you will also need to find some sort of database hosting to go with it, there are services with limited free plans depending on what DBMS you use). If you don’t have much experience with hosting then that’s another pile of stuff to learn on top of coding. So, in summary, if you can afford to pay someone experienced to do it properly, particularly if you need to implement authentication and authorisation, then outsourcing may be the better option.