We are using AppStudio to create native apps for both Android and iOS. It is quite straight forward when creating apps using a template, i.e. the "MapViewer" template, as-is. We are creating apps by using a template and then customizing the source code to fit specific needs.
And it is here we are facing an issue, when a new version of the runtime and/or framework is published and we want (or must) upgrade to the latest versions. It is a slow-going and manual process to "upgrade" our existing code. We find it "easier" (but still problematic) to just create a new app using the latest version of the template and then copy-paste our own source code from the old project into the new one. If we are not very careful the new app is not working because something has changed in the runtime.
So, my question is this: Do some kind of "upgrade"-tool exist for this kind of process, and if not what is the best practice for going from and older version to a new one?
Any help is greatly appreciated.
Thanks in advance.
What version of AppStudio are you migrating to and from? There's no such tool, but the changes should be documented in each release blog as far as Qt version changes and AppFramework changes.
What version of Runtime are you migrating to and from?
If you are migrating from 10.2.x to 100.x , we have documentation that explains the process. Migrate to 100.x from 10.2.x—ArcGIS Runtime SDK for Qt | ArcGIS for Developers , but it does require a re-write because Runtime 100.x is considered a different product as compare to Runtime 10.2.x
But as far as upgrading between 100.x version should be pretty straight forward.
Great question, infact its more of a generic topic of managing and keeping up with software code changes. This problem is no different that multiple people working on a single code base with all of them making changes. So the solution to both the above situations is to use a version control system such as git (along with a service like github to make it easier).
In your case this is what I would do:
0. Download and install git client (like Github desktop). Make sure you have a github (or equivalent like Gitlab) account.
1. Open your AppStudio project location make it a git repo.
2. Sync your project to Github repo
3. Make code changes normally and use commits/Pull Request workflows
4. When ever a new version of template or update is available, create a new branch and compare the changes. You can then selectively merge or even submit focussed code changes.
I just realized this would make a good blog post so we will work on that.
Thanks for reaching out and happy coding,
Thanks for the reply. We are currently using GIT and a number of repos. All having this structure:
All the apps in AppStudio are placed locally in this folder: C:\users\(username)\ArcGIS\AppStudio\Apps, and each folder underneath with an UUID as the foldername represents an app.
Is there any way to configure how the folder structure of these apps look like? I mean, I want to be able to download an app from AppStudio and the local folder should look like this: C:\users\(username)\ArcGIS\AppStudio\Apps\(UUID)\src\(here should my Qt project be placed). The reason for this is that I want to be able to seperate code from documentation and readme and changelog files.
I would happily elaborate on this if my question seems strange :)