tgoop.com/iosdev/1615
Create:
Last Update:
Last Update:
@Observable
в UIKit!
В новой оси UIKit может автоматически трекать изменения в данных и обновлять вью c помощью макро @Observable
.
import Observation
@Observable
class Counter {
var count: Int = 0
}
А в самом
UIViewController
можно чекать значение внутри viewWillLayoutSubviews
.class TestViewController: UIViewController {
let counter = Counter()
private let label = UILabel()
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
label.text = "Read example for iOS Dev: \(counter.count)"
}
@objc private func incrementCounter() {
counter.count += 1
}
}
Так как мы читаем значение внутри
viewWillLayoutSubviews
, UIKit автоматически будет следить за ним (а вот тут есть ещё пример и для ячейки в коллекции).И хотя эта фича включена по умолчанию в iOS 26, её можно юзать и в iOS 18, добавив нужный ключ в info.plist:
UIObservationTrackingEnabled
(нужно установить в YES).А ещё добавили новый метод
updateProperties
(сработает и для UIView, и для UIViewController). Он запускается непосредственно перед layoutSubviews (но независим и позволяет заинвалидэйтить свойства без обновления лэйаута).Кроме этого, пошарили возможность добавлять badge для
UIBarButtonItem
(а не пилить собственный, что наверняка многие делали).Ещё из важного:
В релизе, следующем за iOS 26, любое приложение UIKit, созданное с помощью последней версии SDK, должно будет использовать жизненный цикл UIScene, иначе оно не запустится.
📺 Целиком сессию можно посмотреть здесь.