How do app code updates work?

I have a user generated app stored in Apps Code.
I have an instance of that App under Apps.

If I update the code under Apps Code, does the running instance of the App get the new code, or is it still running the old code until some event like...? Do I need to force refresh the App by re-installing it or something, or does it just pickup the new code automagically?

1 Like

It starts using the new code automatically once you save the source file. No other steps are necessary unless you have the app actually open at that moment, in which case a page refresh would re-render the page with the new code.

3 Likes

Thanks for the reply. Is the same true for Drivers code?

This... well this doesn't seem to be how things are behaving. I'm seeing an error in the logs from a statement that no longer exists in the latest version of the App code.

This App creates a child device, could that be keeping it from updating?

Yes sir.

Whats the error...and is it being generated from the parent or child?

It's being generated from the parent. It looks like its from a scheduled event that's still scheduled, even though I removed the code that does that. Hmm... how to remove the old schedule?

app:3852018-11-24 07:33:27.076 pm errorgroovy.lang.MissingMethodException: No signature of method: app1543103580756660629052.runRefresh() is applicable for argument types: () values: [] Possible solutions: refresh() (runRefresh)

Ahh...schedule events will remain until unscheduled. Normally you would have an
unschedule()

command in your updated() or initialize() methods. I think it depends on the flow of your app. So every time something changes (input, etc) the scheduiled commands are unscheduled and resheduled.

1 Like

OK that's easy enough to fix, thanks. I was doing the unschedule() on uninstalled() only not on updated().

If you add it to updated()...then change any input value and save. That should call the updated method once you click on Done.

That did it, thanks!

1 Like