Scythebill is a desktop application for birders to keep track of their life lists and birding records. There's plenty of great birdlist software and birding software available today, but:
- Scythebill is free (and will remain so).
- Scythebill is easy-to-use. It takes a few minutes to get started.
- Scythebill is cross-platform - you don't need to lose your list just because you switch from Mac to Windows to Linux.
- Scythebill is open-source, so anyone can contribute to its development.
Of course, for many birders, the commercial software is absolutely ideal, and Scythebill can export your records out, so you can load them into another piece of software. It's your data - you should be able to use it anywhere you want.
Scythebill binaries can be downloaded here; this website is for the open-source codebase, and not particularly intended to be user-friendly.
Scythebill is licensed under the Apache 2.0 license.
How to build
- Java 10 or later.
- Git (for access to the source)
- Maven (I'm using 3.0.5, anything later will be fine too)
- Download the code
- Change to the directory with the code, and then "mvn install"
- .. and done. The first build will be slow - lots for maven to download - but subsequent clean builds take about 30 seconds. The generic app will be in app/target/app-<version>-SNAPSHOT.jar. If you're on a Mac, the application will be in mac-app/target/binary and mac-app/target/bundled.
Build instructions for Windows and Linux
These are both currently built using BitRock InstallBuilder
MacOS is built via JavaPackager, right in Maven, without any extra build steps. It's signed using a key that only Adam Winer happens to have, but can be built without that key.
How to release
- Download a clean copy of the code.
- Run mvn release:clean release:prepare
Contributions would be very, very welcome. Please let me know if you're interested. If you've got questions about contributing, please email email@example.com.
Code style is Google-ish:
- No tabs allowed.
- Indent of two spaces.
- Variable/class access should be as restrictive as possible (e.g. private instance variables by default)
- No prefixes for variable names
A few notes about the code:
- There are far too few unit tests. Mea culpa.
- Guice is used (perhaps abused) in a lot of the code. Most of the oddest instances are hidden in startup code and the frame registry code, so most hacking on the code should not require any deep understanding of Guice.