Search
Write a publication
Pull to refresh
31
0
Алексей Берёзка @AllDmeat

iOS-developer

Send message

Сам ей пользуюсь и тоже рекомендую

Блин, я даже статью читал, но в моменте не сматчил 🫠

Каждый раз много разных причин. В этот раз в том числе не ожидали настолько большой интерес.

В документации я вижу просто какой-то UIHostingController, у которого контент — вьюха:

@MainActor @preconcurrency class UIHostingController<Content> where Content : View

Но когда я в коде перехожу в объявление UIHostingController, то вижу другое:

@MainActor @preconcurrency open class UIHostingController<Content> : UIViewController where Content : View

Более того, в нашем коде метод viewDidLoad() помечен как override, что подтверждает что хостинг-контроллер всё таки вьюконтроллер и в его ЖЦ есть этот метод. Так же это подтверждается тем, что он вызывается системой начиная с iOS 14.5. iOS 18 не исключение.

Но я пока не могу догнать почему UIHostingController в доке и в коде по разному описан.

Почему не упоминается? Мы встраиваем View в UIViewController с помощью UIHostingController, а у контроллеров этот метод есть и в доке описан.

Там абсолютно такие же приколы рендера, как и без Cilicon — полупрозрачности рисуются по-разному в зависимости от чипа мака, от версии макоса и версии иоса.

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

Ага, на нем и сидим. А `tuist cache` прям резолвинг ускоряет? Мы попробуем, спасибо. Но вообще хочется иметь минимальную завязку на него, чтобы _если вдруг что_ можно было дальше без него продолжить работать.

если я правильно понял, то Codemagic делает это после того как основной билд закончился

Да, у нас так же. Но фастлейн ждет завершения процессинга загруженной сборки и обновляет ченжлог только после. Вот это хочется развернуть, но мы пока ещё не изучали можно ли.

И кстати типичная ошибка считать затраты поминутно как будто вы билдите 24x7

Тут не понял. Я из апи гитхаба забрал количество минут, которое тратилось на джобы, и помножил на стоимость минуты. Это некорректно?

Руби мы используем только для фастлейна, по сути. И долю фастлейна мы в Пицце постепенно сокращаем, прям намеренно:

  • Сборки и тесты мы в этом году начали запускать напрямую через xcodebuild, там всё просто оказалось. Хотя не без приколов — в Xcode 14.3 в команде test-withoud-building отломали флаг -testPlan , пришлось учиться работать напрямую с .xctestrun. Но там тоже ничего сложного.

  • Из фастлейна остались только запуски matchdeliver и pilot, хотелось бы и от них отказаться. В качестве замены мы присматриваемся к swiftlane или App Store Connect Swift SDK, но ни то ни другое пока не потрогали.

  • Часть тулинга пишем сами на свифте, что-то даже в опенсурц выкладываем. Готовой странички со ссылками на все пакеты нет, но в нашем канале постов 5 подряд есть про это.

  • Часть тулинга пишем на баше вместе с ChatGTP, очень довольны. Она конечно иногда ересь несет, но по итогу скрипты собираем.

Из интересного — абсолютно всё. Каждая задача по инфре для меня как для iOS-разраба — новая, сложная, непонятная. Но после каждой закрытой задачки ощущение, что преисполнился.

Очень интересно, спасибо. Мы в Додо со всеми этими же проблемами успели столкнуться. Решить только не успели, но примерный план есть. Теперь видим, что наш этот план совпадает с вашей реальностью и так спокойнее в эту сторону идти будет :-)

У меня обычно симулятор уже запущен.

Запустить на нем тесты и приаттачиться к ним — пара сек. Прогнать скриншот-тесты конкретной вьюхи — десятки миллисекунд.

Я на ютуб ролики про внедрение дайнамик тайпа в Додо Пицце выкладываю, там как раз через скриншот-тесты все идет. Можете посмотреть на скорость сами: https://youtu.be/u3WISkcQhjw

Он не тяжелый. Сгенерить сотню скриншотов вьюхи во всех её возможных состояниях, проверить доступность, проверить как эта вьюха в другие интегрируется — меньше секунды.

  1. Когда лезем и что-то обновляем в компоненте. То случайно констрейнту зацепишь которую не должен был, то приоритеты путаешь. Я прям без запуска приложения таким образом проверяю что всё ок сверстано и новые требования на вьюху не ломают старые.

  2. Когда мажорно обновляется iOS. Обычно просто кернинги в шрифтах меняются, но на некоторых вьюхах что-то может расплыться.

Не очень понимаю о каких pdf/svg вы говорите

Да, смотрели на него. За давностью лет не вспомню чем не подошел.

Неа, но мы вроде и не пытались

Это ломает порядок чтения для войсовера, так что не рекомендую.

Сколько времени примерно ушло на всё про всё?
Задал вопрос Боре Герну. Боря — ПО в команде ninja++, которая как раз таки толкала новый чекаут.

Цитата:
Рационально я бы сказал, что острой необходимости в этом не было. Но есть еще другая сторона медали. Выпустив MVP ресторана (свитчер в меню) мы начали готовить клиентов к тому, что у нас в целом появится скоро этот функционал. Мы ушли от термина «самовывоз» в сторону «ресторана». Тут сложно замерить эффект, но, как минимум, переход на реальный заказ в ресторане будет более плавный. Ну и плюс главное, что мы запустили БЧ в России, больше всего профита мы получили там, а отложенная раскатка на страны в данном случае не была так критичная, так как доля заказов в странах меньше


1

Information

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