Texto y tipografía en el desarrollo móvil: qué es, qué herramientas y cómo funciona

Autor: IT Sectr Publicado: 2026-08-04 Tiempo de lectura: 10 min

Trabajar con texto es una tarea clave al crear interfaces de aplicaciones móviles modernas. Desde la selección de fuentes hasta el ajuste del espaciado entre caracteres, cada aspecto afecta la percepción del producto. Según la Documentación de Apple NSAttributedString, un formato de texto adecuado está directamente relacionado con la legibilidad y la accesibilidad de la interfaz.

Puntos clave

  • NSAttributedString — clase de iOS para crear texto formateado con atributos de fuente, color y espaciado.
  • SpannableString — equivalente en Android que usa objetos Span para estilizar fragmentos de texto individuales.
  • UIFont y Typeface — clases principales de fuentes en iOS y Android; las fuentes personalizadas se añaden mediante Info.plist y res/font.
  • Kerning y ligaduras — parámetros tipográficos que controlan el espacio entre caracteres y su fusión en un solo glifo.
  • Variable Fonts — un único archivo de fuente contiene múltiples estilos, reduciendo el tamaño de la aplicación.

Texto en aplicaciones móviles: NSAttributedString en iOS

NSAttributedString es la clase fundamental de iOS para trabajar con texto formateado. Permite aplicar atributos a caracteres o rangos individuales: fuente mediante UIFont, color mediante UIColor, espaciado entre caracteres mediante kern y espaciado entre líneas mediante NSMutableParagraphStyle. En las aplicaciones móviles, NSAttributedString se utiliza en todas partes, desde UILabel hasta complejos UITextView con soporte de edición.

UIFont y configuración de fuentes

UIFont es la clase principal para trabajar con fuentes en iOS. Admite tipografías del sistema, fuentes personalizadas y Dynamic Type. UIFont(name:size:) carga una fuente por nombre, UIFont.systemFont(ofSize:weight:) carga la fuente del sistema. UIFontDescriptor permite modificar una fuente existente: cambiar tamaño, peso o añadir una matriz de transformación. Para fuentes personalizadas, el archivo .ttf se añade al proyecto y se registra en Info.plist bajo la clave Fonts provided by application.

swift
let attributes: [NSAttributedString.Key: Any] = [
    .font: UIFont(name: "HelveticaNeue-Bold", size: 18) as Any,
    .foregroundColor: UIColor.darkGray as Any,
    .kern: 1.5 as Any
]
let attributedString = NSAttributedString(
    string: "Форматированный текст",
    attributes: attributes
)
label.attributedText = attributedString

NSMutableParagraphStyle y formato de párrafos

NSMutableParagraphStyle es una versión mutable de ParagraphStyle para configurar la visualización de párrafos. Controla la alineación (alignment), el espaciado entre líneas (lineSpacing), las sangrías (headIndent, tailIndent) y el modo de truncamiento (lineBreakMode). ParagraphStyle es fundamental para la legibilidad de textos largos en dispositivos móviles: un lineSpacing adecuado evita la fusión de líneas, y lineBreakMode evita el recorte de palabras. La configuración de paragraphSpacing define el espacio entre párrafos.

Texto en aplicaciones móviles: SpannableString en Android

SpannableString es la herramienta principal para formatear texto en Android. Funciona mediante un mecanismo de objetos Span, cada uno responsable de un aspecto: StyleSpan para negrita o cursiva, ForegroundColorSpan para color, URLSpan para enlaces, UnderlineSpan para subrayado. SpannableStringBuilder es el equivalente de NSMutableAttributedString, que permite construir texto a partir de múltiples fragmentos. Comprender SpannableString es esencial para crear interfaces flexibles con texto formateado en aplicaciones móviles.

Typeface y fuentes personalizadas en Android

Typeface es la clase para trabajar con fuentes en Android. Admite las tipografías del sistema Roboto y Noto, así como fuentes personalizadas. Typeface.createFromResource() carga una fuente desde res/font/, Typeface.createFromAsset() desde la carpeta assets. Android 8.0+ admite familias de fuentes en XML, combinando múltiples archivos de fuente en un solo recurso. Una fuente personalizada para texto en aplicaciones móviles en Android se establece mediante el atributo android:fontFamily o mediante programación con setTypeface().

TextMeasurer y medición de texto

TextMeasurer (API 29+) es una herramienta moderna para medir texto sin vincularse a una View. Calcula el ancho, la altura y las posiciones de los caracteres antes del renderizado. En APIs antiguas, se usa Paint.measureText() para texto de una sola línea o StaticLayout para texto multilínea. TextMeasurer es especialmente útil en Views personalizadas donde el texto se dibuja mediante Canvas.drawText(). Una medición correcta evita el recorte de caracteres en la interfaz.

kotlin
val spannable = SpannableString("Жирный текст с цветом")
spannable.setSpan(
    StyleSpan(Typeface.BOLD),
    0, 6,
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
spannable.setSpan(
    ForegroundColorSpan(Color.RED),
    14, 19,
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
textView.text = spannable

Tipografía en el desarrollo móvil: kerning, ligaduras y tracking

La tipografía en las aplicaciones móviles es una configuración integral de fuentes, espaciado entre caracteres y entre líneas. Una tipografía adecuada en el desarrollo móvil afecta directamente la legibilidad del texto y la percepción visual de la interfaz. Veamos los parámetros clave disponibles en ambas plataformas.

Kerning y Tracking

Kerning es el ajuste del espacio entre pares de caracteres específicos (AV, To, Wa). Tracking es el espaciado uniforme entre caracteres para todo el texto o una parte del mismo. En iOS, el kerning se define mediante NSKernAttributeName, en Android, mediante la propiedad letterSpacing de TextView. Los valores negativos acercan los caracteres, los positivos los separan. La tipografía en el desarrollo móvil requiere un ajuste cuidadoso de estos parámetros: para los títulos grandes, el espaciado entre caracteres suele aumentarse, para el texto del cuerpo se mantiene estándar.

ParámetroiOSAndroid
Cadena estilizadaNSAttributedStringSpannableString
FuenteUIFont / CTFontTypeface
Espaciado entre caracteresNSKernAttributeNameletterSpacing
Espaciado entre líneaslineSpacinglineSpacingExtra
LigadurasNSLigatureAttributeNameCaracterísticas OpenType
ElipsislineBreakMode .byTruncatingTailandroid:ellipsize

Ligaduras

Las ligaduras son glifos especiales que reemplazan combinaciones de dos o más caracteres: fi, fl, ffi. En iOS, las ligaduras se controlan mediante NSLigatureAttributeName: 0 — desactivadas, 1 — estándar, 2 — todas disponibles. En Android, las ligaduras se controlan a nivel de fuente mediante características OpenType. Activar las ligaduras mejora la apariencia del texto, especialmente en tipografías con serifas. La tipografía en el desarrollo móvil utiliza ligaduras principalmente para títulos y logotipos.

Fuentes personalizadas en aplicaciones móviles: carga y configuración

Las fuentes personalizadas son una de las principales herramientas para crear un estilo visual único en una aplicación. Ayudan a destacar la marca y mejorar la experiencia del usuario. En las aplicaciones móviles, las fuentes personalizadas se utilizan para títulos, logotipos, elementos de acento e identidad corporativa.

Variable Fonts

Variable Fonts es una tecnología moderna de fuentes donde un solo archivo contiene múltiples estilos: desde fino hasta extranegro, desde estrecho hasta ancho. Esto reduce el tamaño de la aplicación al reemplazar varios archivos de fuente por uno solo. En iOS, las Variable Fonts son compatibles mediante UIFont con el parámetro weight. En Android, mediante Typeface.Builder especificando los ejes de variabilidad wght, wdth, slnt. El uso de Variable Fonts simplifica la tipografía en las aplicaciones móviles: el desarrollador no necesita cargar archivos separados para cada estilo.

swift
let customFont = UIFont(name: "CustomFont-Regular", size: 16)
let scaledFont = UIFontMetrics.default
    .scaledFont(for: customFont)
label.font = scaledFont
label.adjustsFontForContentSizeCategory(true)

NSTextAttachment e ImageSpan

NSTextAttachment en iOS permite incrustar UIImage dentro de NSAttributedString: la imagen se alinea con la línea base y se desplaza junto con el texto. En Android, el equivalente es ImageSpan dentro de SpannableString. Ambos enfoques son útiles para chats con emojis, feeds de noticias con iconos y formularios con casillas de verificación personalizadas. Es importante escalar correctamente la imagen para que coincida con la altura de la fuente, de modo que el texto y los gráficos se vean armoniosos.

Efectos de texto, alineación y elipsis

Además del formato básico, el texto en aplicaciones móviles admite efectos visuales adicionales: sombras, contornos, tachado y subrayado. Estas herramientas amplían las posibilidades de la tipografía, pero requieren una aplicación cuidadosa para mantener la legibilidad.

Sombra y contorno del texto

La sombra del texto en iOS se define mediante NSShadow con offset, blurRadius y color. El contorno se define mediante NSStrokeWidthAttributeName: los valores negativos crean un relleno con contorno, los positivos solo el contorno. El tachado se define con NSUnderlineStyle (.single, .thick, .double). En Android, la sombra de TextView se configura mediante android:shadowRadius, android:shadowDx, android:shadowDy. SpannableString admite StrikethroughSpan y UnderlineSpan. El contorno del texto en Android se implementa mediante OutlineSpan o una fuente personalizada.

Elipsis y Marquee

La elipsis es el truncamiento de texto con puntos suspensivos cuando el contenedor se desborda. En iOS, se configura mediante lineBreakMode .byTruncatingTail y numberOfLines. En Android, mediante android:ellipsize="end" y android:maxLines. Marquee es una animación de desplazamiento de texto disponible en Android mediante android:ellipsize="marquee". En iOS no hay un equivalente integrado: se utiliza la biblioteca MarqueeLabel. La elipsis es obligatoria para todos los textos de una sola línea en aplicaciones móviles para evitar el recorte de contenido.

Dynamic Type en iOS

Dynamic Type es un sistema de texto adaptativo en iOS que ajusta el tamaño de la fuente según la configuración de Accesibilidad del usuario. Use UIFontMetrics para escalar fuentes personalizadas. Dynamic Type es obligatorio para las aplicaciones compatibles con Accesibilidad. En Android, el equivalente son las unidades sp y scaledPixels, que se escalan según la configuración del sistema de tamaño de texto.

Preguntas frecuentes

¿Qué es NSAttributedString?

NSAttributedString es una clase de iOS para crear texto formateado con atributos de fuente, color y estilo a nivel de caracteres y rangos.

¿Qué es SpannableString en Android?

SpannableString es una clase de Android para marcar texto mediante objetos Span: ForegroundColorSpan, StyleSpan, URLSpan, UnderlineSpan.

¿Cómo añadir una fuente personalizada en iOS?

Añada el archivo .ttf al proyecto, especifíquelo en Info.plist bajo la clave Fonts provided by application, luego use UIFont(name:).

¿Cómo cargar una fuente personalizada en Android?

Coloque el archivo .ttf en res/font/, cree una familia de fuentes XML y especifique android:fontFamily o use Typeface.createFromAsset().

¿Qué son el kerning y las ligaduras?

Kerning es el espacio entre pares de caracteres. Ligaduras son glifos especiales para combinaciones de letras. Se controlan mediante NSKernAttributeName y NSLigatureAttributeName.

Resumen

  • NSAttributedString — la principal herramienta de formato de texto en iOS, que admite fuentes, colores, espaciado entre caracteres y estilos de párrafo.
  • SpannableString — el equivalente en Android que utiliza objetos Span: StyleSpan para el peso, ForegroundColorSpan para el color, URLSpan para enlaces.
  • UIFont y Typeface — clases de fuentes en iOS y Android; las fuentes personalizadas se añaden mediante Info.plist y res/font respectivamente.
  • Kerning y Tracking — controlan el espaciado entre caracteres; el kerning para pares individuales, el tracking de manera uniforme para todo el texto.
  • Ligaduras — reemplazan combinaciones de caracteres con glifos únicos; se controlan mediante NSLigatureAttributeName en iOS y OpenType en Android.
  • Variable Fonts y Dynamic Type — tecnologías modernas: un archivo para múltiples estilos y adaptación automática a la configuración del usuario.
  • La tipografía en el desarrollo móvil abarca fuentes, espaciado entre líneas, ligaduras, sombras y elipsis para garantizar la legibilidad.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto