Andrew Peacock
Posts: 0
Joined: Thu Jan 09, 2014 10:03 pm

Advice sought on how to manage dev / production releases?

Hi all,
For those of you used to having development/production releases of software, how do you manage the testing a test release, on actual devices? And how do you get that released for production?

Appery team: it would be great to be able to flag an app as test/production, and have somewhere to point specific device IDs to the test release rather than production release.

Looking forward to some inspiration!

Regards,
Andy

Bruce Stuart
Posts: 0
Joined: Fri Oct 24, 2014 4:42 am

Advice sought on how to manage dev / production releases?

Andy,

Since a majority of my clients are corporate clients - and they have high end demands on test and produciton - here's what I do in an Appery plug-in that I developed and have sold to each of them - it's a jQuery framework that I use for each of my apps - and simply build customizations on top of ( Appery doesn't have their plugin Marketplace up and functional yet - so - I haven't offered it here....)

  1. I have a table in my 'common' database - that I use (holds users and devices) - that is called 'control'. this table is keyed on a field that I call 'ReleaseNumber' - this release number is the same release number that is on the Apple and Android build numbers in the appery 'App Settings' tab.

  2. I have linked into my app a Cordova Plugin called "AppVersion" - this plugin does the simple task of reading the build number (on deviceReady) from the compiled application - and - uses that Version number - to read the control table.

  3. The control table has on it - the database ID that I use for all other talbes - everything other than the user table and the devices table. The users table being common has the advantage of letting users have the same test and prod credentials - however, when a build is pointed at prod - the takes , puts and modifies data - from the Produciton database - and when it test - does the same - but for test.

  4. My framework also records the all the devices a user may swap between - and when doing notifications - I use it to notify a user on all of his-her devices - instead of just the one they are on.

  5. When you are ready to take an app from test to prod - you simply up the build number in the App settings for both Android and IOS (which you are going to do anyway) - add a row to the control table with that same build number - point it to your production database - and you're off to the races.

    You can easily do the same in code.

Bruce Stuart
Posts: 0
Joined: Fri Oct 24, 2014 4:42 am

Advice sought on how to manage dev / production releases?

Just FYI - to add onto what I just posted - you can use this concept to swap a build from Test to production - 'on the fly'. So - when you get a build to a point where you want Apple to approve your build - you point it to test - and let them test away against your test data set - the moment you get their approval - you swap the database ID in the control table for that build from your test database - to your production database - change a flag from 'test' to 'production' - and you're off to the races.

Bruce Stuart
Posts: 0
Joined: Fri Oct 24, 2014 4:42 am

Advice sought on how to manage dev / production releases?

Not to over-post here - but to address an item in your original question - this approach has the advantage of allowing users to be able to run a test release on their device when you are in testing mode, and when you release it to production - that same device can run your production version - without any device level changes - by just loading the new version from the store (that has the version number embedded in it )

Andrew Peacock
Posts: 0
Joined: Thu Jan 09, 2014 10:03 pm

Advice sought on how to manage dev / production releases?

Hi Bruce,
Thanks for the detailed response, and apologies for the delay getting back to you. It's been one of "those" weeks.

OK, I think the Appery plugin piece is the thing I'm looking for, as the database for my app won't vary very much (the backend is actually a heavily-customised Wordpress installation, as I have a web front-end admin facility and the mobile end-user app).

So my main issue is around code versioning.

I'm new to Angular, but I've started moving whole chunks of code into custom Angular services, held in one JS file each, which helps to make it easier to copy/paste between Appery apps. Maybe the Appery plugin functionality will help with this - I think I'll need an beta plugin and the current live plugin, and a beta app and the live app, then just apply the relevant plugin as follows:

Live plugin - Live app

Apply hotfixes to live plugin - live app

Develop new functionality on beta plugin

Beta plugin - Beta app for testing

Beta plugin - Live app for release

I've not used the Appery plugin function (in particular I have questions around re-applying a different version of the same plugin), but it might be the way forward.

Appreciate your help!

Andy

Return to “Issues”