IOSDEV Telegram 1615
@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, иначе оно не запустится.

📺 Целиком сессию можно посмотреть здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
528🔥179👍5🤯3🎉3👏1



tgoop.com/iosdev/1615
Create:
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, иначе оно не запустится.

📺 Целиком сессию можно посмотреть здесь.

😃 iOS Dev

BY iOS Dev


Share with your friend now:
tgoop.com/iosdev/1615

View MORE
Open in Telegram


Telegram News

Date: |

With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings. How to create a business channel on Telegram? (Tutorial) How to create a business channel on Telegram? (Tutorial) Don’t publish new content at nighttime. Since not all users disable notifications for the night, you risk inadvertently disturbing them. SUCK Channel Telegram
from us


Telegram iOS Dev
FROM American