LazyVStack vs VStack vs List в SwiftUI: https://proglib.io/w/c6130ba9
YouTube
Performance between LazyVStack, VStack and List #SwiftUI
Hello guys!
I started this channel talking about stacks in SwiftUI, today we will talk about another stack: LazyVStack.
Let's see what's the difference between regular VStack and List. By the way, we will focus only on vertical stacks, but this also will…
I started this channel talking about stacks in SwiftUI, today we will talk about another stack: LazyVStack.
Let's see what's the difference between regular VStack and List. By the way, we will focus only on vertical stacks, but this also will…
Видеоруковдство по использованию NavLink в SwiftUI:
✅ Creating basic links
✅ Lists and links
✅ Programmatic navigation
✅ Unwind segues
✅ Tags and selection
https://proglib.io/w/20075c43
✅ Creating basic links
✅ Lists and links
✅ Programmatic navigation
✅ Unwind segues
✅ Tags and selection
https://proglib.io/w/20075c43
YouTube
Understanding NavLink in SwiftUI
In this video, Mohammad Azam will demonstrate how to use the NavLink in SwiftUI. Azam will cover creating basic navigation links, navigation links inside a list, conditional links and even unwind segues.
#SwiftUI, #iosdevelopment
Gist: https://gist.g…
#SwiftUI, #iosdevelopment
Gist: https://gist.g…
👍1
Практический пример:
Поиск является обычной функцией во многих приложениях. Когда пользователь вводит поисковый запрос, мы часто хотим избежать отправки нового запроса на сервер при каждом изменении запроса. Вместо этого мы могли бы отложить запрос и отправить его только после того, как пользователь перестанет печатать на определенное время.
Реализация поиска в SwiftUI
struct SearchView: View {
@State private var userSearchInput: String = «»
var body: some View {
VStack {
// Show loading indicator, error, or results
}
.searchable(text: $userSearchInput)
.onChange(of: userSearchInput) { _, newValue in
viewModel.updateSearch(userSearchInput: newValue)
}
}
}
1. Мы используем модификатор поиска SwiftUI для настройки отображения поля поиска.
2. Мы используем переменную @State для передачи в качестве привязки к модификатору, доступному для поиска. Она будет обновляться автоматически по мере изменения пользователем поискового запроса.
3. Мы подписываемся на изменения в поиске, чтобы уведомить нашу модель просмотра о том, что ей может потребоваться обновить результаты.
Реализация в ViewModel
Далее посмотрим, как может быть реализована ViewModel:
class SearchViewModel {
private var userSearchInputSubject = PassthroughSubject()
private var cancellables = Set()
init() {
userSearchInputSubject
.debounce(for: 0.5, scheduler: RunLoop.main)
.sink { [weak self] searchInput in
self?.reload(with: searchInput)
}
.store(in: &cancellables)
}
func updateSearch(userSearchInput: String?) {
userSearchInputSubject.send(userSearchInput)
}
}
Используя оператор debounce, мы гарантируем, что запросы на сервер будут отправляться только тогда, когда пользователь перестанет печатать на полсекунды, что сокращает количество ненужных запросов и повышает общую производительность нашего приложения.
#гайд #SwiftUI
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
В iOS 18 в SwiftUI появились liquid glass-стили — полупрозрачные, «стеклянные» кнопки и элементы.
Обычная кнопка:
Button("Add", action: addItem)
— рисуется в стандартном системном стиле.
Если применить
.glass
:Button("Add", action: addItem)
.buttonStyle(.glass)
кнопка получает эффект стекла, глубину и анимацию нажатия. Цвет можно задать через .tint, но система полностью контролирует размеры и отступы.
Есть вариант
.glassProminent
для основных действий, но пока он не работает в Xcode 26.0 beta.Отдельно существует модификатор
.glassEffect()
, который можно применить к любому виду:Text("Hello")
.padding()
.glassEffect()
Это просто придаёт представлению полупрозрачный фон, без анимаций и встроенного стиля — всё остальное нужно оформить вручную.
В
Toolbar
многие кнопки автоматически получают стеклянный стиль, особенно в слотах подтверждения или отмены, и отключить это пока нельзя.Стоит отметить, что стеклянные кнопки не заменяют пользовательские
ButtonStyles
. Если нам нужны фирменные кнопки для конкретного приложения или динамические кнопки, внешний вид которых зависит от состояния, то пользовательские стили по-прежнему будут подходящим инструментом. Но если мы хотим использовать системный внешний вид и соответствовать развивающейся эстетике Apple, то стеклянные стили — это быстрый способ добиться желаемого.
А вы уже использовали .glass или .glassEffect()? Делитесь впечатлениями в комментариях
#MiddlePath #SwiftUI #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1