This section is out of date, potentially misleading or invalid. Be careful with any instructions here. When in doubt, ask for help from the community.
Fiji is a community effort. So we are happy whenever we see new people developing Fiji!
Purpose
The purpose of this tutorial is to get you started hacking on Fiji’s source code (i.e., the core Fiji plugins). If you need to develop a new plugin for ImageJ, you do not actually need Fiji’s source. Rather, see these resources:
- example-legacy-plugin project template
- Introduction into Developing Plugins tutorial
- Developing ImageJ 1.x plugins with NetBeans screencast
See also Developing Fiji in Eclipse for a tutorial specific to the Eclipse IDE.
Getting started
First, you have to download and build Fiji. If you do not know Git yet, we have a concise introduction for you.
Building Fiji
Fiji is organized into a set of Maven projects. For convenience and speed, there is SciJava’s minimal Maven-lookalike MiniMaven to build Fiji, but it is recommended to use an Integrated Development Environment, or at least real Maven.
For details, please see Downloading and Building Fiji From Source. See also the Supported Compilers page for more information.
Testing
It is strongly recommended to write regression tests (also known as unit tests). It is easy.
Furthermore, it is highly recommended to write and run unit tests in an Integrated Development Environment for efficient debugging. You may also want to measure the code coverage of your tests.
At some point, you might want to debug whatever you wrote. There’s a small Debugging intro page.
Discussing code
When you want to propose and/or discuss changes to some source code, the preferred way is to submit a PR on GitHub.
Contributing
Please have a look at the excellent How to contribute to an existing plugin or library tutorial.
Providing documentation
A plugin wants to be used. Therefore you want to give users some information about it, and most likely also a tutorial how to use it.
If you have an account on this Wiki, you can easily create new tutorials with the Tutorial Maker.
Further reading for developers
- Overview of Fiji’s source code
- Description of ImageJ’s plugin architecture
- Tips for developers
- Developers HowTo
- ImageJ plugin writing tutorial
- ImageJ programming tutorials
- Uploading plugins
- Developing Fiji in Eclipse
- Git
- Project ideas
- Introduction to debugging
- Profiling Java Code
- Tips for C++ developers