The Mobile Molecular DataSheet (MMDS) app has been out there on the appstore for quite a long time (3.5 years), and has picked up quite a few rather advanced features. Along the way it has also accumulated an equally long wishlist of things to do, and things to improve on after the original iterative attempts to get it right. The next version that is waiting for review in the appstore (1.4.9) has two most noticeable changes: icon menus on the front-facing panel, and a redesigned import process.
The screenshot to the right shows what the new icon menu looks like: this is the whole-datasheet menu. All versions until the latest one use a text menu popup, which is more similar to a conventional desktop-style application context menu (e.g. right-mouse click). The text menus worked well enough at first, but as the number of possible actions that can be carried out on a datasheet (or a row thereof) increases, the number of menu items overflows past what can comfortably fit on an iPhone’s tiny little screen.
Personally I’ve never been a fan of menus-within-menus. They are cumbersome to access, even (or especially) with a mouse. If you know the feature you want is in a submenu, it’s annoying to go through multiple steps each time. And if you don’t know about the feature and where it is, you might never guess where to look. And that’s especially bad.
The nice thing about icon menu buttons is that you can fit loads of them in a small space. The not-so-nice thing about icons is that most actions cannot be conceptually mapped to a representative glyph that is distinctive and self-evident (even the super-hyped efforts of Apple’s design team is a load of hot air: the reality distortion field makes people forget that for the first few times they saw a new kind of squiggle on the screen they had no idea what it did, until they banged on it a few times and learned by trial and error). So, as with the icon-based interfaces for the molecule editor, reaction editor, datasheet editor, and front pages for apps such as SAR Table, MolPrime and MolSync, the MMDS app now uses button banks. The intuitivity (if that’s a word) splits the difference between the compact single level with the inline help that pops up on the screen as you move your finger over the icon. If you look at the screenshot above, one of the icons is highlighted in green, because the finger is being held over it; the help text overlay above that explains what the action is going to do, in more detail than is possible in a single text menu.
Other than icons, the next major change is the way MMDS imports content. For iOS apps, the most generic and well-defined way to get data content into an app is to have it register itself as being able to understand certain file types (by file extension or MIME type). Selecting MMDS as the destination for opened content causes the app to be launched. Until the latest version, one of three things might happen: (1) if the incoming content is resolved to a molecule, it got added to the scratch sheet; (2) if it is a tabular data structure, it is imported as a brand new datasheet; (3) if it has special MolSync headers, it might be used to update an existing datasheet.
This was clearly too inflexible, since there are many different valid actions to be taken with incoming content. The user should be able to choose whether to use it to create a new datasheet, or integrate it into an existing one. This is now the case, because any kind of import event triggers the assimilation dialog box.
The dialog shows a preview of the included data, as well as a list of possible destinations, one of which is the option to create a new datasheet. The content can be appended (or prepended); it can be used to replace an existing datasheet (after making a backup of the original); or if the schema is the same, it can be merged, which means that only rows that have no identical match are added on.
As another note, the longstanding integration between MMDS and the MolSync app may be phased out in terms of a less fragile, more adhoc method. The current system is based on interprocess communication between the two apps, so that the latter can expose access to various remote storage repositories (currently Dropbox and iCloud). The synchronisation is done by adding a metadata entry to the datasheet to remember where it’s supposed to be stored, on the various storage devices. In principle the plan is sound, but in practice it is a bit rickety – and it may not be viable to improve that, because the iOS platform currently still has limited interprocess communication techniques. However, with a better general purpose importing process, simple matching (defaulting to same title/same datasheet), easy previewing, and easy overwriting, should make this largely superfluous.
It may take a few more iterations to refine the new system into something that works for most scenarios, but the important thing is that getting data in and out of MMDS has bubbled up to the top of the priority queue, and is being actively worked on.