ZotDroid - A Zotero Client for Android

Hello everyone!

I'm a big fan of Zotero and I've been using it for a long while. I'm currently an MRes student and I need to get a lot of reading done. I run my own webdav and I like to read papers on my tablet. I organise them all with Zotero. My wife is also a zotero user, in the humanities (I'm in the biological and computer sciences) and we both think it's great!

I used to use Zandy but I found it didnt work for me and I think the developer has left it alone. To that end, I've released another Android Client, ZotDroid.

At the moment, it is in beta and it's version 0.2. It needs a lot of testing - it was designed for my Nexus 10 and so, I need folk to test it, tell me whats wrong and what features you'd like. Basically, I figure I can keep it for myself, or put it out there. At the moment, it needs work, so it's free. It's read only right now. I'm going to start work on write features, such as adding notes and deleting entries. But I need to prioritise so let me know what you think is most important.

You can download it here: https://play.google.com/store/apps/details?id=uk.co.section9.zotdroid

Here are the features thus far:

Reading a fresh copy of a Zotero Library
Downloading an attachment via the WebDav interface
Basic search on all fields
Selecting a collection and viewing the items for just that collection
Incremental syncing
Backing up via SQLite DB

Things still to do:

More testing!
Tag support
Label support
Option as to where to save attachments
Icons to show if an attachment is downloaded already
Adding notes
Removing records
Removing collections
Modifying records
Multiple Author records
Sorting via multiple options such as date
More robust recovery from internet problems
Better UX design
Whatever the greater Zotero community wants


  • I tried to download it, but I got error "incompatible with your device". I have Samsung S3 phone.
  • Thanks for letting me know. First thing to fix. Which Android version are you running? It's likely to be that.
  • Android 4.4.2
  • It says it is not available in my country (Italy)
  • raffam - really not sure why that is the case. I asked the playstore to publish it worldwide. I shall double check this.

    LiborA - Samsung Galaxy S3 claims to be supported. However, my current API target is: API 22 - Lollipop - Android 5.1.

    I'll have a look and see if I can target a more popular API version. There isn't anything in this program that really requires a later API so if I can reduce it down somewhat I will
  • LiborA - Just rolled out another version that supports API 19+ so it should be fine on Lollipop devices.

    The biggest problem is the support for all the devices really. I wonder if there is a better way to do such testing?

    Regardless, I'd be glad to hear what people have to say about features they need.
  • Just a curiosity: does the program make a local copy of the DB and sync (like on a desktop) or is it a client that works online at Zotero.org?
  • Hello there.
    A good question. It uses a DB and sync. I wanted to be able to use my tablet away from an internet connection, such as on flights or the middle of nowhere.
  • Yes, I understand and it could be probably my case too. The question arises because I have a DB with more than 4,000 items and the sqlite file reaches more than 170 MB.

    In that case, does it work on an inserted memory card?

    Thanks for the development!
  • Ah, indeed! This is interesting! I hadn't thought about the size of the database.

    Let me add this as an option for the next version - where to store the Database SQLite file. Cheers!
  • The oauth shake did not make it back to the app when using Firefox as my default browser, but worked fine with chrome. Unclear if that's actually fixable.
    It also never registered when I entered a manually created api key in the settings (it just continued to send me to do the oauth process when clicking sync).

    Once I got it syncing, it shows titles (very large) and allows for switching between collections, but does not show any of the item details. I can see the twisty icon rendered behind the title and it gets toggled, but I don't see any other change.

    This is on a pixel phone.
  • Hi there, I've installed this on a Samsung tablet running Android 7.
    As others have found it won't set up using Firefox but did begin to work with Chrome.
    Unfortunately it got stuck at 70% (or I got impatient ...) and I closed ZotDroid. Now on restarting it (I've tried restarting the tablet) all I get is a total white screen with nothing else. I'll try uninstalling it, reinstalling it see if that helps, but it appears that it doesn't fail gracefully :)
    Other than that - well being able to run it off a sd-card would be really great.
    Exciting stuff, hope you continue to work on it.
  • Hi again, reinstalled it. Restarted it. It synced up to 100% and then it absolutely froze. Quit the application and then got the blank screen of whiteness on restarting.
    How big are people's libraries that are successfully syncing? I've got about 8,200 items.
  • Yes, I've had the firefox issue too. Not sure what best to do about that. Will probably leave it for now.

    Ok so a few points I'm taking away:

    1) Font sizes - definitely a consideration for all the different devices

    2) More item details - I, personally, have only been interested in attachments and the titles. I'll try and add more details and differentiate between these and attachments

    3) Larger libraries can crash things - big databases and SD Card options. My personal library is not so large but does have many large attachments. I'll see if I can test this and make it somewhat faster. My suspicion is that the larger libraries are using too much memory so some level of restriction might be needed. Not sure how best to do that. My library is around the 1000 mark.

    Ok so some good points there. I'll see what I can do over the coming week to make that a little smoother. Cheers for the feedback!

    For these interested, the source is here: https://github.com/OniDaito/ZotDroid

  • edited September 4, 2017
    I installed app on my Samsung S3 and synchronized with my Zotero account. If I try open any pdf then I get I/O Error.

    Edit: 2nd attempt to synchronization with Zoteto database freeze the app.
  • *Downloading an attachment via the WebDav interface*

    If I understand correctly, if you want offline access to all of your PDFs that would require downloading each one one-by-one? (which is not feasible with realistic collections).

    An alternative would be to allow users to specify where the complete Zotero attachment directory structure is (and to leave it up to the user to sync the attachments in any way the user sees fit). In other words, if you let the user sync the attachment base directory, Zotero will find the attachments (because Zotero uses relative paths for attachments), and the user can keep the complete PDF collection synced between devices.

    This is, for instance, the modus operandi that I use when using Referey with Zotero (https://github.com/rdiaz02/Zotero-to-Referey).

    Why does this matter? Because to some of us it is essential that we can have offline access to any of our PDFs so that we can read any arbitrary PDF. And keeping full directories in sync between devices (and resyncing as soon as you are online) is easy (there are many options, from Syncthing to Dropbox to ...).
  • LiborA: Will attempt to solve the I/O problem. That likely means the webdav settings are incorrect. I'll attempt to make the error messages a little more informative.

    rdiaz02: Probably I won't fix that. My collection is also realistic and there is no way it would ever fit on my tablet in it's entiriety. What I would like to do is have the option to do multiple downloads in one go when a connection exists, with a small icon next to an attachment to show it is available offline (in a similar manner to dropbox). I don't like the idea of faffing with more than one application when Zotero does the majority of what I want. Specifiying where the attachments are stored is number 1 in my todo-list though and that could be made to work easily with dropbox I think.
  • Maybe I am lost here, but if one could specify where attachments are stored, then if they are already in the tablet, wouldn't your app be able to find them without any need for WebDAV download?

    P.S. Yes, I have a tablet with loads of storage, of which about 13 GB are zotero pdfs :-)
  • I do not use webdav, I use Zotero storage.
  • LiborA - that makes sense with the I/O error. You'd have to fill in the zotero stuff manually. I will add Zotero WebDav storage as the default option so it works properly. I'll make that a priority.

    rdiaz02 - At present, the save path is the 'default storage path' + ZotDroid. If a file of the same name exists in here, zotdroid will not attempt a download and instead, will open that file. So yes, you are correct. I figured the simplest solution was best. I don't keep an internal database record for downloaded PDFs. This leaves it open to synchronising these files another way 'underneath' zotdroid. ZotDroid always attempts a download if it can't fine the file.
  • @OniDaito Not quite sure what I exactly have to do to avoid the I/O error when trying to open any document.

    It would be great to have the possibility to underline and comment on the documents and have it synched back to Zotero. In the style of PaperShip.
  • Hi there. I've been away for a bit focusing on my research. I'll no doubt be back on to ZotDroid very soon.

    I/O refers to the webdav settings which you need to enter by hand. I prioritised external webdav as it's what I tend to use.

    @"Chandra Ehm" it sounds like you are referring to Zotero's notes and tags feature yes?
  • edited September 13, 2017
    Sorry my ignorance here, what are webdav credentials.

    yes exactly. I was referring to the function that zotfile offers on a computer. When underlining, annotating and commenting you can back those changes back up to the file stored in zotero.
    with apps like PaperShip, you don't need to use the syncing functionality of ZotFile as you can access and annotate your PDFs via your iPad
  • @"Chandra Ehm" So webdav is the bit behind the scenes doing the actual file downloading and the rest. In the options bit there are a couple of lines where you can fill in these details. At present it is manual but I'll add the zotero default one as a matter of priority.

    Note taking is definitely a good idea, as that would be essential! My thinking along these lines is how best to display this onscreen? This is more of a UX issue rather than a sync / internet one.
  • what is default settings for Zotero webdav servers?
  • edited September 17, 2017
  • edited September 13, 2017
    @Chandra%20Ehm no, you do not need start webdav server on your Android device, you have to set up ZotDroid to read data through webdav from Zotero servers.
  • @OniDaito

    can you kindly clarify for me and @LiborA how to correctly insert these basic insertions?
  • My wish list includes: acting as a Zotero connector / intent that lets me add web pages (and other documents) to my Zotero collection. Thanks for developing this.
  • New version 0.3 is out:


    If you don't fill in the webdav section, it will default to using the Zotero Amazon cloud storage. So hopefully this will work for folk.

    Options appear for storing the SQLite database at whichever location you prefer but this isn't implemented yet. Downloads can be saved at whatever location you type in.

    I've been busy with my MRes so I've only just started back on this client. But rest assured, it's still progressing.
Sign In or Register to comment.