Pull to refresh
30
0
Алексей Берёзка @AllDmeat

iOS-developer

Send message
Я так и не понял из статьи, а могу я теперь выбрать пиццерию до выбора пиццы, или флоу так и остался прежним?

Можете.
На самом деле в новом чекауте 10 экранов:
1. Сама шторка, главный экран чекаута;
2. Список адресов;
3. Добавление нового адреса (не считаем его, мы переиспользовали старый экран);
4. Список пиццерий;
5. Карта пиццерий (тоже переиспользовали старый экран);
6. Выбор отложенного времени;
7. Способы платежа;
8. Добавление новой карты (тоже переиспользовали);
9. Указание имейла;
10. Указание имени.

Сколько десятков тысяч строк кода — не замеряли.

Про список из 200 пунктов — проблемы на этапе парсинга: там не просто маппинг, мы там с расписанием пиццерий работаем. Для каждой пиццерии надо собрать из стринги дату несколько раз: по 2 даты на каждый день, по 7 дней в неделю, да и расписаний у пиццерий аж два. Итого 28 конвертаций только на одну пиццерию.
Недавно пооптимизировали конвертацию, стало в 3+ раза быстрее. Но всё ещё есть что делать.

Если вы про iOS-приложение, то оно у нас уже распилено больше, чем на половину.


А если вы про тот самый М О Н О Л И Т — это не ко мне. Но могу уточнить.

Любой баг, по сути, нежданчик. Мы не можем его спланировать заранее.
А для нежданчиков у нас есть лаг — 50% от запланированного времени на задачи. Например, если мы оценили задачи в 20 часов, то лаг будет 10 часов.

Последнее время замечаем, что 50% нам стало многовато. Попробуем понизить или ещё что сделать. Но пока так.
И щёки мы уже надули

image
Помечаем картинку как .image и подписываем .accessibilityLabel = «Пицца Пепперони Фреш с перцем».


а с заголовком под картинкой не конфликтует?

Точно не в нескольких ближайших релизах.

Спасибо большое, надо тож как следует закопаться в эту тему.

Буду рад, если напишите мне в телеграм (alldmeat) поподробнее, а то у меня вопросов пока что больше, чем ответов.
Согласен. Почти так и сделано, только без кнопочки «Интерфейс для слабовидящих».

Мы реагируем на системную настройку размера текста. Если она превышает определённый порог — перестраиваем интерфейс. Иначе меняем только размер шрифта, но ничего не перелопачиваем.

То есть пользователь, у которого в системе установлен стандартный размер шрифта, увидит обычный интерфейс.
Пользователь с увеличенным размером шрифта увидит увеличенные шрифты.
Пользователь с сильно-увеличенным размером шрифта увидит увеличенные шрифты и немного другие контролы, более подходящие для таких «экстремальных» кеглей.
Я прикрепил картинку, где симулирую как люди с плохим зрением могут видеть наше меню. Маленькие картинки пицц всё же очень слабо друг от друга отличаются.

А на пиццу, причем крупную, посмотреть можно в карточке продукта. Кстати, она доступна по 3D-Touch. А если у вас нет 3D-Touch, но хочется сравнить ближние друг к другу пиццы, то можно открыть любую из них, а затем просто свайпнуть вбок.

Касательно переключателя категорий — согласен.
На самом деле так: developer.apple.com/documentation/uikit/uicontentsizecategory/2897444-isaccessibilitycategory

extension UIContentSizeCategory {
    var isAccessibilityCategorySafetyCheck: Bool {
        if #available(iOS 11.0, *) {
            return self.isAccessibilityCategory
        } else {
            return self == UIContentSizeCategory.accessibilityMedium
                || self == UIContentSizeCategory.accessibilityLarge
                || self == UIContentSizeCategory.accessibilityExtraLarge
                || self == UIContentSizeCategory.accessibilityExtraExtraLarge
                || self == UIContentSizeCategory.accessibilityExtraExtraExtraLarge
        }
    }
    
    static var isAccessibilityCategorySafetyCheck: Bool {
        let contentSize = UIApplication.shared.preferredContentSizeCategory
        return contentSize.isAccessibilityCategorySafetyCheck
    }
}


let isAccessibilityCategory: Bool
if #available(iOS 11.0, *) {
    isAccessibilityCategory = self.traitCollection.preferredContentSizeCategory.isAccessibilityCategory
} else {
    isAccessibilityCategory = UIContentSizeCategory.isAccessibilityCategorySafetyCheck
}
2

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Works in
Date of birth
Registered
Activity