Bullets and Tables

Currently, Scrivener for iOS does not officially support tables and only has limited support for bullets and lists:

  • Lists and tables created in the Mac or Windows versions of Scrivener will be opened, displayed and saved correctly in our iOS version, with no data loss.

  • You can create and edit lists, but only one-level deep. Indented lists are not supported.

  • You cannot create tables in the iOS version, and editing tables is limited to changing the text in each cell.

The reason for these limitations reside in Apple's iOS frameworks. Scrivener for iOS uses Apple's TextKit to display and edit text, which is much the same code used by the Mac version. The TextKit is hugely powerful and flexible, and it allows Scrivener to maintain all formatting across platforms without any data loss on sync. It also allows Scrivener to provide full rich text formatting, along with the ability to support all sorts of custom elements such as footnotes and comments. However, although Apple's TextKit has the same lists and tables code inside it as Apple's macOS frameworks (thus they appear the same on both platforms), Apple has not exposed the lists and tables code on iOS for third-party developers to use. This means that, until Apple exposes these features in the code, making them available to third-party developers, we are limited in what we can do. (If we tried to access Apple's private code, we would automatically be rejected from the App Store because this is disallowed).

Providing better support for these features on iOS without using Apple's frameworks would mean writing our own lists and tables code from scratch not just for iOS but also replacing it all on macOS (for cross-platform compatibility). This would not only affect the UI, but we'd also need to then write all of our own importers and exporters for every file format that supports these features rather than being able to use a mix of our own importers/exporters and Apple-provided ones as we do now. As we are a very small company and both the macOS and iOS versions are coded by a single developer (me!) this is, unfortunately, out of scope for the time being.

I have raised this issue with Apple, asking them to expose bullets and lists to developers so that I can improve support for these features in the future. My issue was filed with Apple as Apple bug ID #25677321 in April 2016, and closed as a duplicate of bug ID #17841441 (meaning another developer has also raised the issue with them). At the time of writing, it doesn't look as though this improvement has yet been made in iOS 10.

Basic (one-level deep) bulleted and numbered lists are supported, however.