iOS Roadmap - Полезное | Swift, SwiftUI, Интервью
СтатистикаiOS Roadmap: Swift, SwiftUI, архитектуры, интервью. Еженедельные подборки статей и видео, плейбуки, чек-листы, решения задач с пояснениями. Полезно начинающим и практикующим iOS-разработчикам.
- Последний пост
- 12 авг.
- Последнее чтение
- 08:57
- Постов за неделю
- 1
- Всего постов
- 27
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии
- В каталоге с
- 14 авг.
- 1/24сутки в ленте
- 124
- 1/48двое суток
- 142
- 1/72трое суток
- 153
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
Получай новые вакансии прямо в боте Сейчас все настройки у каждого пользователя по-умолчанию выключены. Но если тебе актуален просмотр вакансий и тем-более новых, то по картинкам показал путь до включения уведомлений для новых вакансий. Тем самым тебе от бота будет приходить каждые 2 часа при наличии новых. Если вакансий открылось несколько - будет одно смс с разделением. При нажатии на вакансию ты по диплинку перейдешь на детальный экран. Там уже на сам сайт, либо написать заметку или добавить в избранное и т.д. Новые вакансии - это новые в БД мини App. Так как источников несколько. • Бесплатно • Доступно • Легко и просто @ios_roadmap_academy_2024_bot
#miniapp #обновление Привет, в mini app обновление - расширил источник вакансий. Теперь есть небольшой количество вакансий из Linkedln, совсем немного 10-15шт удалось подтянуть. Буду так же смотреть в увеличение вакансий из Linkedln + остальные источники. Соверешнно бесплатно и уже доступно для каждого: @ios_roadmap_academy_2024_bot
Матрёшка из Task внутри ViewModel Есть популярный паттерн, который выглядит знакомым многим SwiftUI разработчикам: @MainActor final class ArticleViewModel: ObservableObject { @Published var isPublishing = false func publish(_ article: Article) { isPublishing = true Task { await ArticlePublisher.publish(article: article) isPublishing = false } } } На первый взгляд вроде-бы всё нормально: • ViewModel изолирована на MainActor • UI состояние меняется безопасно • async работа вынесена в Task Но есть одно "но" и выглядит оно как Task. Кто-то сразу прикинул:"Ага, ну тут у нас просто Task, а не Task.detached и значит мы наследуем изоляцию и замыкание Task будет изолировано на MainActor!" И будет прав, достаточно типичный пример в SwiftUI разработке. Проблема в том, что мы легко можем протащить через MainActor работу, которой этот актор вообще не нужен. Например, ViewModel целиком помечена @MainActor, потому что хранит UI состояние и управляет навигацией, но не каждая операция внутри такой ViewModel обязана выполняться в этой изоляции. Но как быть, если у нас ViewModel большая, скажем на 800-900 строк и одну из операций внутри неё необходимо реализовать вне текущего actor isolation? 🤔 В Swift 6.2 для такого случая есть явный инструмент - атрибут @concurrent. Task { @concurrent in await ArticlePublisher.publish(article: article) await MainActor.run { isPublishing = false } } Что здесь происходит: • @concurrent говорит замыканию Task не наследовать текущую actor isolation • Вызов публикации больше не стартует в MainActor изоляции ViewModel • MainActor.run используется только там, где реально нужно обновить UI состояние То есть мы не таскаем всю операцию через главный актор просто потому, что вся ViewModel помечена @MainActor. И @concurrent нужен как раз для случаев, когда мы хотим явно сказать: Эту async работу не нужно выполнять в текущей actor isolation Тем самым ближе познакомились с достаточно частым кейсом, сейчас / в будущем, где нам может понадобиться новый атрибут! 😎️️️️️️ Вдохновился и видоизменил под +1 кейс от Unexpected Task suspension points in Swift Concurrency
Реинкорнация Stack Overflow Возможно ты видел новость, что количество вопросов на Stack Overflow упало с 200к до 3862 в месяц. Так вот, команда не сдаётся, она адаптируется. Будут делать свой сайт "API first" для агентов. Как это работает? Цикл из четырёх шагов: • Сначала ищи. Независимо от того, планирует ли агент выполнение задачи, застрял ли он в процессе реализации или собирается выполнить действие, на которое модель не была обучена, он сначала запрашивает информацию в Stack Overflow for Agents, прежде чем тратить вычислительные ресурсы на повторный поиск уже известных решений. Если нужный ответ есть в корпусе, агент использует проверенный ответ и приступает к выполнению задачи. • Нет ответа - внеси свой. Решил проблему сам? Оформляет пост. Для этого skill файл просит сначала показать черновик человеку-оркестратору на ревью. • Проверяй чужое. Агенты и разработчики, которые пробуют решить ту же проблему после публикации, делятся информацией о том, что сработало, что пришлось изменить и при каких условиях это сработало. Именно проверка, а не создание ответов, помогает агентам заработать репутацию на Stack Overflow. • Сигналы объединяются в консенсус. Голоса, ответы и отзывы о проверке возвращаются к исходному сообщению и накапливаются вокруг него. Платформа создана для выявления консенсуса, а не единственного канонического ответа, поэтому пользователи видят, что уже было опробовано, и сами решают, что подходит именно им. Сейчас есть Три типа постов 1. Question. Что пробовал, что не вышло, где остался затык. 2. Today I Learned. Что сломалось, что помогло, в чём корневая причина. Самый ценный тип: фиксирует ровно то, чего не было в обучении модели. 3. Blueprint. Переиспользуемый паттерн архитектуры. Планка качества максимальная: один кривой Blueprint уведёт в сторону всех, кто строит такое же.
ForEach из SwiftUI обзовется swipe actions Наконец-то Apple добавили поведение свайпов: влево, вправо как у List, UICollection, UITableView, Table и для ForEach элементов, примате ленивые стеки! Жаль это все доступно только с 27 версии. Как по мне изначально должно было быт, с 13 или хотя бы 15…
Property Wrapper @State теперь макрос Только-что показали, что @State стала макросом и тем самым будет доступна с ios 17. Исправили проблему, при которой @State могла вызвать конструктор сущности несколько раз. В отличие от @StateObject с его autoclosure, у @State отсутствовало последнее и это было неоднозначно. В ноушене про это писал, что будьте осторожны, несет за собой сайд эффект. Теперь еще одну неприятность убрали, отлично!
видео или голосовое, без подписи
видео или голосовое, без подписи
WWDC26 - Platforms State of the Union В этом году удивляет! Мало того, что будет RAG и Температура, т.е работу с AI планируется серьзеная. Так показали новый Xcode 27: - Плагины место где можно будет накатить скиллы, агенты и тулзы. К примеру Гитхаб и Фигма будут уже доступны. - Хаб для тестирования, прощай Rocket Sim? Где можно будет растянуть девайс, поменять цвета и тему и тд - AI теперь будет сопровождать планом, как завещали лучшие LLM, ревью внутри Xcode с ароматами подпункто. Так еще и Xcode AI теперь сможет взять и полностью протестировать: понажимать, подергать, перейти, а в конце выгрузить скриншоты и описание, что сделано! Ну и наконец-то сломанное body в SwiftUI теперь покажет конкретное место, не прошло и 5 лет 😁🤝 Выглядит интересным 🤝
WWDC 2026 - основные моменты Если не хочется смотреть видео по WWDC, но хочется тезисно понять: • Что сделали • Где сделали • Описание И т.д. то вот WWDC Notes ведётся западным коммьюнити. На этом же сайте из а 2025 год есть и будет наполняться по мере выхода выпусков в этом году!
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи