
Sabe-se que a acessibilidade é importante, mas nem todos prestam atenção suficiente à disponibilidade de seu aplicativo.
Também é sabido que a aparência da empresa NeXT e sua subsequente compra pela Apple são um episódio importante na carreira de Steve Jobs, mas poucos escreveram pessoalmente software para computadores NeXT.
O desenvolvedor do Netflix para iOS,
John Fox, está chegando à nossa conferência Mobius com um relatório sobre acessibilidade e, antecipando isso, decidimos fazer perguntas: começamos sua longa carreira, que apresentava o NeXT, e depois passamos ao tema da acessibilidade. O texto original em inglês da entrevista foi
publicado no Medium e, para Habr, foi traduzido para o russo.
Olá, John. É interessante conversar com uma pessoa que escreve aplicativos móveis desde 2010 e começou a trabalhar em TI mesmo décadas atrás. Conte-nos como você começou a fazer TI.- Quando eu era estudante na Universidade de Nova York, o clube em que participei havia convencido a administração a alocar recursos para a compra de um Mac, uma impressora a laser e o aplicativo de layout de página QuarkXPress. Tudo isso saiu mais barato que o custo de um conjunto tipográfico de uma edição da revista acadêmica que publicamos, e os fundos já estavam alocados para esse conjunto. Após a formatura, consegui um emprego em uma empresa sediada em Nova York, envolvida em traduções e treinamento de idiomas. Entre nossos clientes estavam escritórios financeiros e escritórios de advocacia que precisavam de traduções em um tempo extremamente curto - menor do que qualquer tradutor ao vivo poderia fazer.
Em Nova Jersey, naquela época, havia uma empresa que fornecia tempo em um mainframe que realizava tradução automática. Inicialmente, nos EUA, a IBM estava envolvida em tradução automática, essas eram ordens de defesa durante a Guerra Fria e, em seguida, o resultado foi privado de imagens. A citação bíblica “o espírito está disposto, mas a carne é fraca” (“o espírito é vigoroso, a carne é fraca”), o algoritmo traduzido abruptamente no espírito de “a vodka é boa, mas a carne é ruim”. Apesar desse nível primitivo, o algoritmo pode ser treinado. Ele deu apenas a versão principal do texto, que o tradutor então editou. A configuração deste sistema foi uma tarefa ingrata: enviamos documentos via conexão direta de uma máquina de processamento de texto proprietária para o nosso Mac, depois os enviamos para o mainframe várias vezes e editamos o resultado e, finalmente, devolvemos o documento final perfeitamente formatado aos clientes.
Eu posso imaginar como todos reviraram os olhos ao descrever essa tecnologia antediluviana. Meu filho adolescente engasga de rir quando eu digo a ele como eram os jogos quando eu tinha a idade dele. Mas isso é normal: o que hoje é a tecnologia mais avançada estará acumulando poeira no museu amanhã. Com o tempo, apenas a capacidade de coletar novas soluções permanece.
- Como você começou a trabalhar com aplicativos móveis?- Logo após minha mudança de Nova York para São Francisco, o primeiro computador NeXT foi lançado. Ele estava à frente de seu tempo por pelo menos uma década. Aqui é necessário dizer sobre a pesquisa do Xerox PARC, que rendeu muitos frutos muito valiosos - por exemplo, as primeiras GUIs que se tornaram populares graças ao Mac. O NeXT usou outros dois resultados desses estudos: redes e programação orientada a objetos. O CERN agora comemora o 30º aniversário da World Wide Web - essa conquista foi possível devido ao fato de o acesso à programação estar aberto a pessoas sem formação em ciência da computação. Se não houvesse o NeXT, eu dificilmente começaria a escrever software. No começo, aprendi a projetar e prototipar aplicativos usando o Interface Builder, depois comecei a escrever aplicativos Web com o WebObjects (outra ferramenta NeXT). Quando a Apple adquiriu o NeXT, eu já tinha uma boa noção das tecnologias e padrões que o Cocoa e o Cocoa Touch ainda estão usando.
- Antes do iOS, você desenvolvia para o Mac OS e era menos comum do que agora. Quais foram suas impressões?- O cacau (um conjunto de APIs herdadas do NeXTSTEP) ofereceu aos desenvolvedores muito mais do que a API do Windows. Graças ao cacau, o programador pode até criar um software bonito e complexo sozinho. Quando o OS X chegou, havia um número significativo de desenvolvedores independentes, muitos dos quais já haviam desenvolvido para o NeXT - por exemplo, Will Shipley, criador da Delicious Library. Eles preferiram ser o primeiro na vila, em vez de o segundo na cidade e, como resultado, sua vila se transformou em uma metrópole. Eu segui o mesmo caminho - meu aplicativo MemoryMiner recebeu excelentes críticas, vendeu bem e me permitiu fazer vários outros produtos com base nele, além de me dar trabalho como consultor.
- Você trabalha na Netflix desde 2015. Quais são as suas responsabilidades nesta empresa?- Quando cheguei ao Netflix, o aplicativo deles era híbrido (interface do usuário em HTML / JavaScript / CSS, um player em código compilado), e eles o copiaram inteiramente no Cocoa Touch. Depois de reescrita, com base nos testes A / B, fizemos muitas melhorias, muito mais fáceis de fazer com um aplicativo moderno de cacau.
- No LinkedIn, sua posição é designada como "engenheiro focado no produto", que é uma expressão bastante incomum. O que significa e qual a diferença de um engenheiro de software?- Obviamente, para um aplicativo de qualidade, é importante que seu código seja conciso, fácil de manter e compilado sem erros. Mas, além desses critérios, existem muitos outros, não menos significativos: usabilidade, aparência bonita, clareza do aplicativo no primeiro lançamento (especialmente para aplicativos personalizados). Se você deseja criar um produto completo, esses aspectos são tão importantes quanto o design adequado do aplicativo (classes bem planejadas, teste de unidade etc.)
Na época, passei muitos nervos tentando explicar ao colega teimoso "barbudo" (que trabalhava no UNIX na linha de comando com o Emacs a vida toda) por que interfaces gráficas elegantes são importantes. Devido a essas disputas, comecei a desenvolver software, e foi uma descoberta agradável para mim que aprender uma linguagem de programação não é muito diferente de aprender uma linguagem comum. Mas familiaridade com sintaxe e gramática é sempre apenas o começo, como familiaridade com acordes na música.
- Você escreveu no Twitter que é um “engenheiro de interface do usuário”. Isso significa que você trabalha exclusivamente com a interface do usuário de aplicativos móveis - com animação, visualização etc.?- Sim, agora eu lido quase exclusivamente com a interface do usuário: animação, reprodução de vídeo, localização, acessibilidade. No passado, trabalhei bastante com o código do servidor, mas o objetivo final era sempre criar uma interface do usuário de qualidade.
- Diga-nos quais tarefas diárias um desenvolvedor móvel da Netflix precisa resolver.- Realizamos testes A / B, como resultado da criação de novos recursos, suporte e aprimoramento de recursos existentes, compartilhamento de conhecimento e aprimoramento de nosso trabalho (controle de qualidade, localização etc.). Como controlamos nossos terminais, nosso aplicativo pode acessar os dados corretos exatamente quando necessário.
- Qual é a estrutura da sua equipe - por exemplo, os desenvolvedores do iOS estão em contato com os desenvolvedores do Android?- Nossas equipes - iOS, Android, desenvolvimento móvel e controle de qualidade - trabalham juntas. Todos nos sentamos juntos e temos uma atmosfera muito amigável.
- Como exatamente os testadores interagem com os desenvolvedores de dispositivos móveis?- A responsabilidade pela qualidade é de todos, portanto, a responsabilidade do desenvolvedor é ajudar a criar planos de teste em conjunto com os testadores. Automatizamos tudo o que é possível (por exemplo, criando capturas de tela) para que as pessoas possam fazer apenas o que fazem de melhor.
- A Netflix tem um blog de tecnologia no Medium. Existe algo semelhante especificamente para desenvolvedores de dispositivos móveis?- Temos um Twitter
Netflix UI Engineers bastante ativo, dedicado ao desenvolvimento da interface do usuário como um todo. Às vezes, realizamos apresentações cujas gravações estão disponíveis no YouTube. Há uma
seleção de quatro dedicadas especificamente ao desenvolvimento de aplicativos móveis.
- Vamos discutir o assunto da sua palestra no Mobius. Quando se trata de acessibilidade de aplicativos, muitas vezes as pessoas pensam nos cegos e com deficiência visual, mas a acessibilidade pode ajudar não apenas eles. Quais outros casos os desenvolvedores móveis precisam ter em mente?- No outono passado, nós e dois outros desenvolvedores da hackathon realizamos um experimento em que o aplicativo iOS era controlado sem as mãos usando o AR Kit. Esse experimento
atraiu a atenção da mídia . Seu objetivo era ajudar pessoas com doenças do sistema músculo-esquelético.
- O que acontece se você não pensa na disponibilidade do seu aplicativo para iOS - quanto isso dificulta a vida dos usuários?"Temos que prestar homenagem à Apple aqui: eles fornecem recursos básicos para acessibilidade imediatamente." Se você usar componentes do UIKit padrão, em geral seu aplicativo funcionará. Mas se você usar seus próprios componentes, a responsabilidade estará com você. Se você usa tecnologias da web, provavelmente seu aplicativo estará inacessível. Por padrão, o UIView não possui um rótulo accessibilityLabel, portanto não será reconhecido pelo VoiceOver, a tecnologia de acessibilidade mais usada no iOS.
Os problemas de acessibilidade do software Apple têm uma comunidade muito vibrante, um site
chamado AppleVis . Sempre há discussões acaloradas sobre quais aplicativos são bem acessíveis e quais não são.
- Os problemas de acessibilidade entram em conflito com outras tarefas? Por exemplo, um designer deseja usar uma fonte bonita, mas é pior do que uma mais chata. Como resolver esses conflitos?- Para pessoas com deficiência visual e daltonismo, as principais dificuldades surgem não por causa da fonte em si, mas por seu tamanho e contraste. Ajuda se o seu aplicativo usa o
Tipo Dinâmico .
Em geral, o design bonito e a facilidade de uso não são características mutuamente exclusivas. Mesmo que seu aplicativo não suporte o Tipo Dinâmico, as configurações de ampliação e inversão de cores podem facilitar muito o trabalho com o aplicativo.
- Ao desenvolver um novo aplicativo, os problemas de acessibilidade podem ser adiados facilmente para mais tarde: eles dizem que é muito cedo para pensar nisso quando a funcionalidade básica ainda não foi implementada. Quando é a hora de pensar sobre isso? As considerações de acessibilidade afetam as decisões de todo o aplicativo, então você precisa pensar nelas imediatamente?- De um modo geral, é melhor levar em consideração os problemas de acessibilidade desde o início. Mas, ao mesmo tempo, fornecer um “programa mínimo” para acessibilidade requer um pouco de trabalho; portanto, se você tiver um estágio experimental inicial e não estiver preparado, não terá custos adicionais com uma implementação posterior. No entanto, a julgar pela minha experiência, abordar questões de acessibilidade ajuda a dar uma nova olhada em outras questões de facilidade de uso, incluindo questões inesperadas.
- Por mais importante que seja a empatia, muitas decisões são tomadas com base em indicadores econômicos. Pode ser muito mais fácil convencer o gerente a investir recursos para garantir a disponibilidade, se houver dados, de quantos novos usuários isso trará. Existem estatísticas sobre isso?- É difícil encontrar essas estatísticas. Eu prefiro olhar para esta questão de maneira diferente. Qualquer aplicativo, mesmo o mais novo, sempre possui concorrentes no mercado que executam as mesmas funções. Para criar uma imagem para o seu aplicativo, você precisa “conectar” os usuários a algo e eles começarão a contar a todos sobre isso. Se você tornar seu produto conveniente para usuários que dependem de software com acessibilidade, eles, por sua vez, começarão a elogiar seu aplicativo com poder e principal, que será ouvido pelas pessoas.
- Alguns desenvolvedores dirão: "Bem, a Netflix tem uma inovação em recursos, e aqui estamos em uma pequena equipe cheia de tarefas, portanto não precisamos trabalhar na acessibilidade". Você quer responder alguma coisa?- Temos realmente mais recursos do que uma pequena empresa, mas consideramos esse trabalho também útil em outros aspectos. Por exemplo, uma parte significativa dos problemas com a automação de teste é resolvida fornecendo accessibilityIndentifiers para elementos da interface do usuário. O engenheiro de controle de qualidade de nossa equipe, que fez isso, prestou atenção suficiente a isso para adicionar os accessibilityLabels e, em seguida, tudo se desenvolveu. Aqui você pode fazer uma analogia com a localização: existe uma tentação de codificar seqüências de caracteres nos elementos da interface do usuário, mas isso limitará significativamente o mercado em que você pode vender seu aplicativo. Ao se concentrar nos problemas de acessibilidade, você cria usuários extremamente dedicados.
- Você fez apresentações em muitas conferências. E como foi seu primeiro relatório?- Em 1995, apresentei meu sistema de roteamento e aprovação para a NeXT com um usuário desse sistema na Seybold Publishing Conference em Boston. Eu estava muito preocupado com a performance, mas os deuses da performance estavam do meu lado e, no final, tudo correu bem. Também tive falhas catastróficas durante o relatório; portanto, quando recorro a uma demonstração ao vivo, sempre guardo um vídeo pré-preparado, para garantir que haja uma versão de backup.
- Você já esteve em São Petersburgo e ouviu falar das noites brancas? Mobius será realizado em maio, quando eles já começarão.- Na Rússia, eu estive apenas uma vez, e em São Petersburgo - nem uma vez, e será muito interessante para mim olhar sua cidade. E, quanto às noites brancas, posso contar uma história que aconteceu comigo antes da faculdade, quando estava com um amigo na Suécia no início do verão. Lá, decidimos usar a luz do dia sem fim para a festa. Essa é a diversão terminada com o aparecimento precoce da casa de um pai que não estava muito feliz em encontrar uma companhia de adolescentes bêbados em sua sauna. Desde então, tornei-me um pouco mais responsável em minha abordagem da vida.
Mobius será realizado em São Petersburgo nos dias 22 e 23 de maio . John falará lá com o tema "Acessibilidade para iOS: fazendo o bem fazendo o bem" e, além disso, haverá dezenas de outros relatórios sobre desenvolvimento móvel. Você pode ver o programa completo no site da conferência , comprar ingressos no mesmo local.