Telegram Web Link
Allow implicit self for weak self captures, after self is unwrapped

Language Workgroup приняла пропозал, согласно которому можно больше не писать self в замыканиях с weak self после того, как self развернули. Изменения реализуют в одной из следующих версий Swift.

Вот как будет выглядеть код:
button.tapHandler = { [weak self] in
guard let self = self else { return }
dismiss()
}
👍88❤‍🔥14👎5🤔41🔥1
Типовые архитектурные паттерны переоценены

- В реальной жизни дизайн многих систем разрабатывается не так, как в книгах. Их не разрабатывают выделенные архитекторы, не документируют сложными стандартами вроде С4, не используют UML, и не пытаются привести к словарю стандартных архитектурных паттернов банды четырех
- Задача инженера – выработать максимально простую архитектуру, которая поможет решить текущую бизнес-проблему. Соответствие стандартным подходам часто влечет за собой излишнюю сложность
- Главная роль паттернов – в повышении вашей насмотренности
- Чтобы прокачаться в system design, прорабатывайте архитектуру сложных кейсов самостоятельно, запрашивайте фидбэк у коллег, сравнивайте разные варианты дизайна друг с другом, проводите ревью у других людей
👍40👎4🔥4🤡32🤯2
Краткое содержание цикла статей про огромный рефакторинг Slack

- Slack выпустили три статьи: про стабилизацию, модуляризацию и модернизацию кодовой базы
- Основные причины: сложности в масштабировании разработки и желание переехать на новый техстек
- Была разработана понятная стратегия рефакторинга, разбитая на конкретные шаги
- Куча интересных деталей про принятие решений по архитектуре, тулингу, зависимостям
👍14🤡9
Реализация простого watchdog’а

- Если вы видите в крешлогах код 0x8badf00d – это значит, что приложение прибил системный watchdog, который следит за зависшими приложениями
- Обычно очень сложно понять, а что именно в приложении вызвало зависание
- Помочь отловить причины таких ситуаций может простой самописный watchdog, код которого можно посмотреть здесь
👍16🤡3🤔2
Шаринг кода на Swift между клиентом и сервером

Шарить код можно не только на Kotlin, но и на Swift. В статье разбирается, как настроить сервер на Vapor, вынести часть бизнес-логики в общий Swift package и переиспользовать ее в приложении.
🤡31👍21🔥3🌚2🌭2
Автокомплит для команд Swift Package Manager

Если вы часто работаете с консолью и любите вкладываться в свою продуктивность, то попробуйте настроить автодополнение для SPM. В комплекте с ним идет утилита tooling, которая умеет генерировать shell completion scripts.
🤡9👍6🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Перенос Papers, Please на мобальные устройства

Очень интересная статья про то, как автор известной десктопной инди-игры пошагово адаптировал интерфейс и геймплей к маленьким экранам и тач-скрину.
👍22
Слухи про iPhone 14

- Новая презентация Apple с показом iPhone 14 пока планируется 7 сентября
- Самое заметное – у Pro версии уберут челку и заменят ее на точку с камерой и сенсором FaceID
- Камера станет еще мегапиксельнее, а батарея чуть лучше
- В Apple Watch завезут датчик температуры тела
🤡53👍112👎1
50 сниппетов с полезными анимациями из разных приложений

Анимации не всегда служат только для украшения интерфейса. Они могут нести полезные функции. Например, сообщать пользователю об ошибке, мотивировать его сделать целевое действие или сообщать о важном событии.

В репозитории содержится несколько десятков примеров таких анимаций из разных приложений. Для каждого из них объясняется контекст его применения и приводится реализация.
👍37🔥6🤡3💯21
Как анимация и вибрация помогли Додо сделать кнопку полезнее

В прошлом посте я поделился паттернами анимаций, которые приносят пользу. Кейс Додо из этой статьи – отличный пример использования таких паттернов на практике.
🤡23🔥152👍2
Conditional Layouts в SwiftUI

- В новой версии SwiftUI появился протокол Layout, который реализуется всеми стандартными контейнерами
- В протоколе две функции: sizeThatFits, которая расчитывает финальный размер контейнера с учетом всех детей, и placeSubviews, которая лэйаутит все дочерние вьюшки
- Новый тип AnyLayout позволяет менять лэйаут внутри контейнера без полной перерисовки вьюшек и сбрасывания стейта
🤯27🔥3😢2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Pow – анимированные переходы для SwiftUI

Вышла Beta версия библиотеки Pow, которая добавляет кучу классных transition’ов для ваших вьюх. Несколько примеров:

💨Blur – при добавлении View переходит из заблюренного в четкое состояние, при удалении – наоборот
⭕️Iris – растущий круг при добавлении, убывающий – при удалении
🪄Vanish – View рассыпается на мелкие кусочки
👏28🤡19👍4❤‍🔥3
Команды Почты и Облака Mail.ru ищут iOS-разработчиков и запускают Weekend Offer

В команду Почты Mail.ru приглашают человека, который готов участвовать в продуктовой разработке по основным направлениям развития почты, поддерживать и улучшать технические и продуктовые SLA и метрики в основных продуктах.

В команду Облака Mail.ru приглашают iOS-разработчика, который разделит задачи по развитию продукта, будет участвовать в новых продуктовых запусках и A/B-тестах, принимать технические вызовы в работе с файлами и медиаконтентом, а также улучшать инфраструктуру и автоматизацию.

Успейте зарегистрироваться до 2 сентября!
🤡98👎10👍5🌭4🤬1
Статистика использования SwiftUI, Catalyst и AppKit системными приложениями macOS

- В macOS Ventura 85% приложений используют AppKit, 12% – SwiftUI, 4% – Catalyst
- Доля SwiftUI растет с каждой версией. С Monterey она выросла в 2.5 раза
- Catalyst стагнирует уже пару лет
🔥22👍6🤡4🌭2
Интерактивные туториалы на DocC

DocC, инструмент для генерации документации от Apple, умеет не только генерировать API reference, но и очень крутые пошаговые интерактивные туториалы. Вот, что они позволяют делать:

📝Разбивать туториал на главы
📹Встраивать видео, картинки и загружаемые файлы
Показывать квизы с вопросами, которые проверяют полученные знания

А вот еще один пример того, как можно использовать эти туториалы.
👍27🔥3❤‍🔥2
Модификатор presentationDetents() в SwiftUI

Этот модификатор помогает установить, какого размера должен быть отображаемый Sheet. Что интересно – он работает и с Popover, для которого тоже можно кастомизировать размер.
👍34🤡10
AppBox – инструмент для распространения сборок через Dropbox

С помощью AppBox можно распространять все виды сборок – Development, Ad-Hoc и Enterprise. Сервис полностью бесплатный, простой в использовании, интегрируется с Fastlane.
😁8🤡7👍6
Lighter – генератор Swift-врапперов для SQLite базы

Lighter берет схему SQLite базы и генерирует из нее набор соответствующих Swift структур. Дальше их можно использовать двумя способами – встроенным в Lighter API для работы с базой или, не затаскивая дополнительных зависимостей, создавать соединение с базой вручную. Интегрируется в проект с помощью SwiftPM Plugins.
👍8
Изменения в отображении ViewController’ов в iPadOS 16

Огромный анализ всех изменений в отображении, которые произошли с разными видами ViewController’ов. Посмотрите, насколько это коснется вас, и решите – надо ли адаптироваться или использовать предложенные воркэраунды.
2025/07/08 16:24:22
Back to Top
HTML Embed Code: