Эти измерения времени сборки, накопленные за какое-то время, могут давать сигналы о возможных проблемах. Например, если время сборки резко выросло - возможно, подключили лишний фреймворк к проекту, которого там быть не должно.
А по поводу кейса с UI тут нет простого ответа. В нашем случае фреймворк UI довольно сильно вырос и мы хотим его распилить на несколько более специализированных фреймворков поменьше. Надеемся что это поможет билд системе в параллелизации и получится выиграть немного времени.
В случае нашего демо-проекта это не обязательно, согласен, что можно заменить на `NSLocalizedString(:comment:)`
Но в общем случае, стоит пользоваться `String(format:locale:args:)` тк строка локализации может содержать format specifiers для подстановки каких-либо значений в строку.
В разделе про @objc забыли упомянуть, что дефолтная имплементация и другие методы реализованные в protocol extensions, не доступны в objective-c
Спасибо за статью!
Отличные вопросы!
Эти измерения времени сборки, накопленные за какое-то время, могут давать сигналы о возможных проблемах. Например, если время сборки резко выросло - возможно, подключили лишний фреймворк к проекту, которого там быть не должно.
А по поводу кейса с UI тут нет простого ответа. В нашем случае фреймворк UI довольно сильно вырос и мы хотим его распилить на несколько более специализированных фреймворков поменьше. Надеемся что это поможет билд системе в параллелизации и получится выиграть немного времени.
Да, у нас тоже сейчас есть эта проблема
Но в общем случае, стоит пользоваться `String(format:locale:args:)` тк строка локализации может содержать format specifiers для подстановки каких-либо значений в строку.
Например, вот тут использование этого метода более оправдано:
github.com/hhru/SwiftGen-Example/blob/95cbf1a0f157092ff2c9c4b0b8f0398312fe6c05/SwiftGenExample/Localization.swift#L44
habr.com/company/hh/blog/423381
@objc
забыли упомянуть, что дефолтная имплементация и другие методы реализованные в protocol extensions, не доступны в objective-cСпасибо за статью!