Come fa Snapchat ad avere emoji sovradimensionate? Quali parti dell’SDK di iOS hanno usato per ottenere questo risultato?

In iOS, è possibile visualizzare un Emoji utilizzando un carattere Unicode. Unicode è semplicemente un modo concordato di rappresentare le lettere, i numeri e i simboli che possiamo leggere sui computer. Per esempio, qui posso visualizzare un pupazzo di neve, dato che lo standard Unicode include una definizione per un carattere pupazzo di neve: ☃. Questi simboli possono essere ingranditi semplicemente cambiando le dimensioni dei caratteri, dato che sono come qualsiasi altro carattere. Al momento, lo standard Unicode include più di 100.000 caratteri diversi, la maggior parte dei quali sono fantastici.

Come funziona Unicode? Ci sono solo tanti pulsanti sulla tua tastiera, quindi assegniamo un numero ad ogni carattere Unicode. Quando il tuo computer incontra il numero 65 codificato in Unicode, per esempio, potrebbe visualizzare la lettera "A". Allo stesso modo, c'è qualche numero che il tuo computer mapperà a ♥, che è un bel cuore. Lo standard Unicode, quindi, è solo una lista gigante che mappa questi numeri ai caratteri visualizzabili.

È importante che il software che gira su tutti i vostri diversi computer e dispositivi sia d'accordo sullo stesso standard, altrimenti il vostro iPhone potrebbe mappare il numero 12345 a questo cuore ❦ mentre il vostro portatile potrebbe mappare il numero 12345 a questo cuore: ❤. Anche così, ci potrebbero essere alcune variazioni tra il modo in cui il software del vostro computer decide di visualizzare un certo carattere Unicode, quindi il pupazzo di neve sul vostro desktop potrebbe sembrare leggermente diverso dal pupazzo di neve sul vostro iPhone.

Ok, quindi parliamo di codice. In Objective-C, posso creare una NSString che contiene caratteri Unicode. Diciamo che c'è una UILabel nella mia app, e voglio visualizzare 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 seconda linea rende il carattere grande quanto voglio, il che significa che posso creare un Emoji arbitrariamente grande. Per ottenere questo numero, ho semplicemente cercato su Google elenchi come Emoji unicode characters per l'uso sul web, che mappa le codifiche ai simboli che saranno decodificati.

Tutto ciò detto, qualsiasi app può anche solo includere un mucchio di immagini piuttosto che usare i caratteri Unicode per visualizzare gli equivalenti giganti delle Emoji.