Git source control must be part of a wider workflow strategy that enable software releases, versioning, release of hot patches, code sharing and adding of new features.
It is essential to lay a good foundation by setting up an effective development environment. The Wooberme case study will shed some light on a strategy that meet these objectives.
Wooberme is an app designed to make Airport transfers easy. The app owner wants initially to deploy the app for customers in and around London.
The backend for frontend (BFF) for Wooberme will be deployed on Nest.yt. The font-end clients are being developed using Xamarin.
The client-end has 3 apps for the administrator, the driver and the rider who wants to be transferred to and from the airport. Having an app for the administrator allows easy to monitoring of operations even while not stationed at a fixed location.
The aim of the app developer is to make use of push notifications to let stakeholders know whenever important events take place in the system.
Git Source Control
The app project has a dedicated private Git repository. The repository is logically portioned to maintain the different modules of the app.
The Git branches represented by the dark blue boxes are installed by default on the server when the app is configured and deployed.
The light blue boxes represent branches added by the developer to manage Xamarin code projects of the 3 client apps.
The setup allows the developer to maintain both the client and server code in the same repository. This makes code sharing much easier to manage.
The adding of folders to manage parts of the application is done using Nest folders. The Xamarin client code of Wooberme exist in Nest Folders.
Nest Folder Create command creates a folder in the source folder and a Git branch. The
Nest Folder Fetch command fetches an existing folder pushed to the remote earlier.
Gitflow for Workflows
The workflows have been made easier with the vscode gitflow plugin. The plugin sets up branch names required when initialized for the current project.
For example, the Nest folder named “Client” will create a number of branches to support the workflows.
Ensure to use the project prefix “client” when setting up the branch names. The attached video demonstrates how the plug-in is installed and initialized.
The data entity classes are shared between the clients and the server. The obvious advantage is that it helps to avoid code duplication.
Setting up the Git repo and establishing the workflows at the outset is crucial for consistently delivering results.
There are some ideas here I hope will be of some benefit. Watch the video and comment below for a demonstration.