Re: Plugins
Walker, Michael E
Hi, I have a Python background, although it has been a couple years since I have used it. Learning frameworks and reading code from open source projects is the part I tend to find the most challenging. From what I gathered from your last email though, it sounds like the best approach for someone starting out with NVDA add-on development is to start by reading and understanding the source code of small add-ons, and using the API documentation as a reference, instead of diving right into the API, and that once one understands the code from the add-on they have studied, they can begin to tinker with it/modify it, or use what they learned from reading that add-on, to perhaps write another small add-on for practice.
Thanks, Mike
From: nvda@nvda.groups.io [mailto:nvda@nvda.groups.io]
On Behalf Of Joseph Lee
Sent: Friday, September 29, 2017 11:53 AM To: nvda@nvda.groups.io Subject: Re: [nvda] Plugins
Hi, I always recommend new people to learn Python first, as it teaches folks what to do and how to solve basic problems. In terms of scale of add-ons, Remote Support is arguably one of the most impactful add-ons out there. The big picture is quite simple to understand, but the code is a bit complicated because it hooks deeply into NVDA. There is a possibility that this could be simplified in the future. My own add-on collection shows varying skill, complexity and impact. Perhaps the most powerful add-on I have is Windows 10 App Essentials due to its impact - I’d say that this simple add-on has fundamentally changed how people view NVDA’s compatibility with Windows 10. But that add-on does not compare to StationPlaylist Studio add-on, which is perhaps one of the most complex add-ons in existence (besides DictationBridge). One thing to keep in mind: do not think about creating the most complex add-on, especially when you are just starting out on this journey. The most powerful add-ons are ones that had huge impact on the community to a point where it changed how people view and think about NVDA (and in some cases, teach NVDA). Even small add-ons (such as ClipSpeak) is impactful. Cheers, Joseph
From: nvda@nvda.groups.io [mailto:nvda@nvda.groups.io]
On Behalf Of Walker, Michael E
Thank you for the information.
Where do most people start, when learning to write add-ons? What I noticed from reading the documentation you hosted is that there are a lot of modules and classes where some have English descriptions of what the methods do and variables mean, but for others it seems you have to dive right into the code to ascertain what something does. While I have more reading to do, I also saw the code in the developer guide that shows how to write an app module for Notepad. However, how do you learn to write large-scale add-ons, such as what Tyler Spivy did with NVDA Remote? I am interested in hearing from multiple add-on developers about how they began this exciting journey.
Thanks, Mike
From: nvda@nvda.groups.io [mailto:nvda@nvda.groups.io]
On Behalf Of Joseph Lee
Hi, I’m hosting that collection on a temporary basis until NV Access publishes this on a more regular basis i.e. when stable releases are made. 2017.4 introduces several new things that’ll impact almost all add-ons. Cheers, Joseph
From: nvda@nvda.groups.io [mailto:nvda@nvda.groups.io]
On Behalf Of Walker, Michael E
Thank you. I kept thinking I would need to pull the NVDA source from Git and go through the Python source files to get to the documentation, such as in the form of Python docstrings and comments. I knew there had to be a better way though. Someone should post that reference you just shared to the development wiki. I did not see it anywhere. I am exploring if NVDA app modules and global plugins are something I would enjoy writing.
Thanks, Mike
From: nvda@nvda.groups.io [mailto:nvda@nvda.groups.io]
On Behalf Of Joseph Lee
Hi, Usually it refers to source code and the documentation that gets generated from it. I keep a copy of it on my website at: http://www.josephsl.net/files/nvdadocs/dev/
Cheers, Joseph
From: nvda@nvda.groups.io [mailto:nvda@nvda.groups.io]
On Behalf Of Walker, Michael E
Hi, when I see verbiage in the NVDA developer guide such as, “Developers should consult the code documentation for a complete reference,” what exactly does that mean? In this context, I do not see a link to code documentation, or a reference. I tried to subscribe to the developer mailing list on SourceForge to post this question, but did not get a confirmation email, even though I believe that would be the more appropriate place for this question. Has the list moved?
Thanks, Mike |
|