WWDC 2016 Spotlight: Messages SDK
Apple announced brand new features for Messages on iOS 10 at WWDC 2016. Among the many features added to Messages, the ones that are of interest to developers are the ability to create sticker packs and extend Messages with iMessage apps. These sticker packs and iMessage apps will be available in an iMessage store.
Stickers
Sticker packs are pretty much exactly as they sound. They are a series of images that can be used to enhance messages that have been sent or can be added to a message being composed. These stickers don’t have to be static images either; they can be animated. Creating sticker packs literally requires no code to be written. Design your stickers, put them in a sticker pack, and you’re done!
The focus here should be on quality. Apple suggests using PNG formatted images as they are generally higher quality compared to GIF.
If you want more control over the vanilla sticker pack, you can add some code to customize the look and feel of the sticker viewer. Apple demonstrated the JibJab sticker app that took a basic sticker pack and enhanced it to add a face to some animated images. They were able to do this because they have access to various parts of iOS, such as the camera.
In the end, a sticker pack is a very focused form of an iMessage extension.
iMessage Apps
On top of creating sticker packs, developers can create iMessage extensions. Apple demonstrated the ability to send money to a friend via Square Cash or collaborate on creating a lunch order between friends. Since the iMessage app is an extension, it can do the same things as any other app extension.
iMessage extensions can access data shared within an application group. They can communicate with web services, access the camera, access the user’s photo roll, etc. Imagine an app, much like the lunch collaboration app demonstrated at the WWDC keynote, where a group of friends want to meet up for lunch. A possible app extension could provide a way for members of a group message to collaborate and even vote on places to meet. The possibilities are almost limitless.
There are limitations, though. One big limitation is not being able to navigate to a parent app via an extension. One possible workaround is the ability to save data into the app group’s data container, but that’s not an ideal user experience.
This is also going to increase exposure to your app. If User A has your app and User B doesn’t, a message sent to User B from your extension will include a link to your app in the store.
What about privacy? The app extensions don’t have any access to who the participants are beyond some randomly generated unique identifiers. The iMessage extension only has access to the data you grant access to.
Creating an iMessage extension to collaborate on a certain set of shared data is going to be yet another way to enhance your app.
Relevant WWDC Session Videos:
For more insights on design and development, subscribe to BPXL Craft and follow Black Pixel on Twitter.