Anyone know of good up-to-date tutorials or books to get started with Jira App development?

Hello,
I have the book “Practical Jira Plugins” (by Matthew B. Doar) (Practical JIRA Plugins: Using JIRA Effectively: Custom Development 1, Doar, Matthew B., eBook - Amazon.com)
It’s well written, and explains things well - but unfortunately it’s from 2011, and based on Jira 5.x. Lots of things are out of date, or just slightly different - enough to make things very difficult to figure out for someone new to developing Jira apps/plugins.

I have also followed the Atlassian tutorial here: https://developer.atlassian.com/server/jira/platform/creating-a-custom-field-in-jira/

but this also seems to be out of date, and, again, includes items that are no longer used etc. - making it very difficult to get started.

Does anyone know of a good, up-to-date (valid for Jira 8.x, preferably 8.20+) tutorial, guide, training session, book, or anything else to help me get started with some basic plugin building?

Thanks,
Dan

2 Likes

I am also finding it hard to find reliable and up to date resources for plugin development. Specially when starting from scratch.

This one is good.
Not the freshest, but still mostly up to date.

1 Like

I used these while I was learning how to create a custom field type in Data Center:

Using the SDK: Set up the Atlassian Plugin SDK and build a project

Custom Field Type example: https://developer.atlassian.com/server/jira/platform/creating-a-custom-field-type/#:~:text=Create%20a%20test%20user%20and%20test%20your%20custom%20field%20type,-Now%20that%20you&text=From%20any%20page%20in%20your,Click%20Projects%20>%20Create%20Project.

And the Practical Jira plugins book you mentioned. I got all I needed from a Oreilly time-limited trial.

Certain things have indeed changed, in particular about web resources in atlassian-plugin.xml. Looking at my comments I recorded this:

	<!-- Web resources like CSS and JS -->
	<web-resource key="resources" name="Jira Resources">
		<!-- Since Jira 5.0, edit screen no longer supports $webResourceManager.requireResource. We need to put resources in specific context instead. -->
	 	<context>atl.general</context> <!-- General context -->
	 	<context>atl.admin</context> <!-- Admin context, i.e. custom field configuration pages -->
	 	<context>customerportal</context> <!-- Customer portal, i.e. service management pages -->
	 	<context>servicedesk.general</context> <!-- Service Desk general -->
    	<context>servicedesk.admin</context> <!-- Sercice Desk admin -->
    	
		<!-- This will transform AJS.I18n.getText('xxx') in .js files -->
		<transformation extension="js">
        	<transformer key="jsI18n"/>
		</transformation>
    	
    	<resource type="download" name="CustomField.css" location="/css/CustomFieldTypes.css"/>
    	<resource type="download" name="CustomFieldTypes.js" location="/js/CustomFieldTypes.js"/>
    	
    	<!-- Request inclusion of jquery-ui library for select2, a dropdown with autocomplete -->
		<dependency>com.atlassian.auiplugin:ajs</dependency>
    	<dependency>com.atlassian.auiplugin:jquery-ui-other</dependency>
    	<dependency>com.atlassian.auiplugin:aui-select2</dependency>
    </web-resource>

Another thing is Service Management messes with select2. Base Jira has the quick-edit feature, you click on a field to enter edit mode, you click outside to cancel it. Select2 implements the custom dropdown by using a floating div, and for base Jira that won’t trigger cancelling quickedit. But Service Management registered additional event listeners, and using Select2 will count as closing quickedit. See: [JSDSERVER-5777] JSD Javascript disbale Inline Edit for Select 2 field - Create and track feature requests for Atlassian products.