Telegram Web Link
Как устроена DispatchQueue под капотом

В статье разбирается, как с нуля написать аналог DispatchQueue на мьютексах, который умеет выполнять операции синхронно и асинхронно.
Собираем каталог митапов с просмотром WWDC

Кейноут WWDC пройдет вот уже через неделю. Если вы планируете организовать совместный просмотр – напишите в личку @tatiana_2209. Мы соберем каталог всех событий, чтобы вам проще было найти что-то рядом с вами.

👉Ссылка на каталог
Почему мы всё время начинаем и бросаем учить английский?

Одна из причин — мы не знаем свой уровень языка и берёмся за контент, который нам не по силам. Например, сериал «Друзья» часто советуют смотреть тем, кто начинает учить язык, но в нём полно юмора, который начинающие пока понять не могут. В итоге разрыв знаний удручает и мотивация учить язык падает.

Если вы готовы дать английскому ещё один шанс, Яндекс Практикум поможет поверить в свои силы и довести дело до конца. Приходите на бесплатную консультацию в Яндекс Практикум:

- Проведут устный тест на уровень языка,
- Покажут, чего реально добиться и за какой срок,
- Расскажут, как данные курсы помогут достичь цели.

P. S. С 1 июня курсы станут больше: количество занятий с личным преподавателем увеличится с 72 до 80. Цена вырастет тоже. До 31 мая вы можете купить курс по старой цене: целиком или по частям. И если решите купить полный курс сразу — сэкономите и получите обновлённую программу из 80 занятий по прежней цене.
Номинанты Apple Design Awards

Объявили номинантов на ежегодную премию Apple Design Awards. Этот список – отличный пример того, что Apple ценит в приложениях. Вот несколько интересных приложений:

✈️Flighty – за интуитивный интерфейс и хорошую интеграцию с платформой
🧘Headspace – за социальный импакт
🎥Riveo – за интерфейс и анимации
🏓SwingVision – за инновации в пользовательском опыте

Победителей объявят через неделю после кейноута WWDC.
Про работу с dynamicMemberLookup

Аннотация dynamicMemberLookup позволяет проксировать обращение к свойствам объекта. Например, вместо cache.storage["profile"] дергать сразу cache.profile. Основной минус такого подхода – компилятор не предупредит вас, что вы обращаетесь к несуществующему свойству. В статье разбирается, как использование KeyPath вместо строковых ключей поможет вернуть compile-time safety.
Организация межмодульного взаимодействия в многомодульном приложении

Разбор того, как архитектура межмодульного взаимодействия может влиять на скорость компиляции, вес приложения и релизный процесс. А начать чтение можно с первой статьи цикла – про то, кому вообще стоит выбирать распил приложения на модули.
SwiftUI Tips & Tricks

Пополняющийся тред из 20+ не самых очевидных советов по работе со SwiftUI. Вот некоторые из них:

- lineLimit у Text можно задавать не одним числом, а интервалом. Тогда компонент высота компонента будет всегда не меньше нижней границы, и не больше верхней.
- В любую функцию можно передать #file, #line, #function в качестве параметров – и использовать их в логах, чтобы понять, откуда была вызвана функция.
- Если вам нужно быстро создать TextField, чтобы что-то проверить, можно не передавать ему Binding, а инициализировать его с .constant(“Text”).
Что нового в Swift 5.9

👉if и switch теперь можно использовать при присвоении значения переменной или для возврата значения из функции
👉Можно писать макросы, которые исполняются во время компиляции
👉Структуры и enum’ы, которве нельзя копировать, а можно только передавать по ссылке
👉Новый оператор consume, который копирует значение переменной и уничтожает ее

В статье очень детально разбираются эти и другие новые фичи. Идеальный материал, чтобы подготовиться к WWDC!
This media is not supported in your browser
VIEW IN TELEGRAM
Реплика системного блюра на CAFilter

Разработчик зареверсинжинирил реализацию блюра и повторил его, используя приватные API. Есть возможность обойтись и без них, перейдя на SceneKit и Metal шейдеры, но качество будет чуть хуже.

Код на GitHub
Опубликован вижн интеропа Swift -> C++

Интероп Swift и C++ состоит из двух частей:

- Вызов Swift из C++ кода (этот пропозал уже давно опубликован и принят)
- Вызов C++ из Swift (вот ему и посвящен этот документ)

В пропозале разбираются цели такого интеропа, сложности его реализации и то, как предполагается подружить основные концепции из двух языков друг с другом с учетом гораздо более сильных гарантий, которые дает Swift.
Расшифровки сессий на WWDC Notes

Самое время напомнить вам про офигенный ресурс от коммьюнити – WWDC Notes. Ребята смотрят сессии и превращают их в статьи, выделяя все самое важное. В этом году они обещают расшифровать 80% сессий в течение первой недели!
Что нового в UIKit

Каждый год на WWDC все меньше апдейтов для UIKit. В этом году вот так:

👉Новый класс UIContentUnavailableView для отображения пустого стейта
👉Поддержка Xcode Preview, у которых еще и новый синтаксис на макросах появился
👉Поддержка анимаций в SFSymbols, добавленных как элемент кнопки или как ImageView
👉Новые типы шрифтов: большой и очень большой
👉Новые типы автозаполнения для UITextField: для дня рождения и даты окончания действия карты
This media is not supported in your browser
VIEW IN TELEGRAM
Динамическое меню в трее на macOS

Отличный разбор API NSStatusItem, с помощью которого можно создать меню с динамическим размером и контентом, кастомным бэкграундом и поддержкой нескольких разных таргетов для нажатий.
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс за два дня

Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.

Ребята ищут мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашают в один из своих офисов в России и Беларуси, также нанимают в международные хабы в Армении, Казахстане и Сербии.

Регистрация заканчивается 12 июня.

Подробности ищите здесь
Все анонсы WWDC

Apple собрали документацию по всем новым фреймворкам и API на одной странице. А отдельно можно скачать кучу семплов, которые показывали в сессиях.
Интеграция ChatGPT и Xcode

Экспериментальный экстеншн для Xcode, который использует ChatGPT для генерации кода по инструкциям, комментариев к нему, рефакторинга кода и других фичей. Можно добавлять и свои собственные команды.
2024/10/01 19:31:29
Back to Top
HTML Embed Code: