Key Takeaways
- The Extensions Framework introduced by Apple in iOS 8 has been instrumental in delivering functionalities in subsequent iOS and OS X releases, with the recent addition being support for building iMessage extensions. These extensions are expected to be compatible with future iOS releases.
- Building an iMessage App can be done either as a standalone or as an extension to an iOS app, with the main difference being the listing location on the App Store. iMessage Apps can be created using pre-filled templates in Xcode 8 and above, and are activated from an MSMessagesAppViewController subclass.
- Apple has included a simpler version of the iMessage app, called the Stickers Pack extension, which allows users to package their iMessage stickers without any coding. The only requirements for publishing an iMessage stickers app are related to the image file type, size, and dimensions.
What Are Extensions?
A couple years ago in 2014 with the introduction of iOS 8, Apple introduced the Extensions Framework. Then, I conjectured that the framework will play an important role delivering functionalities in future iOS and OS X releases. As it turns out, Apple has been doing exactly that in the past couple years. This year, they added support for building iMessage extensions.
Every time Apple add new extension points, they have always been compatible with subsequent releases. For example, the Today widget extension that many people use has a new look in iOS 10, but developers don’t have to update their Today extensions they wrote in previous iOS versions. Even though Apple never mention that this will always be the case, I expect that that is still going to be true in future iOS releases. Thus, iMessage extensions that you write today will probably work in future iOS releases.
Outside of iMessage, there are other messaging apps that have been gaining traction in the market. Notably, WeChat and LINE are popular in China and Japan. Some have rudimentary messaging extension support, for example, support for shopping through WeChat. LINE published a lot of LINE branded apps that provide extra functionalities on top of their messaging app. It looks like iMessage extension is following the path that was carved by the other third party messaging apps, but when the operating system vendor itself provides the feature it will have tighter integration with the system.
On the macOS side, it doesn’t look like many of the features in the iMessage extensions is supported. We’re only able to view stickers on macOS. It’s not uncommon for some extensions to be supported on just one platform and not the other. In the past that has happened with the custom keyboard extension.
Building iMessage Apps
There are two main ways to build your iMessage App: Standalone or extension to an iOS app. They are almost the same thing, the main difference is: if you build a standalone app your app will be listed only on the Messages App Store, if it’s an extension to an iOS app it will be listed on the Messages App Store as well as the main App Store.
In Xcode 8 and above, you can conveniently create a new iMessage Application or Sticker Pack that includes pre-filled templates. You can also get these templates with File -> New -> Target… if you’re building an extension. Apple published a lot of extensive guides on the details of each API you can use on iMessage Apps. If you have been writing iOS Apps and extensions, these are fairly straightforward. The main points worth noting are:
– iMessage Apps activate from a MSMessagesAppViewController
subclass which is a subclass of UIViewController
– Expect willBecomeActive(with conversation: MSConversation)
and didResignActive(with conversation: MSConversation)
to be called often and save/restore your data here.
– Expect willTransition(to presentationStyle: MSMessagesAppPresentationStyle)
to be called when the user expands/minimise the iMessage App UI.
Remember, as with any other iOS extensions, you can only reuse classes that you compiled for this extension or frameworks you included in this extension. Don’t expect to be able to reuse everything you wrote for you iOS apps.
Building Sticker Packs
Apple included one more extension point in the Messages app, which is the Stickers Pack extension. This is a much simpler version of the iMessage app, where one can package their iMessage stickers without a single line of code. Yes, you read that right, no single line of code.
The only requirements when publishing an iMessage stickers app are:
– The image must be a PNG, APNG, GIF, or JPEG file.
– The file must be less than 500 KB.
– For the best results, the image should not be smaller than 100 x 100 points or larger than 206 x 206 points.
If you just want to publish your doodles and never opened Xcode before, it wouldn’t take you more than an hour to follow the procedure. Heck, app signing and uploading to iTunes Connect may take you longer than the app itself.
Lastly, if you think this is just a side to the main iMessage app, consider this: Super Mario Run, Nintendo’s first iOS app published an iMessage sticker pack to promote their iOS game. It has been sitting on the top chart for a long time and has been successful in getting people to know about the launch of their game long before the game is ready. Furthermore, LINE made $270 million last year in 2016 just from selling stickers in their sticker store.
iMessage App Store
iMessage App Store can only be accessed from the Messages App. Amusingly, you can only get on the iMessage App Store from the conversations view. If you never messaged anyone you can’t get to the iMessage App Store. The store is a separate store from the main App Store, but all updates to the stickers go through the main App Store app.
When you send an iMessage app to someone who doesn’t have it installed, there will be a link to that extension in the iMessage App Store. I think this would be the main way people discover new iMessage apps and stickers.
Interesting iMessage Apps
There are several interesting iMessage apps since iOS 10 launched, including some from Apple. For example, Apple Music has an iMessage extension that allows us to share what we’re listening to and let the recipient listen to the song even if they aren’t an Apple Music subscriber.
Another interesting and unexpectedly popular type of iMessage extension is games, namely two player turn-based games. We’ve seen quite a lot of this kind of games in the early days of iOS, but it seems that iMessage extension brought people’s games from their home screen to their messaging app, which they may be seeing a more often than the second or third page of their home screen. Words With Friends, a popular iOS game that is played by million people in the world including former president of the United States Barack Obama, released an iMessage app that is a mini version of their game. It dominated the top chart in the iMessage App Store for many weeks after the launch. There are also other turn based multiplayer games that found success in the top chart of the iMessage App Store.
Finally, there are also unexpectedly clever Messages Apps like Phoneys and Grammar Snob. Phoneys mimic the iMessage bubbles and made it so that it looks like your friend is sending you flattering messages. Grammar Snob cleverly has stickers with grammar corrections that you can put on the grammatically incorrect messages. Phoneys was pulled from the Messages App Store shortly after launch for mimicking Apple’s message bubble design.
Final Words
It sure looks like Apple has been developing the iOS Extensions framework extensively since its introduction in iOS 8. We saw an unusual addition of the extensions framework in iOS 10 with the iMessage extension framework. iMessage extensions may or may not be an integral part of your app’s business. But it looks like the extension framework itself will keep growing as we see new iOS releases.
For implementation details, we recommend you watch the WWDC video iMessage Apps and Stickers, Parts 1 and 2.
Frequently Asked Questions (FAQs) about Messages Extensions on iOS
What are the benefits of using Messages Extensions on iOS?
Messages Extensions on iOS offer a range of benefits. They allow users to interact with your app directly within the Messages app, without needing to switch apps. This can include sending text, stickers, media files, and interactive messages. They also provide a more engaging and interactive way to communicate, enhancing the overall user experience.
How do I install and use Messages Extensions on my iOS device?
To install and use Messages Extensions, you need to first download an app that supports this feature from the App Store. Once installed, open the Messages app, start a new conversation or go to an existing one, and tap the App Store icon next to the text box. Here, you can select your desired extension and start using it.
Are Messages Extensions on iOS safe to use?
Yes, Messages Extensions on iOS are generally safe to use. They are developed and provided by Apple or third-party developers who must adhere to Apple’s strict privacy and security guidelines. However, like any other app, it’s important to only download and use extensions from trusted sources.
Can I use Messages Extensions on other Apple devices?
Yes, Messages Extensions are not limited to iPhones. They can also be used on other Apple devices that support the Messages app, such as iPads and Macs, providing a seamless messaging experience across all your devices.
What types of content can I send using Messages Extensions?
Messages Extensions allow you to send a variety of content types, including text, photos, videos, audio messages, and interactive messages. Some extensions also allow you to send stickers, animated images, and even play games within the Messages app.
Can I customize the Messages Extensions on my iOS device?
Yes, you can customize the Messages Extensions on your iOS device. You can choose which extensions to install and use, and in some cases, you can also customize the settings of individual extensions to suit your preferences.
Do Messages Extensions work with group chats?
Yes, Messages Extensions work with both individual and group chats. This means you can share content from extensions with multiple people at once, making it a great tool for collaborative conversations.
Are there any limitations to using Messages Extensions on iOS?
While Messages Extensions offer many benefits, there are some limitations. For example, not all apps offer a Messages Extension, and the features available can vary between extensions. Additionally, both sender and receiver must have the same extension installed to fully experience interactive messages.
How do I troubleshoot issues with Messages Extensions on iOS?
If you’re experiencing issues with a Messages Extension, try restarting the Messages app or your device. If the problem persists, check for updates for both your device’s operating system and the app providing the extension. If all else fails, you may need to contact the app’s developer for further assistance.
Can I develop my own Messages Extensions for iOS?
Yes, if you’re a developer, you can create your own Messages Extensions for iOS. Apple provides a range of resources and guidelines to help you get started with developing extensions, ensuring they provide a great user experience and meet Apple’s standards for privacy and security.
Enrico Susatyo has years of experience in software engineering and product design. His favourite programming language is Objective-C and his first was PASCAL. During his free time, Enrico saves princess Zelda from Ganondorf while exploring Hyrule.