I also thought about putting a shortcut on the desktop and then didn't - first I couldn't find out how to reference the user's home folder - /home/$USER did not work in a script and second, the advice I found on the web was that it was bad practice to make changes to the user's home folder in a deb. It was apparently okay for myapp to make changes to the user's home on first run, e.g. creating config files.
As for updating myapp to myapp2, etc. This is what you can/should use preinst for - to get rid of the old version. If you look at the link I gave you early on, you will find in there the script I had for preinst to delete old versions of foxclone. It tests for the existence of foxclone* and if found deletes the old files. Scripting you do with bash, not one of my strengths but lots of info on the web and if stuck, ask on the forum, there are many more knowledgeable than me in the arcane ways of bash (I always trip up on syntax).
On dependencies, you may stumble. An example, foxclone uses mkdir, but you can't list that as a dependency, you need coreutils which is the package that contains mkdir. Others are easy, parted is in the parted package. Google is your friend here - you need to list every linux utility myapp uses and then search to find out what package it is in. Or just put it in the control file and it will tell you if you got it wrong when you try to build it.
Note - you are only getting this advice because I generated my first deb a couple of months ago, I'm only slightly ahead of you

Homebrew i5-8400+GTX1080 Cinnamon 19.0, 3 x Thinkpad T430 Cinnamon 19.0, i7-3632 , i5-3320, i5-3210, Thinkpad T60 19.0 Mate