NodersJS
Published in

NodersJS

Usando tipografías personalizadas en React Native

Welcome indeed

Creando el proyecto y agregando las tipografías

react-native init NodersExampleApp
Google Fonts
La ruta es opcional, puede ser cualquiera

Linkeando nativamente a iOS y Android

“assets” es un array que permite múltiples rutas que react-native link usará
Output de react-native link
Las tipografías quedan en el grupo “Resources” en Xcode.
Y para android quedan en ./android/app/src/main/assets/fonts/

Usando las tipografías en los estilos de la app

font-family: 'Lobster'

Mediante Font Book (macOS/ OS X)

Dependiendo la tipografía y si es iOS o Android, podría ser cualquiera de los primeros 3 valores.

Mediante código en Xcode

NSArray *fontFamilies = [UIFont familyNames];

for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}

Para Android:

Resultado en iOS
Resultado en Android

Formatos soportados

  • iOS: TTF, OTF, WOFF (iOS 10+), WOFF2 (iOS 10+).
  • Android: TTF, OTF, TTC.

Tips

  • Como mencionábamos para Android, la mayoría de las veces, basta con hacer coincidir el nombre del archivo de la tipografía con el nombre que usamos para font-family. Éste, es muy probable que sea distinto al que debemos usar para iOS, por lo que será necesario o cambiar el nombre del archivo para hacerlo coincidir, o hacer uso del módulo Platform de React Native para distinguir entre iOS y Android, y así asignar el nombre correcto (en el código fuente del ejemplo lo hicimos así).
  • En algunos casos, si el estilo del texto tiene alguna propiedad extra que modifique la fuente (como por ejemplo font-weight: bold), la tipografía no se mostrará y mostrará la que tiene el teléfono por defecto. Para estos casos hay que usar la que corresponde a ese tipo de modificación. (Por ejemplo, Open Sans Italic para cursiva). En caso de que no veamos la fuente aplicada en el emulador, este es un buen punto a revisar.

Código Fuente

--

--

¿Por qué? Porque nos gusta.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Fernando Larrañaga

Code at ️Square 🔲 — Organizer NodeSchool San Francisco ⬡. Live stream about code at https://twitch.tv/xabadu