Introducing Emoji Stickers for iMessage
Bringing scalable, vector emojis into an iMessage application with a lot of effort but great simplicity.
First things first, when you look at an app like Emoji Stickers you think — yeah, that doesn’t look that difficult to do — . This may be true at the surface, but once you start getting deeper into what it takes to polish an app like this. The hard parts starts to come to the light.
Given that creating iMessage applications is a new market that we know little about. I am going to go ahead and make up some rules that defines a good iMessage app.
This app needed to go fast!, it has to be able to render on demand hundreds of emojis, and still maintain that butter smooth scrolling performance iOS users are used to. T0 achieve this, we turned to our old friend OperationQueue (no prefix because everything in here is Swift 3.0 😗)
By scheduling tasks like reading from disk, and processing images to a background thread. We are able to gain back a lot of processing power and prevent dropping frames.
The number one issue with Apple’s emojis is just how small they are, as soon as you start scaling them up there is a big drop in quality. To prevent this, we turned to Emoji One, a wonderful Open Source repository for high quality emojis.
But, how Emoji Stickers allows you to scale the emoji to any size while still keeping the quality super crisp? That’s our secret 🤓.
It’s also important to note that iMessage supports every single orientation and device available from Apple. So, our app better support it as well. You will be surprised how many developers were asking in forums how to disable orientation changes on iMessage so they don’t have to handle this. I found the idea pretty insane.
Firing up a Messages app has to be done quickly, users need to be able to get the information they want quickly. Most likely they are already in a conversation and the action they want to perform is faster than on “regular iOS apps”.
For Emoji Stickers, this meant being able to browse, create, and edit emojis quickly within the Messages app. There is no need to open a companion app, there are no confirmation dialogs or tutorials. You can do any task in seconds.
But, what was my experience using iOS 10 beta 1 to create Emoji Stickers?. I even made a whole presentation about this in a couple of Swift meet-ups in Dublin. But for brevity we are going to talk about a few points.
Stickers are going to be the next thing
Some people update iOS just to have the latests emojis, let that sink in. Thousands of users download a whole operating system just to use emojis. Given the infinite possibilities the new “sticker market” will bring, I have no doubt in my mind that this market will be “the next thing” for iOS development.
And fear not, iOS 10 adoption will be fast. Not only Apple included the new diversity emojis in iOS 10, but expect Unicode 9 support (which we already do in Emoji Stickers ✨) to drop soon.
A whole new platform is riddled with bugs, and that is fine
Anyone working with Messages from beta 1 saw just how buggy things were, from layout issues to things just not working until you restarted Xcode and your simulator. Thankfully, there is a bright side of this. If you are the first person to encounter a bug, you are likely to report it and then “contribute” in the development of iOS as a whole. Which is kind of exciting.
That is pretty much it, working on Emoji Stickers was just a matter of several weekends and a small beta group to get the polish I wanted from the app. Hopefully users will notice it 🤓