Data Transfer Pack

Reaching this goal will produce enough income for me to spend the time to add the following features to The Shelf as part of the Data Transfer Pack:

  • Share Extension1
    • Implement a way to share from anywhere in iOS into The Shelf
    • Add to The Shelf directly for any app that supports sharing
  • Widget
    • Widget to allow another place to drag to and drop from.
  • Syncing
    • Sync the data to iCloud so that you can share the same shelf across all your iOS devices
    • This will require space in your iCloud storage
  • Import from Files
    • Implement a way to import files from the new iOS 11 Files picker from inside The Shelf

Once the goal is reached, this will take approximately 3 months to add to The Shelf. I also cannot guarantee that all features will be added, as the feasibility of each has not been fully defined.

What is a data type?


A data type is a whole series of logic and assets in The Shelf that determines how a piece of data is imported, stored, displayed, and exported. As an example, the Image data type:

  • imports the image data
  • Checks if there is a URL of the image available too
  • Stores the image in an appropriate manner
  • Displays the image in the cell with the orange photos style badge on it
  • Allows the image to be previewed
  • Enables the image and available URL to be exported.

How it works?

When something is dropped into The Shelf, iOS tells The Shelf what type of data is available form the drop. For example, when an text extract is dropped from Safari, the following representations are available:

  1. Apple Web Archive Type
  2. Attributed String
  3. Rich Text
  4. Plain Text

These are ordered in degrading fidelity, where the top one is the most representative. From this, The Shelf decides which data type is most suitable to store this data for later. The Shelf, then stores the data as that data type and displays it on screen.

Adding new data types

As more apps support drag and drop, The Shelf will need to be updated to add support for these new types. For example, if a contact card is dropped into The Shelf today, it will just store the text representation of it, as that is all The Shelf knows how to handle. However, with a day or two of work The Shelf can be updated to support contact cards, this will involve:

  1. Identifying suitably high fidelity version of the card to import
  2. Identify alternate representations that may be useful to the user1
  3. Implementing the logic to extract the correct data from the drop
  4. Implementing the logic to store the data in the app
  5. Designing and creating a badge icon to display in the UI
  6. Designing and creating the Cell UI to display the item on the shelf
  7. Designing and creating the Preview UI see the item
  8. Implementing the logic to export the data when needed

Requesting data types

Does your favourite app support Drag and Drop and you want The Shelf to support it? Let me know via email or twitter.

Once I have a bunch of request, I make it public which type are the most requested and what order I plan to add them. Based on the number of subscribers, I will be adding up to  3 new data types each month.


What is a theme?

The current theme of The Shelf is the icon style with badges over the top right corner and the orange tinting. I have many more ideas for layouts to allow users to customise the appearance of The Shelf. For example, full width, short cells1, or big square cells with the titles within the cells, etc.

I also plan to add different tint colours that will propagate across the whole UI, as the orange tint does today.

I also plan to have a dynamic icon that will represent that current theme and tint colour, as the initial icon does matching the badged icon UI and orange colour.

Workflow at Apple and SiriKit

Last week, Apple bought workflow. I have listened to many podcasts on the topic this week, there seems to be an option that was overlooked – the potential of SiriKit integration.

With iOS 10, Apple introduced SiriKit which allowed interactions with apps without presenting their own UI. The user can use Siri’s voice assistant to speak their intent request, which can then be handled by the app. The intents that could be handled in iOS 10 is very limited. However, I assume over time this will be opened up to allow all apps and any tasks to be supported by Siri, like Alexa’s skills.

As a first part citizen of the platform Workflow will be able to access the index of all intent handlers available for all installed apps. For example, my security camera app or personal budgeting app will never be supported by Workflow, they are too niche to be worth the Workflow developer’s time. However, when the developers of the individual apps add SiriKit support:

  • get current view of my garden camera
  • get last time a disturbance was detected in my hallway
  • get remaining weekly budget
  • add expense of £7.50 for lunch
  • etc.

this will make the possibilities of Workflow (or an Apple automation tool) so much more powerful that Workflow could ever have been as its own entity. All of these intents will also be available verbally from Siri’s voice assistant and without a URL scheme used anywhere, as Federico hypothesised in this week’s Connected.

This approach to problems is not uncommon in iOS, up until iOS 8, each developer who wanted to share beyond Messages, Facebook and Twitter would have to support every single service individually in their apps. With iOS 8 and the introduction of App Extensibility, individual apps could declare their ability to share to their own services. This allowed the service owner to create the sharing experience once and every other app use it leading to much more powerful and polished experiences. I can see the same happening with Workflow (or an Apple automation tool).