Questions regarding Backend Development

Questions regarding Backend Development



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.

If you have absolutely no backend experience and you need to get your prototype done quickly, you may want to check out Firebase—its Realtime Database also functions as a RESTful API (reference). It’s free to get started (with relatively generous quota) and the learning curve is extremely low (your database is effectively a giant JSON object); assuming that you are fluent in JavaScript (or any of the langauges that Firebase supports, which include those for iOS and Android and may come in handy at some point), you can be productive within an hour. Firebase can also be used to handle authentication and, if you need it for your app, authorisation—the learning curve of both of them are also very low, but some may find the latter a bit cumbersome.

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 are going to roll your own backend, the learning curve is not high for making a functional RESTful API Node.js + Express.js server of your choice is also not terribly difficult (assuming that you know JavaScript well); I personally also find it more flexible and more fun compared to the Firebase option.

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.