ownCloud has long had the ‘Activities’ app, which has provided a stream of information about happenings on the ownCloud server. The Notifications app was recently introduced, taking over some of the tasks the Activity app was used for. The goal is to more clearly separate the two rather different jobs, showing an activity stream and notifying users. To explain what we’re doing here to both app developers and users, we’ll dig a bit into the history and the why of these two apps and talk about where things are going.
Activities was developed to provide an overview of what happened to your data. It tracks creation and modification dates and associated users, shows you when a file was shared and by whom and so on. Outside of the files, it could show who created a calendar item, when a security update was applied, who deleted a user account or when a user was added to a group.
A good comparison is the timeline in services like Facebook and Diaspora: informative and addictive but if you miss a baby picture, the worst that could happen is that you have to pretend to your cousin that you loved it but forgot to click “like.”.
Notifications are of a different nature: you have to respond to them. They are things like a share notification or calendar invitation you must accept, information about a server outage, a security update you must apply or an alarm you’ve configured.
You can imagine that missing a message here means you could miss that great first birthday party of your cousin’s daughter, a capital offense you can’t weasel yourself out of!
As ownCloud, until recently, had no separate notifications app, the activities app was over used. Or, as its developer Joas Schilling had put it, it had become an “eierlegende Wollmilchsau”, a quaint German term for something which fulfills needs (even conflicting) beyond its initial purpose.
Among other things, the Activities app had gained the ability to send you email notifications upon certain events like receiving a share invitation, thus taking care of “urgent” notifications as well as a more passive activity feed. But the Activity App could only send email notifications, while, separately, pop up notifications were used in the web interface to alert users of new shares. Users would get both and accepting a share from the email meant simply going to the web interface and waiting for the notification to pop up. There was room to improve the user experience, and this is what Joas set out to do.
Now and the Future
To improve the way notifications worked, Joas created a separate app. Right now, it offers an API to applications, which allows them to show notifications to users, who can then act upon them. These notifications will, once fully implemented, also be shown in the desktop and mobile clients. Once a notification is dealt with, it will be removed from the system by the app that triggered it. This means you only get notifications once.
Of course, for the time being, applications will not yet have fully implemented the notification functionality, nor has it been fully fleshed out in the mobile and desktop apps. This means there is a less than optimal situation with regards to how you are notified by ownCloud. For one, Activities offers an email option while the “real” notifications don’t. This will be far more comfortable once the notifications are fully implemented. At that point, your phone or desktop will alert you to notifications and there will not be any need for email notifications on top of that.
The “notification” configuration options in the personal settings will receive a new name and a different user interface, as it is currently for the activities app. The notifications app might get its own settings, if needed, but there are no plans for that at the moment.
The Notification app is available already and integrated in ownCloud 8.2! We are in the process of integrating support for the new API in apps and if you’re developing an ownCloud app which should be able to display notifications you can find the API documented here. The ownCloud client teams are also working on the ability to display notifications (desktop, Android, iOS).
If you have a third-party ownCloud client and want to provide integration, you can find the client API documented here. If you have any questions, you can get in contact with Joas (@nickvergessen on github and IRC, also on twitter) if you have any questions. This blog was written by him.