
众所周知,可访问性很重要,但是并不是每个人都对其应用程序的可用性给予足够的重视。
众所周知,NeXT公司的出现及其随后被苹果公司收购是史蒂夫·乔布斯(Steve Jobs)职业生涯中的重要事件,但很少有人亲自为NeXT计算机编写软件。
Netflix iOS开发人员
John Fox即将在Mobius会议上发布有关可访问性的报告,因此,在此之前,我们决定问他一个问题:我们从以NeXT为特色的漫长职业生涯开始,然后转向可访问性这一主题。 采访的原始英文文本在Medium上
发布 ,并为Habr译成俄语。
你好,约翰。 与自2010年以来一直在编写移动应用程序并在几十年前开始从事IT工作的人交谈很有趣。 告诉我们您是如何开始做IT的。-当我在纽约大学读书时,我所在的俱乐部说服了政府分配资源来购买Mac,激光打印机和QuarkXPress页面布局应用程序。 所有这一切都比我们出版的一本学术期刊的印刷集的成本便宜,而且已经为这套期刊分配了资金。 毕业后,我在一家纽约公司工作,从事翻译和语言培训。 我们的客户包括需要在极短时间内进行翻译的金融公司和律师事务所,这比任何现场翻译员所能做的都要短。
当时在新泽西州,有一家公司在大型机上提供时间来执行机器翻译。 最初,在美国,IBM从事机器翻译,这是冷战期间的国防命令,然后结果被剥夺了图像。 圣经中引用了“精神愿意,但肉质较弱”(“精神蓬勃,肉质较弱”),该算法直接翻译为“伏特加酒好,但肉不好”的精神。 尽管具有这种原始水平,仍可以对算法进行训练。 他只给出了文本的主要版本,译者随后对其进行了编辑。 设置此系统是一项艰巨的任务:我们通过直接连接将文档从专有文字处理机发送到Mac,然后将它们多次发送到大型机并编辑结果,最后将格式正确的最终文档返回给客户。
我可以想像每个人在描述这种古老的技术时如何翻白眼。 当我告诉他十几岁的儿子时,我的十几岁的儿子因笑而cho笑。 但这是正常的:今天最先进的技术是明天在博物馆里收集灰尘。 随着时间的流逝,仅保留收集新解决方案的能力。
-您是如何使用移动应用程序的?-从纽约搬到旧金山后不久,第一台NeXT计算机问世了。 他至少提前了十年。 在这里有必要说一下Xerox PARC的研究,该研究产生了许多非常有价值的成果-例如,由于Mac,第一个GUI变得流行。 NeXT使用了这些研究的另外两个结果:网络和面向对象的编程。 欧洲核子研究组织(CERN)现在庆祝万维网成立30周年-之所以能够实现这一成就,是因为对没有计算机科学学位的人们开放了对编程的访问权限。 如果没有NeXT,我几乎不会开始编写软件。 首先,我学习了如何使用Interface Builder设计和原型化应用程序,然后开始使用WebObjects(另一个NeXT工具)编写Web应用程序。 到Apple收购NeXT时,我已经掌握了Cocoa和Cocoa Touch仍在使用的技术和模式。
-在iOS之前,您是为Mac OS开发的,因此现在不那么流行了。 您的印象如何?-然后,Cocoa(从NeXTSTEP继承的一组API)为开发人员提供的不仅仅是Windows API。 感谢Cocoa,程序员甚至可以单独创建漂亮而复杂的软件。 在OS X到来之时,已经有大量的独立开发人员,其中许多以前是为NeXT开发的,例如Delicious Library的创建者Will Shipley。 他们宁愿成为村庄的第一个,而不是城市中的第二个,结果,他们的村庄变成了大都市。 我走的是同一条路-我的MemoryMiner应用程序获得了好评,销售良好,并允许我基于它开发其他几种产品,也给了我顾问的工作。
-自2015年以来,您一直在Netflix工作。 您在这家公司的职责是什么?-当我来到Netflix时,他们的应用程序是混合的(HTML / JavaScript / CSS中的UI,使用已编译代码的播放器),他们将其完全复制到Cocoa Touch。 重写后,基于A / B测试,我们进行了许多改进,而使用现代Cocoa应用程序则容易得多。
-在LinkedIn上,您的职位被指定为“以产品为中心的工程师”,这是一个非常不寻常的措辞。 这是什么意思,与软件工程师有什么区别?-当然,对于高质量的应用程序,简洁的代码,易于维护的代码以及无错误的编译非常重要。 但是除了这些标准之外,还有许多其他同样重要的意义:可用性,美观的外观,首次启动时的应用程序清晰度(尤其是自定义应用程序)。 如果您想创建一个完整的产品,那么这些方面与正确的应用程序设计(精心计划的类,单元测试等)一样重要。
当时,我花了很多时间试图向这位固执的“大胡子”同事(他一生都在Emacs的命令行上从事UNIX的工作)解释为什么优雅的图形界面很重要。 由于这些纠纷,我开始开发软件,这对我来说是一个令人愉快的发现,学习编程语言与学习常规语言没有太大不同。 但是对语法和语法的熟悉永远只是开始,就像对音乐中的和弦一样。
-您在Twitter上写过您是“ UI工程师”。 这是否意味着您专门使用移动应用程序的UI-包括动画,可视化等?-是的,现在我几乎只处理UI:动画,视频播放,本地化,可访问性。 过去,我花了很多时间处理服务器代码,但最终目标始终是创建高质量的UI。
-告诉我们Netflix移动开发人员必须解决哪些日常任务。-我们进行A / B测试,从而创建新功能,支持和改进现有功能,共享知识并改善我们的工作(质量控制,本地化等)。 由于我们控制端点,因此我们的应用程序可以在必要时准确地访问正确的数据。
-您的团队结构如何?例如,iOS开发人员是否与Android开发人员联系?-我们的团队-iOS和Android,以及移动开发和质量控制-一起工作。 我们大家坐在一起,我们有着非常友好的气氛。
-测试人员如何与移动开发人员进行精确互动?-质量是每个人的责任,因此开发人员的责任是帮助与测试人员一起制定测试计划。 我们将可能的一切工作自动化(例如,创建屏幕截图),以便人们只能做自己最擅长的事情。
-Netflix在Medium上有一个技术博客 。 是否有专门针对移动开发人员的类似内容?-我们有一个相当活跃的Twitter
Netflix UI工程师 ,专门致力于UI的整体开发。 有时我们会进行表演,其录音可在YouTube上找到。 有四种专用于移动应用程序开发的选项。
-让我们讨论一下您在Mobius上的演讲主题。 当涉及到应用程序的可访问性时,通常人们会想到盲人和视障者,但是可访问性不仅可以帮助他们。 移动开发人员还需要注意哪些其他情况?-去年秋天,我们和黑客马拉松赛的其他两名开发人员进行了一项实验,其中使用AR Kit无需人工控制iOS应用程序。 这个实验
引起了媒体的关注 。 他的目标是帮助患有肌肉骨骼系统疾病的人。
-如果您不考虑iOS应用程序的可用性,会发生什么?这会使用户的生活变得困难吗?“我们必须在这里向Apple致敬:它们提供了开箱即用的基本功能。” 如果您使用标准UIKit中的组件,则通常您的应用程序将正常运行。 但是,如果您使用自己的组件,那么责任就在您身上。 如果您使用网络技术,则很可能无法访问您的应用程序。 默认情况下,UIView没有accessibilityLabel标签,因此VoiceOver(iOS中最常用的辅助功能技术)将无法识别它。
Apple软件的可访问性问题有一个非常活跃的社区,它有一个
名为AppleVis的网站。 一直都有关于哪些应用程序易于访问以及哪些应用程序无法访问的激烈讨论。
-可访问性问题是否与其他任务冲突? 例如,设计师想使用漂亮的字体,但它的阅读效果要比无聊的字体差。 如何解决这些冲突?-对于有视觉障碍和色盲的人,主要的困难不是字体本身引起的,而是字体的大小和对比度引起的。 如果您的应用程序使用
Dynamic Type,则将有帮助。
通常,美观的设计和用户友好性根本不是相互排斥的特征。 即使您的应用程序不支持动态类型,放大和颜色反转的设置也可以极大地简化应用程序的工作。
-在开发新应用程序时,可访问性问题可以轻松地推迟到以后:他们说,在尚未实现基本功能的情况下考虑该问题为时过早。 该考虑什么时候了? 可访问性考虑因素会影响整个应用程序的决策,因此您需要立即考虑一下吗?-一般来说,最好从一开始就考虑可访问性问题。 但是,与此同时,为可访问性提供“最小程序”需要做一些工作,因此,如果您处于实验的早期阶段,但还没有达到目标,那么以后的实施将不会有任何额外的成本。 但是,从我的经验来看,解决可访问性问题有助于重新审视其他用户友好性问题,包括意外问题。
-无论同理有多重要,许多决定都是根据经济指标做出的。 要说服经理人投入资源以确保可用性,要容易得多,如果有数据,这将带来多少新用户。 是否有任何统计数据?-很难找到这样的统计数据。 我宁愿换个角度看这个问题。 任何应用程序,即使是最新的应用程序,在市场上总是具有执行相同功能的竞争对手。 要为您的应用程序创建映像,您需要将用户“钩住”,然后他们将开始告诉其他人。 如果使您的产品对于依赖于具有可访问性的软件的用户来说方便,那么他们将反而会用强大的功能和主要的功能来赞美您的应用程序,它将被人们听到。
-一些开发人员会说:“好吧,Netflix在资源方面取得了突破,在这里我们是一个充满任务的小团队,因此我们不必进行可访问性工作。” 你想回答什么吗?-我们的资源比一家小公司还多,但我们认为这项工作在其他方面也很有用。 例如,通过为UI元素提供accessibilityIndentifiers解决了测试自动化问题的很大一部分。 我们团队的QA工程师对此做了足够的重视,以添加accessibilityLabels,然后一切都由此而来。 在这里,您可以与本地化进行类比:在UI元素中对字符串进行硬编码是一种诱惑,但这将极大地限制您可以销售应用程序的市场。 通过关注可访问性问题,您可以创建极其专注的用户。
-您已经在许多会议上作了演讲。 您的第一份报告怎么样?-在1995年,我在波士顿的Seybold出版大会上向一位该系统的用户介绍了NeXT的路由和批准系统。 我非常担心表演,但表演神在我身边,最终一切顺利。 报告期间我也遇到了灾难性的故障,因此当我进行现场演示时,我始终会保留一个预先准备的视频,以防万一,以便有一个备份版本。
-您之前去过圣彼得堡,听说过白夜吗? 莫比乌斯音乐节将于五月举行,届时将开始。-在俄罗斯,我只有一次,而在圣彼得堡-则不是一次,对我来说看看你的城市会非常有趣。 至于白夜,我可以讲一个甚至在上大学之前发生的故事,那是我初夏与瑞典的一个朋友在一起时发生的。 在那里,我们决定为聚会使用无尽的日光。 有趣的是,父母早日露面,而父母很不高兴在他的桑拿浴室里找到一群醉酒的青少年,这才是乐趣。 从那时起,我在生活中变得更加负责。
Mobius将于5月22日至23日在圣彼得堡举行。 John 将在那里讨论主题“ iOS的可访问性:通过做事做好”,此外,还将有许多其他有关移动开发的报告。 您可以在会议网站上看到完整的计划,并在同一位置购买门票。