cancel
Showing results for 
Search instead for 
Did you mean: 

Collaborative MDK Development Best Practices

Mark112358
Active Participant
0 Kudos

I'm hoping to get some advice from the MDK community on best practices for collaborative development. Our team is running into some issues with the deploy-to-test workflow when multiple developers are working on the same app.

The Problem:

We're finding that if one developer deploys their changes to the app to test, it overwrites the changes that another developer may have deployed previously. This can lead to lost work and frustration.

Our Current Setup:

  • We're using MDK for mobile app development.
  • We have multiple developers working on different parts of the app simultaneously.
  • We're deploying to a shared development environment for testing.

SAP Mobile Services 

Accepted Solutions (1)

Accepted Solutions (1)

bill_froelich
Product and Topic Expert
Product and Topic Expert

Typically I would recommend the following for multi-user development.

1. Create an app in Mobile Services for each individual developer as their dev instance.  This app is then only used by the assigned developer which avoids dev work in progress from overwriting someone else's dev work.  One option is to just extend the id to include the dev name such as com.mycompany.appname.dev.bill.  Feel free to use what works best for your situation.

2. Put your metadata in a Version Control (like git) repository.  Individual developer should checkout the repo and use branches to isolate their changes so they can commit work in progress for backup purposes but not affect the main branch.  Once their changes are fully tested they can raise Pull Request to commit back to the main branch.

3. Setup your integration/QA app instance in Mobile Services and deploy from only from the main branch to this app.  This ensures developer WIP does not appear until committed back to the main branch.  For the deploy you can manage that either as a manual process or automate it and use the MDK tools CLI commands to deploy from the main branch to QA.  You could even setup a local CI/CD environment to automatically trigger deploys to QA on commit to the main branch.  What option you choose here will depend on your company development standards / tools / etc.

Hopefully this gives you some thoughts on how you can enhance your current processes.

Answers (0)