As we all know backend is one of the fundamental building blocks of modern mobile apps. It's the system and database that manage the apps.
Of course, the mobile app would cache or save a part of the data locally, but the back-end is managing the whole mobile app ecosystem so that the mobile could work normally as it should.
However, the challenge of developing the backend is also challenging as developing for the front-end. Back-end usually doesn't have to deal with the user experience per se. But it has to be played well with the front-end developer to make sure the functionality is getting covered.
Developing backend properly will start from the local machine. The local machine has to be set up with a proper back-end development environment. For example git, nodejs, PHP, MySQL, and MongoDB. Of course, we also need a good code editor such Visual Studio Code and Coda 2.
We use Sketch app to do the wireframing for the system flow so that the backend know what API call back should be created.
Backend usually consists of API, a system like cron-job and admin panel.
All of them are at first developed locally so it will not affect any running server if it is already there, that might cause some chaos if it's not ready for prime time. We use git to push files to the server seamlessly without copy and overwriting files to the server via FTP as it's not so efficient. And we back-up to some repository to back-up the files in the safer place other than our local computer.
The proper way to do is like this: local -> staging -> production (live) . Where we will stage first for testing before we go push for the real customer.
On the staging when the mobile app will also doing the staging testing before graduating for live app. As we usually heard sometime staging and production is similar but not the same. As there is also need to test the live server with caution too.
The key for developing backend it's just not to make sure it's functioning but also to maintaining for the next iteration without breaking the current running backend if the service already live and running.
The proper process needs to put in place to make sure the deployment and future integration can be done without having so much downtime. It's also important to have backups for the web app as well because there is a risk of one server failure and could wipe out all the data.
Ok, that is the glimpse of developing the backend in the overall view. It's quite challenging to make sure the service is up with decent reliability.