Comment Snapchat peut-il avoir des emojis surdimensionnés ? Quelles parties du SDK iOS ont-ils utilisé pour y parvenir ?


Dans iOS, vous pouvez afficher un Emoji en utilisant un caractère Unicode. Unicode est simplement une façon convenue de représenter les lettres, les chiffres et les symboles que nous pouvons lire sur les ordinateurs. Par exemple, je peux afficher un bonhomme de neige ici, puisque la norme Unicode inclut une définition du caractère bonhomme de neige : ☃. Ces symboles peuvent être agrandis simplement en modifiant la taille des polices, puisqu'ils sont comme n'importe quel autre caractère. À l'heure actuelle, la norme Unicode comprend plus de 100 000 caractères différents, dont la plupart sont géniaux.


Alors, comment fonctionne Unicode ? Il n'y a qu'un nombre limité de boutons sur votre clavier, alors attribuons plutôt un numéro à chaque caractère Unicode. Par exemple, lorsque votre ordinateur rencontre le nombre 65 codé en Unicode, il peut afficher la lettre "A". De la même manière, il y a un nombre que votre ordinateur associera à ♥, qui est un joli cœur. La norme Unicode n'est donc qu'une liste géante faisant correspondre ces nombres à des caractères affichables.

Il'est important que les logiciels fonctionnant sur tous vos différents ordinateurs et appareils s'accordent sur la même norme, sinon votre iPhone pourrait faire correspondre le nombre 12345 à ce cœur ❦ alors que votre ordinateur portable pourrait faire correspondre le nombre 12345 à ce cœur : ❤. Même ainsi, il pourrait y avoir quelques variations parmi la façon dont le logiciel de votre ordinateur'décide d'afficher un certain caractère Unicode, de sorte que le bonhomme de neige sur votre ordinateur de bureau pourrait être légèrement différent de celui sur votre iPhone.


Ok, alors parlons'code. En Objective-C, je peux créer une NSString qui contient des caractères Unicode. Disons qu'il y'a des UILabel dans mon application, et que je veux y afficher un emoji. I can do something like this:

  1. self.label.text = [NSString stringWithFormat:@"%C", 0xe04f]; 
  2. self.label.font = [UIFont systemFontOfSize:64.0]; 

The first line sets the contents of the label to be the character that's encoded as 0xe0f4 (aka the kitty Emoji), which is simply the number 57588 expressed in hexadecimal. La deuxième ligne rend la police aussi grande que je le souhaite, ce qui signifie que je peux créer un Emoji de taille arbitraire. Pour obtenir ce nombre, j'ai simplement cherché sur Google des listes comme Emoji unicode characters for use on the web, qui fait correspondre les encodages aux symboles vers lesquels ils'seront décodés.

Tout cela étant dit, n'importe quelle application peut aussi simplement inclure un tas d'images plutôt que d'utiliser des caractères Unicode pour afficher des équivalents géants d'Emoji.