swiftbook_chat | Unsorted

Telegram-канал swiftbook_chat - SwiftBook открытый чат разработчиков

6316

Привет! 1. Правила: https://telegra.ph/Pravila-chata-SwiftBook-v-Telegram-12-21 2. Новости проекта: @swiftbook_news 3. Вакансии разработчиков: @swiftbook_job 4. Обучение разработке на Swift: http://bit.ly/45rvncx

Subscribe to a channel

SwiftBook открытый чат разработчиков

🔌 Недоступны сервера App Store Connect - Analytics, App Store Connect - Sales and Trends, Apple Podcasts Connect. Проблемы начались 05.04.2025 в 00:33 GMT+3.

Читать полностью…

SwiftBook открытый чат разработчиков

Всем привет, может кто-то интегрировал себе какой факс API в аппу, есть пару вопросиков ?)

Читать полностью…

SwiftBook открытый чат разработчиков

Товар consumable, также все способы оплаты валидны ну добавлены, и всё работает у других людей, это вот одно исключение такое

Читать полностью…

SwiftBook открытый чат разработчиков

💻 Топ-5 репозиториев на GitHub за 4 апреля

openhaystack +55⭐
Build your own 'AirTags' 🏷 today! Framework for tracking personal Bluetooth devices via Apple's massive Find My network.
awesome-ios +15⭐
A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects
IceCubesApp +9⭐
A SwiftUI Mastodon client
XcodesApp +9⭐
The easiest way to install and switch between multiple versions of Xcode - with a mouse click.
CopilotForXcode +9⭐
Xcode extension for GitHub Copilot

Читать полностью…

SwiftBook открытый чат разработчиков

врапер то понтяно, я про нативные модификаторы

Читать полностью…

SwiftBook открытый чат разработчиков

Это тоже может работать на СУИ

Читать полностью…

SwiftBook открытый чат разработчиков

UITextField.appearance().keyboardAppearance = .dark

Читать полностью…

SwiftBook открытый чат разработчиков

А мне надо у TextField

Читать полностью…

SwiftBook открытый чат разработчиков

как на sUI поменять цвет клавитауры на .dark?

Читать полностью…

SwiftBook открытый чат разработчиков

🐞 Сбой в App Store Connect - App Processing , Apple Music for Artists. Проблемы начались 03.04.2025 в 22:44 GMT+3.

Читать полностью…

SwiftBook открытый чат разработчиков

Ситуация чуть получше, если заменить LazyVSTack на VStack.

В таком случае визуально элмента больше нет, но NSView больше не обновляется

Читать полностью…

SwiftBook открытый чат разработчиков

Appkit врапер:


struct ClickAction<Content: View>: NSViewRepresentable {
let content: Content
var onClick: (() -> Void)? = nil

init(
@ViewBuilder content: () -> Content,
onClick: (() -> Void)? = nil
) {

self.content = content()
self.onClick = onClick
}

func makeNSView(context: Context) -> SwipeActionContainerView<Content> {
let container = SwipeActionContainerView<Content>()
let hostingView = NSHostingView(rootView: content)
hostingView.translatesAutoresizingMaskIntoConstraints = false
container.addSubview(hostingView)

let swipeActionView = NSView()
swipeActionView.translatesAutoresizingMaskIntoConstraints = false
swipeActionView.wantsLayer = true
swipeActionView.layer?.backgroundColor = NSColor.red.cgColor

container.addSubview(swipeActionView)

let hostingViewLeadingConstraint = hostingView.leadingAnchor.constraint(equalTo: container.leadingAnchor)
let hostingViewTrailingConstraint = hostingView.trailingAnchor.constraint(equalTo: container.trailingAnchor)

let swipeActionViewLeadingConstraint = swipeActionView.leadingAnchor.constraint(equalTo: container.trailingAnchor)
let swipeActionViewTrailingConstraint = swipeActionView.trailingAnchor.constraint(equalTo: container.trailingAnchor)

NSLayoutConstraint.activate([
hostingViewLeadingConstraint,
hostingViewTrailingConstraint,
hostingView.topAnchor.constraint(equalTo: container.topAnchor),
hostingView.bottomAnchor.constraint(equalTo: container.bottomAnchor),

swipeActionViewLeadingConstraint,
swipeActionViewTrailingConstraint,
swipeActionView.centerYAnchor.constraint(equalTo: container.centerYAnchor),
swipeActionView.heightAnchor.constraint(equalTo: container.heightAnchor)
])

container.swipeActionViewLeadingConstraint = swipeActionViewLeadingConstraint
container.swipeActionViewTrailingConstraint = swipeActionViewTrailingConstraint

container.hostingViewLeadingConstraint = hostingViewLeadingConstraint
container.hostingViewTrailingConstraint = hostingViewTrailingConstraint
container.onClick = onClick

return container
}

func updateNSView(_ nsView: SwipeActionContainerView<Content>, context: Context) {
guard let hostingView = nsView.subviews.compactMap({ $0 as? NSHostingView<Content> }).first else { return }
hostingView.rootView = content
}
}

class SwipeActionContainerView<Content: View>: NSView {
var onClick: (() -> Void)? = nil

var swipeActionViewLeadingConstraint: NSLayoutConstraint?
var swipeActionViewTrailingConstraint: NSLayoutConstraint?

var hostingViewLeadingConstraint: NSLayoutConstraint?
var hostingViewTrailingConstraint: NSLayoutConstraint?

private var hostItemInitWidth: CGFloat = 0

override init(frame: NSRect) {
super.init(frame: frame)
addClickGestureRecognizer()

DispatchQueue.main.async {
self.hostItemInitWidth = self.bounds.width
}
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

private func addClickGestureRecognizer() {
let clickGestureRecognizer = NSClickGestureRecognizer(target: self, action: #selector(handleClickGesture))
self.addGestureRecognizer(clickGestureRecognizer)
}

@objc private func handleClickGesture(_ gestureRecognizer: NSClickGestureRecognizer) {
updateConstraintsOnClick()
}

private func updateConstraintsOnClick() {
self.swipeActionViewLeadingConstraint?.constant = -self.hostItemInitWidth
self.hostingViewLeadingConstraint?.constant = -self.hostItemInitWidth
self.hostingViewTrailingConstraint?.constant = -self.hostItemInitWidth
self.onClick?()
}
}

Читать полностью…

SwiftBook открытый чат разработчиков

💻 Топ-5 репозиториев на GitHub за 3 апреля

IceCubesApp +30⭐
A SwiftUI Mastodon client
AeroSpace +21⭐
AeroSpace is an i3-like tiling window manager for macOS
XcodesApp +15⭐
The easiest way to install and switch between multiple versions of Xcode - with a mouse click.
Delta +14⭐
Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices.
LiveContainer +7⭐
Run iOS app without actually installing it!

Читать полностью…

SwiftBook открытый чат разработчиков

Декомпозировать можно и нужно. Как раз сейчас материал этот изучаю. Но по нему внятно объяснить ничего не готов в ближайшую неделю. Самому переварить надо. 🙂

Читать полностью…

SwiftBook открытый чат разработчиков

Вот пример накидал. Он рабоатет.


import SwiftUI
import Combine

class SubViewModel: ObservableObject {
@Published var text = "Tap to change!"

func update() {
text = "Updated!"
}
}
class GeneralViewModel: ObservableObject {
let subViewModel = SubViewModel()
private var subscriptions = Set<AnyCancellable>()

init() {
subViewModel.objectWillChange
.sink { [weak self] in
self?.objectWillChange.send()
}
.store(in: &subscriptions)
}

func update() {
subViewModel.update()
}
}

struct GeneralViewModelWithSubViewModelsContentView: View {
@ObservedObject var viewModel = GeneralViewModel()

var body: some View {
VStack {
Text(viewModel.subViewModel.text)
.onTapGesture {
viewModel.update()
}
}
}
}

#Preview {
GeneralViewModelWithSubViewModelsContentView()
}

Читать полностью…

SwiftBook открытый чат разработчиков

🐞 Сбой в App Store Connect, App Store Connect - App Processing , Apple Music for Artists. Проблемы начались 05.04.2025 в 00:20 GMT+3.

Читать полностью…

SwiftBook открытый чат разработчиков

Привет, подскажите как сделать такую анимацию для лейбла на UIKit? Пока что в голову приходит только каждый символ на отдельный лейбл разбивать (fade + scale)

Читать полностью…

SwiftBook открытый чат разработчиков

Народ, подскажите тестируем аппку, и вот у 1 тестера вылезло такое, сейчас аппка в тестфлайт, и использует он свой аккаунт, да читал что не есть гуд использовать продакшен и сендбокс систему, но как есть

Читать полностью…

SwiftBook открытый чат разработчиков

Привет! На связи международное сообщество мобильных разработчиков - Coffee&Code.

Офлайн встречи мобильных разработчиков в формате дружеской беседы на этих выходных.

Мероприятия совершенно бесплатны,
ждём всех желающих, обсудить разработку, задать вопросы, поделиться опытом и знаниями.

🌆Города в которых пройдут встречи:

🤖 Android:

📍СПИСОК ГОРОДОВ

📱 Mobile:

📍СПИСОК ГОРОДОВ

🍏 iOS:

📍СПИСОК ГОРОДОВ

Читать полностью…

SwiftBook открытый чат разработчиков

кто тебе мешает в swiftui использовать ?

Читать полностью…

SwiftBook открытый чат разработчиков

Я ж писал надо на Sui

Читать полностью…

SwiftBook открытый чат разработчиков

ну пиши TextField.keyboardAppearance(.dark)

Читать полностью…

SwiftBook открытый чат разработчиков

.keyboardAppearance(.dark)

Читать полностью…

SwiftBook открытый чат разработчиков

🍏 Устранили сбой в App Store Connect - App Processing , Apple Music for Artists. Сервисы работают нормально.

Читать полностью…

SwiftBook открытый чат разработчиков

Есть у кого-нибудь тема для xcode Алексея Ефимова? Сбросил мак и забыл сохранить себе

Читать полностью…

SwiftBook открытый чат разработчиков

То есть если нажать на кнопку


Button("refresh items") {
items = Array(1...5).map(\.description)
}


То удаленные элементы возвращаются

Читать полностью…

SwiftBook открытый чат разработчиков

Йоу. Подскажите пожалуйста.

Я делаю кастомный врапер для SwiftUI на AppKit.

Когда я удаляю его и потом делаю ререндер элементов, то все равно тот AppKit элемент остается видимым.

Подскажите пожалуйста почему и что я упускаю...

Уже все обгуглил, обспрашивал и ChatGPT и Claude.


import SwiftUI

struct ContentView: View {
@State private var items: [String] = Array(1...5).map(\.description)

var body: some View {
Button("refresh items") {
items = Array(1...5).map(\.description)
}

ScrollView {
LazyVStack {
ForEach(items, id: \.self) { item in
ClickAction {
Text(item)
.padding(15)
.frame(maxWidth: .infinity, alignment: .leading)
.background(.blue)
} onClick: {
withAnimation(.linear) {
items.removeAll(where: {$0 == item})
}
}
.transition(.move(edge: .top))
}
}
}
}
}

Читать полностью…

SwiftBook открытый чат разработчиков

а можешь линку кинуть на что изучаешь?)

Читать полностью…

SwiftBook открытый чат разработчиков

о, спасибо, сейчас попробую, т.е по факту как раз подписываемся на изменения из мелкой и обновляем глобальную

Читать полностью…

SwiftBook открытый чат разработчиков

вообще например у меня есть в общей вьюхе много мелких и надо чтобы они сами перерисовывались, на основании стейтов которые лежат в их вьюмоделях
стейты простые
- лоадинг
- не лоадинг
- еррор
на основании их мелкая вьюха показывает себя же в виде другой вьюхи
- шимер
- данные
- ошибка
можно ли такое реализовать на SUI?
потому что например если я обновлю общую вьюху то она обновит и все другие вьюхи?
например у меня у одной показывается шимер, у второй данные
будет ли это так работать?

Читать полностью…
Subscribe to a channel