Maemo is great at allowing many applications to run concurrently but they do not actually integrate well together. Fundamentally, integration between applications is very rigid and new applications added into the mix are not recognised by the current applications. Ideally, such integrations would be enabled by dynamic discovery.
As an example, imagine I wanted to write an application that added speech bubbles to photos. For this I would need to use the following interfaces:
- Sourcing:
- File Chooser (hildonFM) - to select photo from file
- Image Browser (does this API exist?) - to select photo graphically
- Camera (dbus? or gstreamer?)- to take a photo directly
- Disposing:
- File Chooser (hildonFM) - to save the photo
- Email (modest dbus) - to send the photo
- Share (sharing API) - to upload the photo
- Desktop (gconf??) - to set my image as desktop wallpaper
- Contacts (addressbook API) - to add the photo to a contact
Which is do-able but it's a lot of work when I really just want two operations "source me a photo" and "dispose of this photo". What is worse is that this will not integrate with other new apps (MMS, photoshop?) without changes to my app nor will any pre-existing app know about my speech bubble app - my app would be poorly integrated.
We can already see examples of this with new applications. In one case, THP has introduced "feedhandler" which performs this dynamic disposal for the special case of rss feeds from the browser.