TGViewer
Channel Public Channel
SwiftyGroup

SwiftyGroup

@swiftynew

Собираю единомышленников для совместного изучения Swift, подготовки к собеседованиям и прокачивания скилов:)

Чат группы:
https://t.me/swiftygroup
@swiftygroup

Все самое интересное:
https://boosty.to/buik

Админ:
@VladimirBuik
Subscribers
2.35K
Photos
187
Videos
1
Links
197
Recent Posts 15 shown
Post #726 457
SwiftUI .task: как не словить гонку при загрузке данных

.task(id:) хорош для экрана, где загрузка зависит от параметра. Главное: не забыть, что старый task отменяется при смене id.

Типичный пример: экран профиля получает userID, грузит данные и должен перезапускать запрос при смене пользователя. Для этого не нужен ручной onAppear плюс отдельный флаг загрузки.

struct ProfileView: View {
let userID: User.ID
@State private var profile: Profile?
@State private var error: Error?

var body: some View {
Content(profile: profile, error: error)
.task(id: userID) {
do {
profile = try await api.profile(for: userID)
error = nil
} catch is CancellationError {
// Новый userID уже запустил следующий task.
} catch {
self.error = error
}
}
}
}

При смене userID SwiftUI отменит старую задачу и начнет новую. Это удобно для search, detail screens и preview states, где значение id описывает загрузку.

Ограничение: ваш async-код должен уважать cancellation. Если внутри обёртка над старым callback API, добавьте отмену сами или хотя бы проверяйте Task.isCancelled перед записью в state.

Источник: Apple Documentation, View.task

#Swift #SwiftUI #Concurrency #iOS #AsyncAwait
  • ❤ 1
Post #721 669
⚡️⚡️AI-агент съел токены и потерял контекст. Что делать? Разберемся на Mobius 2026 Autumn.

Когда AI становится частью рабочего процесса, появляются вполне инженерные вопросы: сколько токенов уходит на задачу, где агент теряет контекст, оправдан ли MCP, как поделиться рабочими практиками внутри команды и где автоматизация начинает создавать больше проблем, чем решает.

Этим вопросам посвятят отдельный блок на Mobius 2026 Autumn — конференции по мобильной разработке. Восемь докладов, где AI-разработку рассмотрят с разных сторон: от оптимизации агентов и оркестрации до юридических ограничений и локальных моделей.

Подробности — в карточках и на сайте.

Конференция пройдет 21–22 октября в Санкт-Петербурге + онлайн.
  • 🔥 3
  • 🤡 3
  • ❤ 2
  • 🗿 2
  • 👎 1
Post #719 1.13K
Всем привет😎.

Уже прилетел отказ от Apple: «Приложение падает при запуске».

Начал проверять — у меня всё работает, ничего не падает. Запустил на iPad(я пишу только под iPhone)— и вот вам вылет прямо на старте 😕

Причина — UIScene. В логах: для приложения, собранного с этим SDK, требуется UIScene lifecycle.

Сам же предупреждал про UIScene, сам же на этом и попался. 😱
  • 🫡 1
Post #718 1.18K

Forwarded from Код Воробья для iOS разработчиков

Доигрались, вайбкодеры? Apple из-за вас меняет файл проекта

.pbxproj ➡️ .xcproj

📁 Раньше проект хранился в property-list, а теперь в JSON

Агентам будет проще править файл, меньше конфилктов, нормально видны изменения
  • 🔥 28
  • 👍 7
  • 🤓 2
Post #717 1.05K

Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)

iPhone Duo Design Guidelines

Подъехали подробные гайдлайны по тому, как надо адаптировать свои приложения для работы с новой раскладушкой. Давайте, не ленимся поддерживать, я планирую покупать!
  • 👍 7
  • ❤ 2
Post #716 1.77K
Xcode 27 RC уже вышел, и приложения, собранные в нём, уже можно отправлять на проверку в App Store.

Если ваше приложение всё ещё использует старый жизненный цикл через UIApplicationDelegate, без UIScene, самое время мигрировать. Приложения, собранные с iOS 27 SDK, не будут запускаться без поддержки сцен.

Кстати, UIScreen.main тоже теперь deprecated.
Инструкция Apple по переходу на UIScene
Apple Developer Documentation TN3187: Migrating to the UIKit scene-based life cycle | Apple Developer Documentation Update your app to receive scene-based life-cycle events and manage your user interface using scene objects and methods.
  • ❤ 11
  • 👍 7
  • 🫡 4
Post #710 2.35K
Собеседование: почему actor не гарантирует порядок ответов в UI?

Вопрос ловит тех, кто запомнил actors как защиту от гонок, но не отделяет data race от логической гонки.
Сильный ответ: actor сериализует доступ к своему изолированному состоянию. Но каждый await это точка приостановки, после нее другая задача может зайти в actor и изменить состояние. Data race не будет, зато устаревший ответ может приехать позже нового.

Мини-пример:

actor ImageLoader {
private var cache: [URL: Data] = [:]

func data(for url: URL) async throws -> Data {
if let cached = cache[url] { return cached }

let (data, _) = try await URLSession.shared.data(from: url)
cache[url] = data
return data
}
}

Код безопасен по памяти: словарь не мутируется из двух потоков одновременно. Но если экран запросил картинку A, потом B, ответ A может завершиться позже и перерисовать UI старым состоянием, если caller не проверяет актуальный id.

На интервью хороший вывод звучит так: actor решает проблему изоляции данных, но порядок пользовательских намерений надо моделировать отдельно. Для SwiftUI это часто .task(id:), сравнение requestID перед присваиванием или cancellation старой задачи.

Источник: The Swift Programming Language, Concurrency

#Swift #Concurrency #Interview #iOS #Actors
  • ❤ 8
  • 👍 2
Post #708 2.13K
Xcode 27 стал Apple silicon only

Если в команде остались Intel Mac, Xcode 27 на них уже не запустится.


Apple обновила ежедневный сценарий работы в Xcode 27. Проекты должны открываться быстрее, настройки синхронизируются через iCloud, панель инструментов можно полностью перестраивать, а темы меняют оформление всего приложения.

Самое заметное ограничение: Xcode 27 поддерживает только Mac с Apple silicon. Ещё одно крупное изменение, Device Hub объединяет симуляторы и физические устройства в одном окне.

Практический вывод: до обновления CI и рабочих машин проверьте архитектуру всех Mac, доступность нужных runtime и привычные сценарии управления Simulator. Бета подходит для отдельной ветки и тестового окружения, рабочую сборочную цепочку лучше не переносить вслепую.

Источник: Apple Developer, Platforms State of the Union

#iOS #Xcode #WWDC26 #AppleDeveloper
Apple 5 takeaways from the Platforms State of the Union - Discover - Apple Developer Catch up on the biggest announcements from the WWDC26 Platforms State of the Union.
  • ❤ 6
  • 👍 6
  • 🔥 3
Post #707 1.78K
Interview: чем опасна actor reentrancy в Swift Concurrency?

Сильный ответ: actor защищает mutable state от одновременного доступа, но после await другой вызов может зайти в тот же actor и изменить состояние.


Вопрос на собеседовании обычно звучит просто: “Actor делает код thread-safe?” Ожидаемый ответ: да, но не магически для всей бизнес-логики. Actor serializes access к своему isolated state, однако Swift actors are reentrant: на suspension point actor может выполнить другую работу.

Мини-ловушка:

actor Counter {
private var value = 0

func incrementSlowly() async {
let oldValue = value
await Task.yield()
value = oldValue + 1
}
}


Если два клиента одновременно вызовут incrementSlowly(), оба могут прочитать 0 до await, а затем оба записать 1. Actor не нарушен, data race нет, но логическая инварианта потеряна.

Как отвечать сильнее: не держите важный read-modify-write через await. Сначала дождитесь внешней async-работы, потом зайдите в actor и обновите state; либо перечитайте state после suspension; либо разделите метод так, чтобы инвариант обновлялся без suspension point.

Источник: The Swift Programming Language / Concurrency

#Swift #Concurrency #Interview #Actors #iOS
  • 👎 7
  • 🫡 2
  • 👍 1
Post #705 2.05K
  • 👍 7
Post #704 1.88K
#квиз
Post #703 1.96K
  • 👍 6
Older posts →

About this channel

How can I read @swiftynew without a Telegram account?
TGViewer shows the public web preview Telegram publishes for SwiftyGroup: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does SwiftyGroup have?
SwiftyGroup (@swiftynew) has 2.35K subscribers on Telegram, refreshed roughly every 30 minutes.
Does SwiftyGroup know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →