Продолжаю делиться последними хайлайтами из блога Tuist. На этот раз про интересную точку приложения AI в той области, где знаний даже у опытных разработчиков порой не хватает: Анализ логов сборки Xcode
Ключевые выводы
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Немного базы, я сам пропагандирую схожую позицию, если копирование снижает когнитивную нагрузку и не несет рисков бизнес логике - не стоит прибегать к преждевременному рефакторингу. Дублирование не всегда является антипаттерном. Плохие абстракции и тесная связь хуже дублирования.
Классы моделей данных
Код бизнес-логики
Общие рекомендации
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
#cs193p
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Stanford CS193p: iOS Development with SwiftUI | 2025 | L2: Code Breaker App
All course materials are available at https://cs193p.stanford.edu.
The 2nd lecture of the 2025 version of Stanford's CS193p course (developing applications for iOS using SwiftUI). Continues explanation of SwiftUI development by introducing View modifiers…
The 2nd lecture of the 2025 version of Stanford's CS193p course (developing applications for iOS using SwiftUI). Continues explanation of SwiftUI development by introducing View modifiers…
❤4
В статье показано, как без UIKit и мостов, на SwiftUI + Contacts.framework — реализовать экран, где пользователь может заполнить форму и сохранить новый контакт прямо в адресную книгу. Решил что полезно, т.е. большинство подобных туториалов используют устаревшее API.
Что это даёт разработчику:
Важно:
Privacy - Contacts Usage Denoscription).CNMutableContact + CNSaveRequest для записи.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
📱SwiftUI + SharePlay: смотри видео вместе с друзьямиОчень интересно и скорее всего вообще никому не пригодится. Обожаю эти фичи, которые мы видим на WWDC и больше никогда не используем в реальной жизни. SharePlay одна из таких фичей, возможно кто-то из вас нашел ей применение? В статье рассказано как с помощью
Group Activities и AVFoundation сделать в iOS-приложении возможность смотреть видео синхронно на нескольких устройствах.Что нужно сделать:
GroupActivity, описать метаданные (URL, noscript и т.д.).prepareForActivation() → activate(), либо локально воспроизвести.API очень удобный и интуитивный. Кто-то считает это может стать однажды популярным или уже придумал для чего использовать?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Как с помощью MetricKit можно собирать реальные метрики от пользователей: загрузка CPU/памяти, I/O, время запуска, энергопотребление, крэши, hangs и многое другое.
Преимущества:
Что нужно сделать:
MetricKit.MXMetricManager.А если хотите пойти дальше, добро пожаловать предлагаю посмотреть мой доклад на эту тему:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
Работа с async/await и Task в Swift сильно упрощает асинхронный код, но ARC всё ещё делает своё — задачи захватывают объекты, которые используются внутри тела, и могут неявно удерживать память дольше, чем вы думаете. Это может привести к retain-циклам даже без UIKit-замыканий.
Что происходит под капотом:
Task { … }, Swift сильно удерживает все объекты, на которые ссылается тело задачи. Это стандартное поведение ARC: задачи держат захваченные значения до завершения. Owner → task → OwnerКогда это становится проблемой
Как избежать retain-циклов?
weak self в задачахtask = Task { [weak self] in
guard let self else { return }
await self.loadData()
}Если ваша задача запущена на View и должна завершиться при исчезновении UI — отменяйте её вручную:
task.cancel(). Task отменяется, и память освобождается быстрееPlease open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🤔1
В новой лекции разбираются фундаментальные принципы работы SwiftUI через призму архитектуры модели и системы типов Swift — то, что определяет устойчивость и масштабируемость iOS-приложений.
Перемешивание UI и логики. Во многих SwiftUI-проектах View начинает обрастать обязанностями: хранением данных, обработкой логики, сетевыми вызовами. Это приводит к:
Чёткое разделение Model ↔️ View
Связка Model и UI — центральная концепция лекции. SwiftUI ожидает, что:
Это делает приложение устойчивым к изменениям и легко тестируемым.
Swift Type System как фундамент архитектуры. Лекция подчёркивает важность системы типов Swift:
MVVM как естественный путь
CS193p фактически показывает MVVM-подход, но без перегибов:
@Observable / @StateObject.Выводы:
#cs193p
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1