Every organization might utilize different strategy to develop and deploy software to production. Dynamics Mobile apps and the ecosystem around them allows the organizations to transparently embed the Dynamics Mobile apps deployment procedure into their processes by using the Dynamics Mobile SDK command line tools as well as additional NPM modules to further augment the process.
Dynamics Mobile apps come with a set of node scripts defined in its package.json file. Of course the developers can further tweak the standard scripts or add new ones.
Most software development/implementation business projects suggests that there are several environments with different type of use.
Development environment ( a.k.a. DEV)
used during the development phases by the developers, considered as environment where the software is non-stable
User Acceptance Testing environment ( a.k.a. UAT)
used during formal testing of the software by the end users, considered as semi-stable to stable
Production environment ( a.k.a. PROD )
used by the end users to work with the production system, considered as stable.
In Dynamics Mobile, each environment can be represented by a separate application area - e.g. one application area for Development , one application area for User Acceptance Testing, and one application area for Production.
Some organizations may decide to use a single application area for DEV and User Acceptance Testing. This is possible because , each developer uses it's own sandbox during development - e.g. all the data and changes are only visible from the user who is making the changes and run the app in debug mode ( e.g. hitting the F5/Ctrl+F5 or executing the npm run build npm script.
Once the developer decides that the code is stable, the developer can publish the code by using npm run publish to make the changes available to everyone in the application area and hence making it available for User Acceptance Testing.
Typical Development cycle
While the types and number of the environments and the project governing process may be different, we will try to outline the steps that the developer might use to deploy the app to the upper mentioned generalized environments.