Learning Complex Addon Development I am a Blender user with some programming experience wanting to get into Blender addon development. I have looked at some tutorials for developing Blender addons, but they often seem to only teach how to create re-usable buttons for single use scripts (https://www.youtube.com/watch?v=uahfuypQQ04, as an example). Many addons that I’ve seen, however, have functionality that extends far beyond those of simple scripts. Addons like Gaffer, Hard Ops, and Box Cutter all seem to have persistent, modifiable 
elements and, sometimes, custom user interfaces, which seem much more interesting to me than a press a button, do an operation, type of script.

If I did want to learn how to create complex, persistent addons (like Gaffer, Hard Ops, Box Cutter, etc.) are there any resources for learning development of such addons?

(On the experience side of things, I have enough general programming experience [Python and Java, specifically] to understand language fundamentals [functions, classes, etc.] but anything beyond that [like understanding the Blender source code, for example] is beyond my current skill set, but I'd be happy to learn)

Any help would be greatly appreciated

(P.S. If this isn't the place to ask this question, please feel free to tell me. Still learning which Blender forum would be best for these types of questions)
This isn't really the sort of question that is readily answerable on this forum.

If you have a problem with a specific script that you are working on then we can help but the subject you refer to is overly broad.

In an attempt to provide you with a useful answer, the best way to learn is to look at the source cod eof the add-ons to which you refer.  You will learn far more from that than anybody will be able to provide you with here.

The beauty of open-source is that you are able to both learn from and adpt existing code for your own purpose.  I hope this helps.