While I have consumed many plug-ins, I haven't created any that aren't security related. And just quietly, the security plug-ins are a fair simple encapsulation of a known entity.
If you want to learn how to create plug-ins using the tools available, I would recommend reading Expert Oracle Application Express Plugins, by Martin Giffy D'Souza.
I started a technical review for this book, but had to pull out due to poor timing - super busy with too many other projects. Publishers apress kindly sent me a copy of the book regardless, which I read on train rides to work.
Chapter 1, IntroductionFairly short but concise description of what is covered in the book. Again due to poor timing, Martin was unable to include the authentication & authorisation plug-ins - but on fundamentals alone you could build these no problems after reading half the book.
Chapter 2, Plug-in FundamentalsUsing some simple examples, it builds a pretty good picture on the required infrastructure for a plug-in.
Chapter 3, Item Plug-insA very thorough guide to building a date-picker item plug-in, probably the most popular & UI related plug-ins you'll encounter. I've had a few ideas & needs for item plug-ins, such as a Forms style combo-box that operates as a select list of an LOV as well as a free text input. If I had the time, this chapter would be my "right hand man" for building it.
As with much of the book, it's very syntax heavy - so be prepared for that. However, it's quality code - well structured and is a good reference.
You are also introduced to the console wrapper in this chapter.
Chapter 4, Dynamic Action Plug-insFirst Martin does well to describe how dynamic actions work, then goes into an example of creating a modal dialog.
Chapter 5, Region Plug-insAgain Martin sets the picture and talks about the importance of AJAX. He then pushes us in to the deep end by building a region to display titles from an RSS feed.
Chapter 6, Process Plug-insProcess plug-ins are a great example of basic software engineering, where we can encapsulate complexity and increase reusability - the major tenant of plug-ins. Martin uses this to create the black box that is to send a message to a mobile phone. He doesn't forget to include the technical requirements for this using SMTP.
Chapter 7, Best Practices and communityThe best thing about plug-ins is you don't need to write them, you can just consume them as part of the community. But of course, they introduce the concept of "cost of not writing the plug-in". Martin also covers security, instrumentation, commenting, templates, versioning, compression & error handling - lots of goodies ;-)
SummaryCertainly a very technical book on APEX plug-ins, but to become an effective plug-in developer you would expect nothing less. Even as a consumer of plug-ins, it wouldn't hurt to have a better understanding of how they work & fit together. Certainly, if you end up having to write one, this is is the best reference out there.
Related LinksCommunity Plug-ins