Заканчиваем неделю уже регулярной еженедельной рубрикой по лекциям из курса по разработке iOS приложений на SwiftUI от Стендфорда. Эта лекция посвящена построению модели игры CodeBreaker и связке её с UI. Это важный этап курса — теперь приложение не просто отображает данные, а игра становится полностью работоспособной с логикой в модели. Вся лекция это лайв кодинг, который отображает подход к иттерационной разработке и выстраивает правильное мышление при решении задачи. Что проходит в лекции:
Повторение архитектуры Model ↔️ View
@StateObject / @ObservedObject / bindings, и игра оживаетРабота с состоянием и обновлениями
Применение Optional, Enum и коллекций
enum и Optional, чтобы чётко описать стадии игрыИнтеграция с UI
binding к модели#cs193p
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift подводит итоги года — и обновление декабрьского дайджеста показывает, что язык развивается не только на стороне Apple-платформ, но и в крупнейших open-source-экосистемах.
Проект Swift вырос до 70+ репозиториев, куда еженедельно вносятся улучшения по языку, инструментам, производительности и кросс-платформенности.
Swift 6.2
Язык растёт за пределами iOS/macOS
Swift в Backend и ML
Swift Evolution
await можно использовать в defer { … }, что упрощает асинхронную очисткуPlease open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Это инструмент, который объединяет разные методы получения текста из самых распространённых источников: PDF, DOCX, OCR-изображения и другие.
Что умеет SwiftText
ZIPFoundationКак может пригодиться разработчику
Пример CLI-команд
# получить Markdown из DOCX
swift run swifttext docx file.docx --markdown
# получить текст из PDF
swift run swifttext pdf file.pdf
# OCR текста из битмапа
swift run swifttext ocr image.png
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥7👍1
Большинство разработчиков используют LLM (ChatGPT, Claude, Cursor) из коробки и получают рабочий, но недостаточно качественный код: он компилируется, но не соответствует архитектуре, стилю и практикам, которые вы используете в своем проекте. Это особенно заметно в Swift, так как в тренировочных данных таких примеров меньше, чем, скажем, JavaScript/Python. LLM обучены на статистике текста — они средние по трендовым паттернам интернета, а не специфичным корпоративным/производственным стилям. Поэтому они генерируют код, который компилируется, но:
AGENTS.md Это “README для LLM” - высокоуровневое описание архитектуры, команд, workflow, договорённостей:
Rule Files - Набор правил на уровне доменов:Каждый файл содержит чёткие директивы и примеры кода, которые LLM подгружает только тогда, когда это нужно.
Что это даёт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В Swift 6.2 появилась превью новой фичи, под флагом
NonisolatedNonsendingByDefault. В комьюнити и форумах swift обсуждается идея, которая набирает отклик в Swift-сообществе: начинать проект с non-Sendable типов и добавлять Sendable / actor только там, где действительно нужна безопасность между потоками. Этот подход предлагает более простой путь к переходу на Swift Concurrency, чем повсеместное использование акторов и Sendable. В чём суть Non-Sendable First Design:
non-Sendable, пока они не пересекают границы изоляции (то есть не должны быть переданы в Task, actor или другой изоляционный контекст)@MainActor, @Sendable, акторов, пока код фактически не требует потокобезопасного обменаПочему это может быть полезно:
Sendable, пока они используются в одном доменеSendable/actor именно туда, где это важно📌 Статья от Apple
📌 Оригинальный пропоузал
📌 Обсуждение на reddit
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2🤔1
Первые дни новогодних праздников позади, а значит пора возвращаться к контенту. Что может быть лучше для начала года чем лекции Стенфорда. Пятая лекция сосредотачивается на архитектуре приложений, модели состояния и связке с UI — это следующий логичный шаг после первых четырёх лекций
@StateObject, @ObservedObject, @Binding и реактивное обновление View.enum, структуры и Optional для описания состояния приложенияВсе эти подходы помогают перейти от простого UI к полноценному приложению с бизнес-логикой, состояниями и тестируемой моделью
Почему это полезно?
#cs193p
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
iOS Broadcast
Новая лекция из курса iOS Development with SwiftUI от Stanford University продолжает тему архитектуры приложений на SwiftUI — от базового разделения Model/View/ViewModel к более сложным паттернам устойчивости и масштабируемости. Лекция полностью состоит из демонстрации, на основе которой после лекции формируется домашнее задание.
Продвинутая архитектура SwiftUI-приложений:
Observable, @MainActor, ViewModelsСвязь Model ↔️ ViewModel ↔️ View
@Published, Binding, @StateObject)Работа с навигацией и состоянием
Домашнее задание:
Создать игру, похожую на CodeBreaker (которую создают в курсе), но с буквами английского алфавита вместо цветных меток, а также со следующими требованиями:
#cs193p
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Оказывается есть аналог глобального AGENTS.md для каждого проекта. Можно настроить общие подходы через скилы.
Skills заменяют AGENTS.md
Skill — это каталог, содержащий:
Skills позволяют разделять знания по темам, например:
и использовать их во всей своей экосистеме AI-инструментов
Автор создал Swift Concurrency Skill с модульной структурой:
swift-concurrency/
├── SKILL.md
└── references/
├ async-await-basics.md
├ actors.md
├ tasks.md
├ memory-management.md
└ …
Это даёт агенту глубокий, структурированный контекст, когда он отвечает на вопросы или делает refactor/анализ кода
Преимущества подхода
Agent Skills эффективно превращают набор практик и знаний вашего стека в модульные, переиспользуемые блоки. Это даёт:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3