Как стать автором
Обновить
111
0
Рубанов Михаил @akaDuality

Head of Mobile at Dodo Engineering

Отправить сообщение

Спасибо за статью, хорошо получилось!

Хочется добавить про практический кейс: SPM создает по умолчанию статические библиотеки (т.е. копируются в апку), но если создать какой-нибудь экстеншен (например, Live Activities) и подключить туда либу, то либа скопируется в оба бинарника. Все как в схемах из статьи, но вот такая реальность со вторым экзекьютебл-файлом.

Emerge в Твиттере постоянного натыкается на такое разбирая структуру приложений

К ним обновления не придут, но приложение продолжит работать

Кек, спасибо. Заменил.

Для истории:

Скрытый текст

Клевая статья, спасибо! Очень понравился с примером юнит-тестирования доступности, я не понимаю почему cashapp не хотят добавить его прямо в либу.

Для карусели у нас тоже написано очень похожий код, можно обобщить и в библиотеку вынести

Не планируете переходить от YAML к PKL?

Отличный вопрос!

Сначала поделюсь исторической картиной: такой же вопрос был после презентации телефона с сенсорным экраном. Зачем он незрячему, если он может звонить по обычному телефону, а вот этот новый специально сделан с упором на графику. Довольно быстро оказалось (в iOS 3, вроде бы), что можно дать альтернативное управления и незрячие смогут делать что и остальные люди: не только звонить, но и заказывать еду, общаться, читать новости и т.п. С очками их ролью в жизни сейчас похожий момент: мы не знаем во что это превратится.

Теперь пофантазирую конкретно. Что будут люди делать в очках? Да тоже самое, что сейчас делают: если я программирую, то с покупкой очков я не поменяю сферу работы на 3д-моделирование. Зато в очках можно открыть несколько приложений, переключаться между ними поворотом головы, вводить текст просто диктуя его и смотреть всякие иммерсивные фильмы с клевым звуком. Вот и незрячие смогут делать ровно это же: использовать привычные программы, но с другим управлением, где-то более удобным.

Плюс всякие новые приложеньки появятся, разных идей будет много. Пример прямо в тексте есть: камеры очков могут сканировать все вокруг и рассказывать что видят. Или отвечать на вопросы о том, что прямо сейчас перед человеком.

Во всем взаимодействии не хватает вибрации: на виртуальной клавиатуре неудобно набирать, потому что кнопок не чувствуешь, а полагаться только на визуал странно. Наверно кто-нибудь попробует хотя бы на одной руке хаптиком через часы отзываться.

Многие реабилитационные устройства стоят дороже (из-за малых тиражей), но дают меньший функционал. Поэтому тут сложно измерять обычной линейкой, очки могут оказаться дешевым девайсом даже за 3500.

Доступность у контрола потерялась.

Надо в accessibilityValue кнопки подписывать какая она по порядку, чтобы получилось «First, 1 из 3, кнопка», «Second, 2 из 3, кнопка».

Как проверить

Основная причина — мы не храним данные карт у себя, пользуемся токеном который выдает экваер после оплаты картой. Поэтому этот процесс сильно привязан к заказу. Может быть когда-нибудь переделаем, думаем об этом.

Пользуясь случаем: расскажите почему хочется привязать ее в настройках и чем неудобно при заказе вводить?

Пользоваться техникой тем контроллером, который подходит именно вам — вполне себе часть доступности. На айфоне буквально этим занимается Switch Control.

Спасибо за комментарий, после него я придумал снять видео как управлять айфоном с геймпада :D

Я полистал доклад, до 11 минуты вроде база, а потом про модули, зависимости и тесты все. Норм на двойной скорости смотрится

Сделаю шаг назад: тесты это код который надо поддерживать. Примеров много:

  • в свифте появился async/await, код переходит на него. Функционально ничего не меняется, но синтаксис вызова другой, приходиться менять.

  • Добавили фичу и синтаксис старой поменялся, чтобы лучше описывать абстракцию.

  • Мигрировали одну сетевую либу на другую: обновляем места интеграции.

  • Решили отказаться от спецификаций из-за скорости компиляции? Переписываем на XCTest.

  • Ну и т.д

Да, тесты можно написать так, чтобы это все было абстрагировано. Написаны ли они так фактически? А те тесты, которые 3 года назад написали? Скорее нет

Рефакторинг это изменение кода без изменения поведения. Поэтому тесты отлично рефакторятся :-)

Вторую статью чет все еще пишу, но есть видео-доклад который отчасти про это.

Я про них в статье немного писал, там есть пример теста и скриншотов

Вы говорите про стандартные UI-тесты, а статья про ссылка на скриншот-тестирование через вот эту либу. Работает так:

  • пишешь юнит-тест в котором создаешь вьюшку и заполняешь ее данными

  • вызываешь асерт специальный который ее отрендерит

  • сохранит этот скрншот в репозиторий

  • при следующем прогоне сгенерит новый скриншот и сравнит с прошлым прогоном.

Скриншотим мы лишь ячейки и контролы, поэтому файлы получаются маленькие, а скорость у них достаточная чтобы гонять их как юнит-тесты

После всех трансформаций я бы проверял правильно ли работает скринридер.

Например, для чатов было популярно вертикально переворачивать таблицу, а потом переворачивать все ячейки. Визуально проблем нет, но для скринридера все ломалось.

Да просто набирать приятней. Разницу сложно объяснить, потому что это про ощущения

1
23 ...

Информация

В рейтинге
5 236-й
Откуда
Екатеринбург, Свердловская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность