Мы уже говорили про изоляцию. Теперь посмотрим, где начинается настоящая боль
Почему протоколы и Swift Concurrency часто конфликтуют?
Именно поэтому работа с протоколами в SC это неочевидный источник багов. А на деле танцуешь с изоляцией и обертками.
Это мастхев для тех, кто пишет на Swift, и хочет понять как совмещать протоколы и SC без боли
Полезные ссылки:
- ConcurrencyRecipes
- Understanding Concurrency in Swift 6 with Sendable protocol, MainActor, and async-await
- Exploring Actors and Protocol Extensions
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 6 1
Почему 90% SwiftUI-приложений работают с DI неправильно
В SwiftUI культ @EnvironmentObject. Все тащат через него зависимости, как будто другого пути нет. Потом удивляются хаосу в коде.
Mohammad Azam, автор крутых заметок про SwiftUI архитектуры, рубит правду. Этот подход чаще ломает архитектуру, чем помогает.
Он напоминает про три проверенные практики:
- constructor injection
- environment values
- environment object.
И говорит прямо — хватит копировать модные паттерны
Статья дает более зрелый взгляд. Учит использовать дифференцированный выбор инструментов вместо копирования популярных практик.
В SwiftUI культ @EnvironmentObject. Все тащат через него зависимости, как будто другого пути нет. Потом удивляются хаосу в коде.
Mohammad Azam, автор крутых заметок про SwiftUI архитектуры, рубит правду. Этот подход чаще ломает архитектуру, чем помогает.
Он напоминает про три проверенные практики:
- constructor injection
- environment values
- environment object.
И говорит прямо — хватит копировать модные паттерны
Статья дает более зрелый взгляд. Учит использовать дифференцированный выбор инструментов вместо копирования популярных практик.
MCP дока Apple
На нашем созвоне комьюнити мы очень вкратце поговорили про MCPшки.
А ведь это очень важный тулкит. Более подробно мы поговорим о нем публично всекретном контенте , который выйдет чуть позже.
А так. Это новый формат инструментов, которые также станут habbit breaker'ами. Нам не нужно никуда ходить и открывать лишние вкладки. Всю инфу и нужные апи мы будем держать в одном контексте и среде.
Чем полезна эта штука?
- Ускоряет разработку за счет прямого доступа к доке
- Улучшает качество ответов и советов AI тулкитов
- Дает проверенный источник, а не из сборников непонятных статей
Если вы не знаете что такое MCP, то бегом изучать:
- What Are MCP Servers? The New AI Trend Explained for Everyone
- Что такое MCP: Расставляем точки над i
На нашем созвоне комьюнити мы очень вкратце поговорили про MCPшки.
А ведь это очень важный тулкит. Более подробно мы поговорим о нем публично в
А так. Это новый формат инструментов, которые также станут habbit breaker'ами. Нам не нужно никуда ходить и открывать лишние вкладки. Всю инфу и нужные апи мы будем держать в одном контексте и среде.
Чем полезна эта штука?
- Ускоряет разработку за счет прямого доступа к доке
- Улучшает качество ответов и советов AI тулкитов
- Дает проверенный источник, а не из сборников непонятных статей
Если вы не знаете что такое MCP, то бегом изучать:
- What Are MCP Servers? The New AI Trend Explained for Everyone
- Что такое MCP: Расставляем точки над i
GitHub
GitHub - kimsungwhee/apple-docs-mcp: MCP server for Apple Developer Documentation - Search iOS/macOS/SwiftUI/UIKit docs, WWDC videos…
MCP server for Apple Developer Documentation - Search iOS/macOS/SwiftUI/UIKit docs, WWDC videos, Swift/Objective-C APIs & code examples in Claude, Cursor & AI assistants - kimsungwh...
Коллеги.
Мы с вами уже много и долго изучаем SC:
- копаем пропозалы
- лезем в компиляторы
- изучаем реальные практические задачи
Но так и не дошли до важного и базового вопроса: "А когда же юзать Акторы?".
Надо исправляться.
Собрали с комьюнити основные правила и полезные статьи:
- Protect mutable state with Swift actors
- Point Free: Concurrency
- Docs: Concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну и в честь праздника возвращаю долги.
Подборка задач для тех, кто собирается воевать с компилятором в Swift 6:
- @preconcurrency для старых библиотек
- MainActor + протокол UI-сервиса
- @Sendable
Please open Telegram to view this post
VIEW IN TELEGRAM
Месяц с whoop
Я уже месяц хожу с браслетом и в коментах прошлого поста обещал сделать обзор.
Ну че. Давайте.
Из плюсов:
- почти две недели батарея.
- нравится режим recovery. Осознанней относишься ко сну и отдыху.
- время стресса. Иногда бывали дни, когда я был в состоянии стресса по 4 часа. Это жестко. После них чаще начал себя ловить на пустых переживаниях. Помогает не злиться на долгие лифты :)
- Сон стал более качественным. Стараюсь ложиться к 11 и вставать рано.
Минусы:
- иногда по привычке смотрю на браслет как на часы.
- UX приложения недружелюбный. Есть много других фишек, которые либо лень изучать, либо не знаешь зачем.
- хуже трекает спортивные упражнения.
Я уже месяц хожу с браслетом и в коментах прошлого поста обещал сделать обзор.
Ну че. Давайте.
Из плюсов:
- почти две недели батарея.
- нравится режим recovery. Осознанней относишься ко сну и отдыху.
- время стресса. Иногда бывали дни, когда я был в состоянии стресса по 4 часа. Это жестко. После них чаще начал себя ловить на пустых переживаниях. Помогает не злиться на долгие лифты :)
- Сон стал более качественным. Стараюсь ложиться к 11 и вставать рано.
Минусы:
- иногда по привычке смотрю на браслет как на часы.
- UX приложения недружелюбный. Есть много других фишек, которые либо лень изучать, либо не знаешь зачем.
- хуже трекает спортивные упражнения.
Прикольная серия статей от запретограма* как они ускоряли сайт/приложение.
Тему оптимизаций и скорости загрузки контента кто-то так или иначе копал. Сначала менеджеры говорят "мы не будем это делать в MVP". А потом "А че так медленно?". Знакомая история?
Вообще тема перфоманса не так проста, как кажется. В крупных компаниях как ВБ, Авито, Озон и тп даже есть отдельная мобильная команда Perfomance, чьи задачи только и связаны как с ускорением контента.
Я решил поискать интересный контент на эту тему. В чате сообщества кинули топовые статьи как инстаграм улучшал работу сторисов, фильтров и других.
Главные советы:
1️⃣ Prefetching
Prefetch контента должен быть не сразу всего, а только приоритизированного. Не весь контент важен. Не стоит заранее префетчить весь контент. Не до всего пользователь дойдет
2️⃣ Контент
Не забывайте про размеры и качество изображений. Очень актуально для слабого соединения.
3️⃣ Chuncking
Инстаграм разделяет ответы на части везде, где можно. Пагинация, разрезание видео/фото, синхронизация клиента и сервера.
4️⃣ Кэширование
Кэш динамический в процессе просмотра он обновляется и актуализируется. Также все действия пользователя сначала записываются локально, а потом синхронизируются с бэком.
5️⃣ Размер кодовой базы
Не отдавайте много данных сразу. Большие модели могут лишний раз нагружать декодинг. Делайте много lazy loading'ов.
Самое главное — заниматься улучшением иттеративно. Не оптимизируйте код заранее, это мы еще помним с советам по рефакторингу.
Статьи:
- Making Instagram.com faster: Part 1
- Making Instagram.com faster: Part 2
- Making Instagram.com faster: Part 3 — cache first
- Making instagram.com faster: Code size and execution optimizations
*запрещённая в РФ соцсеть компании Meta
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну че, нравится iOS 26?
Anonymous Poll
37%
Да, стало лучше
10%
Да, незаметно
19%
Не заметил разницы
25%
Нет, стало хуже
9%
Нет, было всегда плохо
Сейчас в своей задаче немного работаю с видосами и решил поизучать тему оптимизаций. Решил подкачать немного насмотренность и посмотреть какие советы хотя в интернетах.
Вот собрал интересные на мой взгляд статьи:
Please open Telegram to view this post
VIEW IN TELEGRAM
www.fastpix.io
Optimizing Video for iOS: Best Practices for Developers
Optimize iOS videos with MP4, H.264/HEVC codecs, and proper resolution to deliver smooth playback, reduce load times, and enhance visual quality across Apple devices.