What is Zandy?
Zandy is an Android application for working with a Zotero library on your Android device (for now, it needs to be running Android 2.2 or later). The goal is to do everything that Zotero itself can do, but for now we’re settling for viewing, modifying, adding references, viewing and modifying notes, and viewing attachments.
And what’s Zotero? Zotero is the greatest piece of research management software out there, mainly because it’s the only one with a fanatic community around it, providing support for thousands of academic and non-academic websites, and great plugins for everything from word processing to mapping to file management.
When you first open Zandy, the first thing you’ll see is the basic main menu, with three large, bland buttons: “View Collections”, “View Items” and “Log In”. No frills, just those three.
Before working with your library, you’ll need to connect Zandy to your Zotero account. To do this, press the “Log in” button. You’ll be sent to the Zotero webpage to give permission for the application to access your data. Just enter your username and password as usual, and accept the authorization request. Note that for Zandy to work fully with your Zotero library, you’ll need to give it write access to your library. To do so, click red “Change Permissions” button, and check the boxes “Allow notes access” and “Allow write access”. Then click “Accept Defaults” at the top of the page (yes, even if you’ve already modified the permissions).
Note: It’s important that you just accept or decline the request from Zandy when on the Zotero site, since the authorization process will be interrupted if you, say, decide to browse your library at zotero.org, or even log in and out.
It isn’t necessary to provide write access and note access, but keep in mind that Zandy will still allow you to create notes and make changes locally, without these changes propagating to the server. This may lead to confusion at times, but the main features should work nonetheless.
If you’re having trouble with this process, there’s a manual way to give Zandy access to your Zotero library: see Setting up and changing Zotero.org credentials in the Extra Tips section below.
Once you’ve logged in, you can actually start a sync with the server and get to work.
To start a sync, bring up the menu by pressing your device’s menu button, and touch “Sync”. A message will appear, confirming that a sync has been initiated. The exact data that will be requested from the Zotero server depends a little on what you’re viewing when you initiate a sync, so you should first touch “View Collections” to enter the collections view, then initiate the sync. Zandy will request the full collection list from the server. When you leave the collections view and return to it, the newly loaded collections will be shown.
Minor bug alert: It’s a little inconvenient that the collection list isn’t immediately updated as soon as the sync is complete. This is a general problem with Zandy right now; the interface isn’t usually updated to reflect changes until you leave a screen and come back to it. I’m working on this and hope to eliminate this potentially confusing bit pretty soon. Bear with me.
The general behavior of syncs is that Zandy first sends any locally modified items to the server, such as new items or ones where you’ve edited any fields (more on that later). It then requests updated data for the currently visible collection, if one is being browsed, or for the whole list of collections, if the collection list is being viewed. This means that Zandy doesn’t necessarily always have a complete and up-to-date copy of your library; it instead tries to maintain up-to-date versions of the parts of the library that you’re using.
This behavior can be changed by checking the “Aggressive Syncing” box in Settings. When this is set, Zandy will always attempt to keep the entire library up-to-date. This will mean more traffic.
Once you have some collections and items synced up, you can start exploring. The main way to move around your library in Zandy is by browsing collections, so we start by touching “View Collections” on the initial Zandy screen. If you’ve successfully synced your library, you should see a list of collections, each with the number of (synced) child items and subcollections, as well as sync status, listed.
Note, however, that you don’t have to navigate by collection; you can tap “View items” to see the whole item list, and initiate a sync from that view to get the entire library. You can then navigate using searches or tags.
To drill down and see the subcollections of a collection, just tap it. To open a collection and view the items in it, touch and hold (long-tap) the collection. If a collection is marked “Partial data”, that means that Zandy hasn’t yet attempted to retrieve an item list for that collection; an attempt to view its items will cause Zandy to issue a sync request.
Note: Collection membership in Zandy works just like in Zotero, which means that a single item can belong to any number of collections, and that a view of the items in a collection will not ordinarily show the items in that collection’s subcollections, unless the items were added to both the subcollection and the parent collection explicitly. This can be a little confusing at times.
The basic metaphor across Zandy is tap to open, tap-and-hold to edit: Tap a collection to open its subcollections. Tap-and-hold a collection to show its items (OK, that’s not really editing). Tap an item to see its details, tap-and-hold a detail to modify it. Tap the creator summary (list of last names) to get a view of their full names and roles. Tap-and-hold a creator in this view to modify or delete it. Tap the tag list to get a view of the tags and the tag type (automatic, user). Tap-and-hold a tag in that view to modify or delete it.
The other main axis of navigation is simply the back button– it’s the best way to go back to the collection you were viewing, or the item list, etc.
Search your library
In addition to the hierarchy of collections, you can use searches to navigate your collection. To search, open the options menu and tap Search. At present, the search is limited to item titles and creators. On devices with a physical search button, press it to initiate a search. Note that searches can only be initiated from item listings, and they do not limit the results to the collection currently being viewed.
Future releases of Zandy will bring support for more search fields and for saved searches.
There are several types of editing currently supported by Zandy.
Item Fields. Tap an item in a collection to see its full field list, then tap-and-hold a field. A dialog will pop up to modify the field content.
Creators. Tap the creators when viewing item details to see the full creator list, then tap-and-hold one of the creators. The creator dialog lets you set the creator role, such as Author, Translator or Editor, as well as set the creator’s name using one- or two-field mode. Enter the name in the upper two fields if in two-field mode, or check “Single Field” and enter it in the lower box if single-field mode is intended. In the latter case, the contents of the first two fields will be discarded. You can also delete a creator using the “Delete” button in the dialog.
Tags. Tags work much like creators, but have just one field in their dialog. Tap the tags when viewing item details to see the full tag list, then tap-and-hold one of the tags. Tap a tag to view a list of items with that tag.
Collections. Collections memberships are shown just like tags. Tap a collection in the list to view it or remove that membership, and select “New” from the options menu to add the current item to another collection.
New Items. While viewing an item list, you can create a new item by showing the menu and pressing the “New” button. You will be prompted to choose an item type, then brought to the item details screen. You can also add new items from the browser and by identifier lookup, manually entered or scanned from a bar code. See the sections below.
Item Type. Item type cannot currently be changed from within Zandy. This will be fixed in a later release.
Changes made from within Zandy are synced as described above in “Syncing”.
Notes and Attachments
You can download and view file attachments to your Zotero items. Tap the “Attachments” item in the item details view, then tap the attachment you’re interested in. Once it downloads, it’ll open in an appropriate viewer app on your phone. Once Zotero’s API brings support for modifying attachments, Zandy will support uploads and annotations too. Attachment viewing works for attachments stored in Zotero File Storage or on a WebDAV server. A WebDAV setup requires some more setup– specify the server information in the Zandy preferences. Zandy’s WebDAV support currently doesn’t allow self-signed SSL certificates, so you may need to use HTTP and not HTTPS if you are running your own server (see Ticket #66).
To view item notes, tap “Attachments” in the item details view, and tap the desired note to read and edit it. To create a new note, select “New” from the options menu while viewing the attachment list. Note that Zandy does not support rich-text editing of notes, so you may find that many of your notes have a lot of raw HTML tags in them. Sorry about that– a fix is planned, but it may take some time to implement.
Standalone notes are listed alongside regular items, just like in the desktop Zotero client.
If you find interesting pages while browsing the web, you can send them to Zandy using your device’s “Send Page” function; this will create an webpage item in your library with the page’s title and URL. Zandy can’t yet produce webpage snapshots or run site translators like Zotero proper, but that’s planned too. Since this uses the general “share” intent on Android, you may find that you can send links from other apps too, not just the browser.
Identifier lookup / Barcode scanning
You can now add items by entering an ISBN manually, or by scanning a bar code. To use this feature, select “Add by identifier” from the options menu while viewing any item list. The item should be added to the currently open collection. The metadata isn’t perfect yet, but it’s a start. A future release, probably in the 1.2.x series, will request better metadata from the Library of Congress catalog when available. This feature uses the great zxing library, and it’ll prompt you to install a bar code reader if it’s not already installed on your device.
When the new item has been fetched, Zandy will open the item details view to make any further changes, rather like the integration with the browser’s Send function.
The ISBN lookup is limited by the scope of WorldCat’s index, so you may find that some non-Western publications are not found.
Setting up and changing Zotero.org credentials. In addition to the process described above (it’s called OAuth), it’s also possible to set your Zotero.org credentials manually. Press the options/menu button on your device to bring up the application menu, and press “Settings”. You can then set your user ID and API key manually. To find those out and set them up, see the “API Keys” section of the preferences for your account at Zotero.org; note that the user ID is a numeric ID, not your username.
To log out of Zotero, clear the contents of the User ID and API Key fields in the Zandy settings. You can log in again using the main screen button or by manually entering credentials, as described above.
Switching users. Changing the credentials in the Zandy settings can convince Zandy to communicate with Zotero as another user, but it’s likely to cause a bit of a mess. To switch users, the easiest way is to reset the Zandy application data from the Android preferences and start anew.
WebDAV. Zandy’s support for WebDAV is brand-new, and it’s currently limited to opening PDFs. This is largely an artificial limitation, and it should be lifted in the coming week or so. I have also found that Android PDF readers, including Adobe’s reader, sometimes fail to open items without a .pdf extension, as sometimes occurs with attachments fetched from the server. Try another PDF reader if this happens.
If you’re having any trouble with Zandy, or you have any ideas to improve it, I want to hear it!
Also, please submit crash reports on any crashes that might occur–the reports provide valuable information on the precise cause of the crash, making it easy to provide a quick fix. See Troubleshooting.
For the more technically inclined, you can also take a look at Zandy’s home on GitHub, where you’ll find the source code, current open issues, and progress on the upcoming release milestones.
- Conflict resolution is not implemented. This means that local changes will fail to propagate to the server if the item has changed on the server side. Updated data from the server received on a sync will silently overwrite the local changes. It is advisable to sync frequently to prevent such conflicts, at least until this issue is resolved. (Ticket #18)
- As described above, changes do not always display immediately in the current collection. This affects the outcome of syncs in particular.
- Items deleted using the traditional Zotero client are not removed from Zandy when syncing.
Just like the Zotero project itself, Zandy is licensed under a Free license, the Affero GNU General Public License, version 3. That means, among other things, that all the source code is freely available, and you can make changes and distribute those changed versions yourself. It is based in small part on the code by Martin Paul Eve to make a Mendeley client for Android. It also uses icons from FamFamFam’s Silk icon set, licensed under the Creative Commons Attribution 2.5 license, and icons from the free icon set provided by Glyphish, licensed under the Creative Commons Attribution 3.0 United States license. Finally, Zandy uses an OAuth implementation from the oauth-signpost project, which is licensed under the Apache license, version 2, and code from the great zxing project for barcode scanner integration, under the same Apache license.
Item metadata for ISBNs is provided by the OCLC xISBN service.
You might be wondering– if Zandy is licensed under a Free license, why does it cost $3.99 on the Android Market and Amazon? Well, that’s because I think it’s worth that much, and that’s enough to make it worthwhile for me to keep working on the project and make it the greatest way to keep up on your research from Android devices. Still, the beauty of it being Free software is that any interested person can take the code and compile it for themselves, or even build a new, even competing project off of it, with the sole caveat that they have to share their modified code.