So, we started using gitflow workflow with our server side as well as mobile development. It works out really well with server side code, since there is test coverage and with build automation, feature branches get merged into development branch as soon as they are tested ok. Unlike mobile development, since the changes are live as soon as you wish to (no time to deploy apart from build and testing), you can quickly test if there are any bugs in code you pushed and quickly make changes. So this workflow works out really great for server side development. However we are facing issues with mobile development with this workflow.
With gitflow workflow, we have three persistent branches, namely development, staging and master. Code on master branch goes to our play store app, we have another closed beta google play store app for staging which is available only to our team members and we use crashlytics beta to distribute latest development branch code only to developers from our team. Whenever someone starts working on new feature, that person creates feature branch forked from master (previously we used to fork it from development) and once the feature is ready, creates a pull request into development. Everyday, we review pull requests and ones that are ok are merged into development.
Now there are two major issues that we are facing with this workflow. One is that suppose we merged some feature into development and later figured out that there are lot of bugs in it. Now it can’t be pushed further, whole development cycle is stuck because that code is already merged with development. This is the reason we started forking feature branches from master rather than development as at least individual feature branches will have fully working code. One way is that each feature can be separately distributed to team members to test and only then will be merged to development but it's very cumbersome. So can this problem be solved with a different workflow?
Another problem is with conflicts in code. Since base code with every feature branch is from master branch and it has to be merged with development, there are lot of conflicts nowadays. Earlier when we used to fork from development, we used to regularly merge development branch with feature branches people are working on so there were no conflicts but can’t do that anymore. So now to fix conflicts, we create another temporary branch from feature branch with which we merge dev code, fix conflicts and put that as pull request which is again little cumbersome.
This all looks like problem of gitflow workflow not suiting well for mobile development. Is there a better workflow for mobile development that people have adopted or even some practices that can be followed to solve these problems?