iOS Makes Me Hate
3.93K subscribers
1.21K photos
171 videos
15 files
1.36K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
🧑 Рефакторинг в iOS разработке

Ну че, в предыдущем опросе мы узнали, что большинство разрабов юзают AI для рефакторинга. Поэтому ему мы посвятим несколько постов.

Для меня это немного удивительно. Ведь недавно многие говорили, что LLM-ки — это тупо генератор рандомных слов и не понимает контекста.

Но на нашем AI-созвоне мы узнали, что это не так. Революцию в ИИ сделали трансформеры, которые умели учитывать контекст.

Мы на примере исходников телеграма использовали Cursor. Потрошили им проект и узнавали как сделать анимации и где лежит разные модули.

Можно уверено сказать, что теперь онбординг и анализ проекта стали проще в разы. Но давайте освежим память и вообще вспомним что такое рефакторинг на примере книги «Рефакторинг» Фаулера.

Вспомним основные принципы хорошего рефакторинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
101
🌄 Swift Concurrency и протоколы: главные грабли и как их обойти

Мы уже говорили про изоляцию. Теперь посмотрим, где начинается настоящая боль

Почему протоколы и Swift Concurrency часто конфликтуют?

🔘Твой класс помечен @MainActor, а протокол требует nonisolated метода. Получаешь по лицу ошибкой “Main actor-isolated method cannot satisfy nonisolated requirement”.

🔘Протокол ожидает sync-метод, а ты хочешь внутри сделать await. Приехали. Строй адаптеры или таски.

🔘Если тип пересекает границы акторов, он должен быть Sendable. Но многие протоколы (особенно старые) об этом не знают. Привет, гонки и нестабильность

Именно поэтому работа с протоколами в 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
161
Почему 90% SwiftUI-приложений работают с DI неправильно

В SwiftUI культ @EnvironmentObject. Все тащат через него зависимости, как будто другого пути нет. Потом удивляются хаосу в коде.

Mohammad Azam, автор крутых заметок про SwiftUI архитектуры, рубит правду. Этот подход чаще ломает архитектуру, чем помогает.

Он напоминает про три проверенные практики:
- constructor injection
- environment values
- environment object.

И говорит прямо — хватит копировать модные паттерны

Статья дает более зрелый взгляд. Учит использовать дифференцированный выбор инструментов вместо копирования популярных практик.
721
MCP дока Apple

На нашем созвоне комьюнити мы очень вкратце поговорили про MCPшки.

А ведь это очень важный тулкит. Более подробно мы поговорим о нем публично в секретном контенте, который выйдет чуть позже.

А так. Это новый формат инструментов, которые также станут habbit breaker'ами. Нам не нужно никуда ходить и открывать лишние вкладки. Всю инфу и нужные апи мы будем держать в одном контексте и среде.

Чем полезна эта штука?
- Ускоряет разработку за счет прямого доступа к доке
- Улучшает качество ответов и советов AI тулкитов
- Дает проверенный источник, а не из сборников непонятных статей

Если вы не знаете что такое MCP, то бегом изучать:
- What Are MCP Servers? The New AI Trend Explained for Everyone
- Что такое MCP: Расставляем точки над i
51
🧍‍♀️ Когда стоит юзать Actor?

Коллеги.

Мы с вами уже много и долго изучаем 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
71
Коллеги-самураи, поздравляю с днем программиста

Побольше понятных хотелок от бизнеса. Меньше багов. Лучше генерировать промты для нейросетей. И меньше бояться замены.

Смотрите че нейросеть сделала. Чего их бояться….
1274
📺 Задачи для собесов Swift Concurrency: Изоляция и компиляция

Ну и в честь праздника возвращаю долги.

Подборка задач для тех, кто собирается воевать с компилятором в Swift 6:
- @preconcurrency для старых библиотек
- MainActor + протокол UI-сервиса
- @Sendable

🧬 Сегодня последний день скидок. Получить доступ можно 💰 тут или ⭐️ тут
Please open Telegram to view this post
VIEW IN TELEGRAM
1