
Se sabe que la accesibilidad es importante, pero no todos prestan suficiente atención a la disponibilidad de su aplicación.
También se sabe que la aparición de la compañía NeXT y su posterior compra por parte de Apple es un episodio importante en la carrera de Steve Jobs, pero pocos han escrito personalmente software para computadoras NeXT.
El desarrollador de Netflix iOS,
John Fox, viene a nuestra conferencia de Mobius con un informe sobre accesibilidad, y en anticipación a esto, decidimos hacerle preguntas: comenzamos con su larga carrera, que incluía NeXT, y luego pasamos al tema de la accesibilidad. El texto original en inglés de la entrevista fue
publicado en Medium, y para Habr fue traducido al ruso.
Hola, John. Es interesante hablar con una persona que ha estado escribiendo aplicaciones móviles desde 2010 y comenzó a trabajar en TI incluso hace décadas. Cuéntanos cómo empezaste a hacer TI.- Cuando era estudiante en la Universidad de Nueva York, el club en el que estaba convenció a la administración para que asignara recursos para la compra de una Mac, una impresora láser y la aplicación de diseño de página QuarkXPress. Todo esto resultó más barato que el costo de un conjunto tipográfico de un número de la revista académica que publicamos, y ya se asignaron fondos para este conjunto. Después de graduarme, conseguí un trabajo en una empresa con sede en Nueva York que estaba involucrado en traducciones y capacitación en idiomas. Entre nuestros clientes había firmas financieras y firmas de abogados que necesitaban traducciones en un tiempo extremadamente corto, más corto de lo que cualquier traductor en vivo podía hacer.
En Nueva Jersey, en ese momento, había una compañía que proporcionaba tiempo en un mainframe que realizaba la traducción automática. Inicialmente, en los EE. UU., IBM se dedicaba a la traducción automática, estas fueron órdenes de defensa durante la Guerra Fría, y luego el resultado se vio privado de imágenes. La cita bíblica "el espíritu está dispuesto, pero la carne es débil" ("el espíritu es vigoroso, la carne es débil"), el algoritmo traducido directamente en el espíritu de "el vodka es bueno, pero la carne es mala". A pesar de este nivel primitivo, el algoritmo podría ser entrenado. Solo entregó la versión principal del texto, que luego el traductor editó. La configuración de este sistema fue una tarea ingrata: enviamos documentos a través de una conexión directa desde una máquina de procesamiento de texto patentada a nuestra Mac, luego los enviamos al mainframe muchas veces y editamos el resultado, y finalmente devolvimos el documento terminado perfectamente formateado a los clientes.
Me imagino cómo todos rodaron los ojos al describir esa tecnología antediluviana. Mi hijo adolescente se ríe a carcajadas cuando le cuento cómo eran los juegos cuando tenía su edad. Pero esto es normal: lo que hoy es la tecnología más avanzada acumulará polvo en el museo mañana. Con el tiempo, solo queda la capacidad de recopilar nuevas soluciones.
- ¿Cómo llegaste a trabajar con aplicaciones móviles?- Poco después de mudarme de Nueva York a San Francisco, salió la primera computadora NeXT. Se adelantó a su tiempo por al menos una década. Aquí es necesario decir sobre la investigación de Xerox PARC, que produjo muchas frutas muy valiosas, por ejemplo, las primeras GUI que se hicieron populares gracias a la Mac. NeXT utilizó otros dos resultados de estos estudios: redes y programación orientada a objetos. CERN ahora marca el 30 aniversario de la World Wide Web: este logro fue posible porque el acceso a la programación estaba abierto a personas sin un título en ciencias de la computación. Si no hubiera NeXT, difícilmente habría comenzado a escribir software. Al principio, aprendí a diseñar y prototipar aplicaciones usando Interface Builder, luego comencé a escribir aplicaciones web con WebObjects (otra herramienta NeXT). Cuando Apple adquirió NeXT, ya tenía una buena comprensión de las tecnologías y patrones que Cocoa y Cocoa Touch todavía están usando.
- Antes de iOS, desarrollaste para Mac OS, y luego era menos común que ahora. ¿Cuáles fueron tus impresiones?- Cocoa (un conjunto de API heredadas de NeXTSTEP) le dio a los desarrolladores mucho más que la API de Windows. Gracias a Cocoa, el programador incluso pudo crear un software hermoso y complejo solo. Para cuando llegó OS X, había un número significativo de desarrolladores independientes, muchos de los cuales se habían desarrollado previamente para NeXT, por ejemplo, Will Shipley, creador de la Biblioteca Delicious. Prefirieron ser los primeros en la aldea, en lugar de los segundos en la ciudad, y como resultado, su aldea se convirtió en una metrópoli. Seguí el mismo camino: mi aplicación MemoryMiner recibió excelentes críticas, se vendió bien y me permitió hacer varios otros productos basados en ella, y también me dio trabajo como consultor.
- Has estado trabajando en Netflix desde 2015. ¿Cuáles son sus responsabilidades en esta empresa?- Cuando llegué a Netflix, su aplicación era híbrida (UI en HTML / JavaScript / CSS, un reproductor en código compilado), y la copiaron por completo a Cocoa Touch. Después de que fue reescrito, basado en pruebas A / B, realizamos muchas mejoras, que fueron mucho más fáciles de hacer con una aplicación moderna de Cocoa.
- En LinkedIn, su posición se designa como un "ingeniero centrado en el producto", que es una redacción bastante inusual. ¿Qué significa y cuál es la diferencia de un ingeniero de software?- Por supuesto, para una aplicación de calidad, es importante que su código sea conciso, que sea fácil de mantener y que se compile sin errores. Pero además de estos criterios, hay muchos otros, no menos significativos: usabilidad, apariencia hermosa, claridad de la aplicación en el primer lanzamiento (especialmente para aplicaciones personalizadas). Si desea crear un producto completo, estos aspectos son tan importantes como el diseño adecuado de la aplicación (clases bien planificadas, pruebas unitarias, etc.)
En ese momento, pasé muchos nervios tratando de explicarle al obstinado colega "barbudo" (que había estado trabajando en UNIX en la línea de comando con Emacs toda su vida) por qué las interfaces gráficas elegantes son importantes. Debido a estas disputas, comencé a desarrollar software, y fue un descubrimiento agradable para mí que aprender un lenguaje de programación no es muy diferente de aprender un lenguaje normal. Pero la familiaridad con la sintaxis y la gramática siempre es solo el comienzo, como la familiaridad con los acordes en la música.
- Has escrito en Twitter que eres un "ingeniero de interfaz de usuario". ¿Esto significa que trabaja exclusivamente con la interfaz de usuario de aplicaciones móviles, con animación, visualización, etc.?- Sí, ahora trato casi exclusivamente con la interfaz de usuario: animación, reproducción de video, localización, accesibilidad. En el pasado, trabajé bastante con el código del servidor, pero el objetivo final siempre fue crear una interfaz de usuario de calidad.
- Cuéntanos qué tareas cotidianas debe resolver un desarrollador móvil en Netflix.- Realizamos pruebas A / B, como resultado de lo cual creamos nuevas funciones, respaldamos y mejoramos las funciones existentes, compartimos conocimientos y mejoramos nuestro trabajo (control de calidad, localización, etc.). Como controlamos nuestros puntos finales, nuestra aplicación puede acceder a los datos correctos exactamente cuando sea necesario.
- ¿Cuál es la estructura de su equipo? Por ejemplo, ¿los desarrolladores de iOS están en contacto con los desarrolladores de Android?- Nuestros equipos, tanto iOS como Android, y desarrollo móvil y control de calidad, trabajan juntos. Todos nos sentamos juntos y tenemos un ambiente muy amigable.
- ¿Cómo interactúan exactamente los probadores con los desarrolladores móviles?- La responsabilidad de la calidad recae en todos, por lo que la responsabilidad del desarrollador es ayudar a crear planes de prueba junto con los probadores. Automatizamos todo lo que es posible (por ejemplo, crear capturas de pantalla) para que las personas solo puedan hacer lo que mejor hacen.
- Netflix tiene un blog de tecnología en Medium. ¿Hay algo similar específicamente para desarrolladores móviles?- Tenemos
ingenieros de interfaz de usuario de Twitter
Netflix bastante activos, dedicados al desarrollo de la interfaz de usuario en su conjunto. A veces hacemos presentaciones, cuyas grabaciones están disponibles en YouTube. Hay una
selección de cuatro dedicados específicamente al desarrollo de aplicaciones móviles.
- Discutamos el tema de tu charla en Mobius. Cuando se trata de la accesibilidad de las aplicaciones, a menudo las personas piensan en las personas ciegas y con discapacidad visual, pero la accesibilidad puede ayudar no solo a ellas. ¿Qué otros casos deben tener en cuenta los desarrolladores móviles?- El otoño pasado, nosotros y otros dos desarrolladores en el hackathon realizamos un experimento en el que la aplicación de iOS se controló sin manos usando el Kit AR. Este experimento
atrajo la atención de los medios . Su objetivo era ayudar a las personas con enfermedades del sistema musculoesquelético.
- ¿Qué sucede si no piensa en la disponibilidad de su aplicación iOS? ¿Cuánto dificulta esto la vida de los usuarios?"Tenemos que rendir homenaje a Apple aquí: proporcionan funciones básicas para la accesibilidad de fábrica". Si utiliza componentes del UIKit estándar, en general su aplicación funcionará. Pero si usa sus propios componentes, entonces la responsabilidad recae en usted. Si utiliza tecnologías web, lo más probable es que su aplicación sea inaccesible. De forma predeterminada, UIView no tiene una etiqueta de etiqueta de accesibilidad, por lo que VoiceOver, la tecnología de accesibilidad más utilizada en iOS, no la reconocerá.
Los problemas de accesibilidad para el software de Apple tienen una comunidad muy dinámica, tiene un sitio web
llamado AppleVis . Todo el tiempo hay discusiones acaloradas sobre qué aplicaciones son bien accesibles y cuáles no.
- ¿Los problemas de accesibilidad entran en conflicto con otras tareas? Por ejemplo, un diseñador quiere usar una fuente hermosa, pero se lee peor que una más aburrida. ¿Cómo resolver estos conflictos?- Para las personas con discapacidad visual y daltonismo, las principales dificultades surgen no por la fuente en sí, sino por su tamaño y contraste. Ayuda si su aplicación usa
Dynamic Type .
En general, el hermoso diseño y la facilidad de uso no son en absoluto características mutuamente excluyentes. Incluso si su aplicación no admite el tipo dinámico, la configuración para la ampliación y la inversión de color pueden facilitar enormemente el trabajo con la aplicación.
- Al desarrollar una nueva aplicación, los problemas de accesibilidad pueden posponerse fácilmente hasta más tarde: dicen que es demasiado pronto para pensar en ello cuando la funcionalidad básica aún no se ha implementado. ¿Cuándo es el momento de pensarlo? ¿Las consideraciones de accesibilidad afectan las decisiones de toda la aplicación, por lo que debe pensar en ellas de inmediato?- En términos generales, es mejor tener en cuenta los problemas de accesibilidad desde el principio. Pero al mismo tiempo, proporcionar un "programa mínimo" para la accesibilidad requiere un poco de trabajo, por lo que si tiene una etapa experimental temprana y no está preparado, no obtendrá ningún costo adicional de una implementación posterior. Sin embargo, a juzgar por mi experiencia, abordar los problemas de accesibilidad ayuda a echar un vistazo a otros problemas de facilidad de uso, incluidos los inesperados.
- No importa cuán importante sea la empatía, muchas decisiones se toman sobre la base de indicadores económicos. Puede ser mucho más fácil convencer al gerente de que invierta recursos para garantizar la disponibilidad, si hay datos, cuántos usuarios nuevos traerá. ¿Hay alguna estadística sobre esto?- Es difícil encontrar tales estadísticas. Prefiero mirar esta pregunta de manera diferente. Cualquier aplicación, incluso la más nueva, siempre tiene competidores en el mercado que realizan las mismas funciones. Para crear una imagen para su aplicación, necesita "enganchar" a los usuarios con algo, luego comenzarán a contarle a todos los demás. Si hace que su producto sea conveniente para los usuarios que dependen de software con accesibilidad, ellos, a su vez, comenzarán a alabar su aplicación con poder y fuerza, la gente lo escuchará.
- Algunos desarrolladores dirán: "Bueno, Netflix tiene un gran avance en recursos, y aquí estamos en un pequeño equipo lleno de tareas, por lo que no tenemos que trabajar en la accesibilidad". ¿Quieres responder algo?- Realmente tenemos más recursos que una pequeña empresa, pero consideramos que este trabajo también es útil en otros aspectos. Por ejemplo, una parte importante de los problemas con la automatización de pruebas se resuelve proporcionando identificadores de accesibilidad para elementos de la interfaz de usuario. El ingeniero de control de calidad de nuestro equipo que hizo esto prestó suficiente atención a esto para agregar etiquetas de accesibilidad, y luego todo surgió de él. Aquí puede hacer una analogía con la localización: existe la tentación de codificar cadenas en elementos de la interfaz de usuario, pero esto limitará significativamente el mercado en el que puede vender su aplicación. Al centrarse en los problemas de accesibilidad, crea usuarios extremadamente dedicados.
- Has realizado presentaciones en muchas conferencias. ¿Y cómo fue tu primer informe?- Fue en 1995, presenté mi sistema de enrutamiento y aprobación para NeXT con un usuario de este sistema en la Conferencia de Publicación Seybold en Boston. Estaba muy preocupado por el rendimiento, pero los dioses del rendimiento estaban de mi lado, y al final todo salió bien. También tuve fallas catastróficas durante el informe, así que cuando recurro a una demostración en vivo, siempre guardo un video pre-preparado por si acaso, para que haya una versión de respaldo.
- ¿Has estado en San Petersburgo antes y has oído hablar de las noches blancas? Mobius se llevará a cabo en mayo, cuando ya comienzan.- En Rusia, solo estuve una vez, y en San Petersburgo, no una vez, y será muy interesante para mí mirar tu ciudad. Y en cuanto a las noches blancas, puedo contar una historia que me sucedió incluso antes de la universidad, cuando estaba con un amigo en Suecia a principios del verano. Allí decidimos usar la luz interminable para la fiesta. Esa fue la diversión que terminó con la aparición temprana de la casa de un padre que no estaba muy feliz de encontrar una compañía de adolescentes borrachos en su sauna. Desde entonces, me he vuelto algo más responsable en mi enfoque de la vida.
Mobius se llevará a cabo en San Petersburgo del 22 al 23 de mayo . John hablará allí con el tema "Accesibilidad para iOS: hacerlo bien haciendo el bien", y además de eso, habrá docenas de otros informes sobre desarrollo móvil. Puede ver el programa completo en el sitio web de la conferencia , comprar boletos en el mismo lugar.