SwiftyGroup
前往频道在 Telegram
Собираю единомышленников для совместного изучения Swift, подготовки к собеседованиям и прокачивания скилов:) Чат группы: https://t.me/swiftygroup @swiftygroup Все самое интересное: https://boosty.to/buik Админ: @VladimirBuik
显示更多2 381
订阅者
+124 小时
+77 天
+430 天
数据加载中...
相似频道
标签云
进出提及
---
---
---
---
---
---
吸引订阅者
七月 '26
七月 '26
+23
在0个频道中
六月 '26
+31
在0个频道中
Get PRO
五月 '26
+112
在0个频道中
Get PRO
四月 '26
+43
在0个频道中
Get PRO
三月 '26
+60
在0个频道中
Get PRO
二月 '26
+38
在0个频道中
Get PRO
一月 '26
+110
在1个频道中
Get PRO
十二月 '25
+49
在0个频道中
Get PRO
十一月 '25
+58
在0个频道中
Get PRO
十月 '25
+72
在0个频道中
Get PRO
九月 '25
+72
在0个频道中
Get PRO
八月 '25
+47
在0个频道中
Get PRO
七月 '25
+46
在0个频道中
Get PRO
六月 '25
+58
在0个频道中
Get PRO
五月 '25
+53
在0个频道中
Get PRO
四月 '25
+67
在0个频道中
Get PRO
三月 '25
+146
在2个频道中
Get PRO
二月 '25
+83
在0个频道中
Get PRO
一月 '25
+84
在0个频道中
Get PRO
十二月 '24
+110
在1个频道中
Get PRO
十一月 '24
+106
在0个频道中
Get PRO
十月 '24
+139
在0个频道中
Get PRO
九月 '24
+115
在0个频道中
Get PRO
八月 '24
+78
在0个频道中
Get PRO
七月 '24
+120
在1个频道中
Get PRO
六月 '24
+68
在0个频道中
Get PRO
五月 '24
+192
在1个频道中
Get PRO
四月 '24
+226
在0个频道中
Get PRO
三月 '24
+143
在0个频道中
Get PRO
二月 '24
+78
在0个频道中
Get PRO
一月 '24
+53
在0个频道中
Get PRO
十二月 '23
+610
在0个频道中
| 日期 | 订阅者增长 | 提及 | 频道 | |
| 25 七月 | 0 | |||
| 24 七月 | +1 | |||
| 23 七月 | +2 | |||
| 22 七月 | +2 | |||
| 21 七月 | +1 | |||
| 20 七月 | +1 | |||
| 19 七月 | 0 | |||
| 18 七月 | +2 | |||
| 17 七月 | 0 | |||
| 16 七月 | +1 | |||
| 15 七月 | +3 | |||
| 14 七月 | 0 | |||
| 13 七月 | +2 | |||
| 12 七月 | 0 | |||
| 11 七月 | 0 | |||
| 10 七月 | +1 | |||
| 09 七月 | 0 | |||
| 08 七月 | +1 | |||
| 07 七月 | +1 | |||
| 06 七月 | 0 | |||
| 05 七月 | 0 | |||
| 04 七月 | 0 | |||
| 03 七月 | +2 | |||
| 02 七月 | +2 | |||
| 01 七月 | +1 |
频道帖子
Собеседование: почему 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| 2 | Принципы разработки
#mobile | 998 |
| 3 | 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 | 1 534 |
| 4 | 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 | 1 383 |
| 5 | Работа с сетью
#mobile | 1 455 |
| 6 | Что выведется в консоль? | 1 793 |
| 7 | 没有文字... | 1 619 |
| 8 | Скомпилируется ли данный код? Если да, то какое значение будет у константы example2? | 1 693 |
| 9 | #квиз | 1 366 |
| 10 | Разницу между Map, FlatMap и CompactMap в Swift.
#mobile | 1 724 |
| 11 | Всем привет!😊
Нашёл интересную статью о том, как в SwiftUI с помощью .fixedSize решить задачу с карточками разной высоты.
Автор показывает кейс: в горизонтальном ScrollView нужно сделать все карточки высотой как самая высокая. Обычный .frame(maxHeight: .infinity) растягивает их на весь экран, а связка .fixedSize для HStack и .frame(maxHeight: .infinity) для карточек даёт нужный результат.
Главная мысль: не стоит игнорировать «странные» модификаторы SwiftUI — иногда именно они решают задачу одной строкой.
Мой перевод:
https://telegra.ph/Nakonec-to-ya-nashyol-kejs-dlya-fixedSize-05-14 | 1 827 |
| 12 | Способы обработка ошибок в Swift
#mobile | 1 444 |
| 13 | Способы обработка ошибок в Swift
#mobile | 1 |
| 14 | Способы обработка ошибок в Swift
#mobile | 1 |
| 15 | Изучаете программирование? Хотите стать классным айтишником с высокой ЗП?
Пока многие паникуют из-за бума ИИ, вы можете стремительно войти в сферу IT при помощи сборки "IT в деле" которую мы составили. Специально для вас разбили нашу сборку мини папки по конкретным тематикам:)
Что внутри сборки:
- Каналы о программировании и разработке: Python, CSS, HTML, Java и Swift
- GameDev и каналы о QA тестироварии, создание игр, помощь для ваших проектов и реальный опыт от тестировщиков 💍
- Авторские каналы и вайбкодинг: IT & AI, простые заметки с проектов, работа с нейросетями, и как они реально влияют на индустрию 🔤
- Информационная безопасность: многое узнаете о работе хакеров и о том, как защитить себя в этом интернет-хаосе. 🔫
Для каждого здесь что-то найдётся! Выберите интересные вам каналы или подпишитесь на всю сборку, и найдите то, что нужно вам для следующего шага в IT. | 1 418 |
| 16 | Всем привет👋
Решил перезапустить рубрику «Вопросы с собеседований»
Теперь хочу делать её в новом формате:
- адаптировано под мобильную версию
- в тёмной теме
Буду постепенно обновлять старые темы и добавлять новые вопросы. | 1 528 |
